●Lineage Explorer API · v1.0.0 · OpenAPI 3.1.0
API reference
Read-only public REST API for the Lineage block explorer. Read blocks, transactions, addresses, items, and supply over plain HTTP. Every endpoint is grouped by resource, with its parameters, response shape, and an example.
Base URL
OpenAPI spec ↗https://explorer.lineage.toTestnet. These endpoints serve the public testnet. A mainnet will be announced separately.
Blocks
GET
/api/v1/blocksList blocks
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
| order | "asc" | "desc" | query | optional | — |
Responses
200application/jsonA page of blocks
| Field | Type | Required | Description |
|---|---|---|---|
| data | BlockSummary[] | required | — |
| └ num | integer | required | — |
| └ hash | string | required | — |
| └ previousHash | string | null | required | — |
| └ timestamp | string | null | required | — |
| └ version | integer | required | — |
| └ nbTx | integer | null | required | — |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/blocks"
Example response
json
{
"data": [
{
"num": 0,
"hash": "string",
"previousHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z",
"version": 0,
"nbTx": 0
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}GET
/api/v1/blocks/{id}Get a block by height or hash
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| id | string | path | required | — |
Responses
200application/jsonA block
| Field | Type | Required | Description |
|---|---|---|---|
| num | integer | required | — |
| hash | string | required | — |
| previousHash | string | null | required | — |
| timestamp | string | null | required | — |
| version | integer | required | — |
| nbTx | integer | null | required | — |
| merkleRootHash | string | null | required | — |
| bits | string | null | required | — |
404application/problem+jsonNot found
Example request
curl
curl "https://explorer.lineage.to/api/v1/blocks/1"
Example response
json
{
"num": 0,
"hash": "string",
"previousHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z",
"version": 0,
"nbTx": 0,
"merkleRootHash": "string",
"bits": "string"
}GET
/api/v1/blocks/{id}/transactionsList a block's transactions
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| id | string | path | required | — |
Responses
200application/jsonThe block's transactions
| Field | Type | Required | Description |
|---|---|---|---|
| data | BlockTransaction[] | required | — |
| └ hash | string | required | — |
| └ blockHash | string | required | — |
| └ version | integer | required | — |
| └ timestamp | string | null | required | — |
| └ type | "token" | "item" | "coinbase" | "unknown" | required | — |
| └ coinbase | boolean | required | — |
| └ druid | string | null | required | DRUID shared by the halves of a two-way trade; null for an ordinary transaction. |
404application/problem+jsonNot found
Example request
curl
curl "https://explorer.lineage.to/api/v1/blocks/1/transactions"
Example response
json
{
"data": [
{
"hash": "string",
"blockHash": "string",
"version": 0,
"timestamp": "2026-01-01T00:00:00.000Z",
"type": "token",
"coinbase": false,
"druid": "string"
}
]
}Transactions
GET
/api/v1/transactionsList transactions (excludes coinbase)
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
| order | "asc" | "desc" | query | optional | — |
Responses
200application/jsonA page of transactions
| Field | Type | Required | Description |
|---|---|---|---|
| data | TransactionSummary[] | required | — |
| └ hash | string | required | — |
| └ blockHash | string | required | — |
| └ version | integer | required | — |
| └ timestamp | string | null | required | — |
| └ type | "token" | "item" | "coinbase" | "unknown" | required | — |
| └ druid | string | null | required | DRUID shared by the halves of a two-way trade; null for an ordinary transaction. |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/transactions"
Example response
json
{
"data": [
{
"hash": "string",
"blockHash": "string",
"version": 0,
"timestamp": "2026-01-01T00:00:00.000Z",
"type": "token",
"druid": "string"
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}GET
/api/v1/transactions/{hash}Get a transaction by hash
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| hash | string | path | required | — |
Responses
200application/jsonA transaction
| Field | Type | Required | Description |
|---|---|---|---|
| hash | string | required | — |
| blockHash | string | required | — |
| version | integer | required | — |
| timestamp | string | null | required | — |
| type | "token" | "item" | "coinbase" | "unknown" | required | — |
| druid | string | null | required | DRUID shared by the halves of a two-way trade; null for an ordinary transaction. |
| inputs | object[] | required | — |
| └ fromAddress | string | null | required | — |
| └ valueType | string | null | required | Asset kind of the spent output: "token" or "item"; null if unresolved. |
| └ genesisHash | string | null | required | — |
| └ amount | string | null | required | — |
| └ amountLngx | string | null | required | LNGX-formatted amount; null for items. |
| └ previousOutTxHash | string | null | required | — |
| └ previousOutTxN | integer | null | required | — |
| outputs | object[] | required | — |
| └ n | integer | required | — |
| └ valueType | string | required | — |
| └ amount | string | null | required | — |
| └ amountLngx | string | null | required | LNGX-formatted amount; null for items. |
| └ address | string | null | required | — |
| └ locktime | string | required | — |
| └ genesisHash | string | null | required | — |
| └ itemMetadata | string | null | required | — |
404application/problem+jsonNot found
Example request
curl
curl "https://explorer.lineage.to/api/v1/transactions/tx_2"
Example response
json
{
"hash": "string",
"blockHash": "string",
"version": 0,
"timestamp": "2026-01-01T00:00:00.000Z",
"type": "token",
"druid": "string",
"inputs": [
{
"fromAddress": "string",
"valueType": "string",
"genesisHash": "string",
"amount": "string",
"amountLngx": "string",
"previousOutTxHash": "string",
"previousOutTxN": 0
}
],
"outputs": [
{
"n": 0,
"valueType": "string",
"amount": "string",
"amountLngx": "string",
"address": "string",
"locktime": "string",
"genesisHash": "string",
"itemMetadata": "string"
}
]
}Addresses
GET
/api/v1/addresses/{address}Get an address balance
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| address | string | path | required | — |
Responses
200application/jsonThe address balance
| Field | Type | Required | Description |
|---|---|---|---|
| address | string | required | — |
| balance | string | required | — |
| balanceLngx | string | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/addresses/addr_1"
Example response
json
{
"address": "string",
"balance": "string",
"balanceLngx": "string"
}GET
/api/v1/addresses/{address}/transactionsList an address's transactions
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| address | string | path | required | — |
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
Responses
200application/jsonA page of the address's transactions
| Field | Type | Required | Description |
|---|---|---|---|
| data | AddressTransaction[] | required | — |
| └ hash | string | required | — |
| └ blockHash | string | required | — |
| └ version | integer | required | — |
| └ timestamp | string | null | required | — |
| └ type | "token" | "item" | "coinbase" | "unknown" | required | — |
| └ druid | string | null | required | DRUID shared by the halves of a two-way trade; null for an ordinary transaction. |
| └ inputs | object[] | required | — |
| └ fromAddress | string | null | required | — |
| └ valueType | string | null | required | Asset kind of the spent output: "token" or "item"; null if unresolved. |
| └ genesisHash | string | null | required | — |
| └ amount | string | null | required | — |
| └ amountLngx | string | null | required | LNGX-formatted amount; null for items. |
| └ previousOutTxHash | string | null | required | — |
| └ previousOutTxN | integer | null | required | — |
| └ outputs | object[] | required | — |
| └ n | integer | required | — |
| └ valueType | string | required | — |
| └ amount | string | null | required | — |
| └ amountLngx | string | null | required | LNGX-formatted amount; null for items. |
| └ address | string | null | required | — |
| └ locktime | string | required | — |
| └ genesisHash | string | null | required | — |
| └ itemMetadata | string | null | required | — |
| └ blockNum | integer | required | — |
| └ balanceAfter | string | required | — |
| └ balanceAfterLngx | string | required | — |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/addresses/addr_1/transactions"
Example response
json
{
"data": [
{
"hash": "string",
"blockHash": "string",
"version": 0,
"timestamp": "2026-01-01T00:00:00.000Z",
"type": "token",
"druid": "string",
"inputs": [
{
"fromAddress": "string",
"valueType": "string",
"genesisHash": "string",
"amount": "string",
"amountLngx": "string",
"previousOutTxHash": "string",
"previousOutTxN": 0
}
],
"outputs": [
{
"n": 0,
"valueType": "string",
"amount": "string",
"amountLngx": "string",
"address": "string",
"locktime": "string",
"genesisHash": "string",
"itemMetadata": "string"
}
],
"blockNum": 0,
"balanceAfter": "string",
"balanceAfterLngx": "string"
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}GET
/api/v1/addresses/{address}/itemsList the items an address holds
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| address | string | path | required | — |
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
Responses
200application/jsonA page of the address's items
| Field | Type | Required | Description |
|---|---|---|---|
| data | AddressItem[] | required | — |
| └ genesisHash | string | required | — |
| └ amount | string | required | — |
| └ metadata | string | null | required | — |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/addresses/addr_1/items"
Example response
json
{
"data": [
{
"genesisHash": "string",
"amount": "string",
"metadata": "string"
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}Items
GET
/api/v1/itemsSearch minted items by metadata substring and/or genesis hash
Returns item outputs (mints and transfers). Provide `q` for a case-insensitive metadata substring match, `genesis` for an exact item-class filter, or both. At least one is required.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
| q | string | query | optional | — |
| genesis | string | query | optional | — |
| spent | "true" | "false" | query | optional | — |
Responses
200application/jsonA page of item outputs
| Field | Type | Required | Description |
|---|---|---|---|
| data | ItemOutput[] | required | — |
| └ genesisHash | string | null | required | The item this output belongs to: the hash of its create transaction, including on the creation output itself. |
| └ metadata | string | null | required | The output's own metadata or, failing that, the item's metadata from its creation output. |
| └ address | string | null | required | — |
| └ amount | string | null | required | — |
| └ amountLngx | string | null | required | Always null: an item quantity is not a token amount. |
| └ spent | boolean | required | — |
| └ txHash | string | required | — |
| └ n | integer | required | — |
| └ blockNum | integer | required | — |
| └ blockHash | string | required | — |
| └ timestamp | string | null | required | — |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/items?q=sword&genesis=g7f3c2a8&spent=false"
Example response
json
{
"data": [
{
"genesisHash": "string",
"metadata": "string",
"address": "string",
"amount": "string",
"amountLngx": "string",
"spent": false,
"txHash": "string",
"n": 0,
"blockNum": 0,
"blockHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z"
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}GET
/api/v1/items/{genesis}Get an item by its genesis hash
An item is identified by the hash of the transaction that created it. Returns its creation facts and current holders.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| genesis | string | path | required | — |
Responses
200application/jsonAn item
| Field | Type | Required | Description |
|---|---|---|---|
| genesisHash | string | required | — |
| metadata | string | null | required | — |
| totalAmount | string | required | Units created, as a decimal string. |
| creator | string | null | required | — |
| blockNum | integer | required | — |
| blockHash | string | required | — |
| timestamp | string | null | required | — |
| holderCount | integer | required | — |
| holders | object[] | required | Current holders, largest first (at most 100). |
| └ address | string | required | — |
| └ amount | string | required | — |
404application/problem+jsonNot found
Example request
curl
curl "https://explorer.lineage.to/api/v1/items/g42df520fb2b94f34af5615babcfef2e"
Example response
json
{
"genesisHash": "string",
"metadata": "string",
"totalAmount": "string",
"creator": "string",
"blockNum": 0,
"blockHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z",
"holderCount": 0,
"holders": [
{
"address": "string",
"amount": "string"
}
]
}GET
/api/v1/items/{genesis}/transfersList the transactions that moved an item, newest first
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| genesis | string | path | required | — |
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
Responses
200application/jsonA page of transfers
| Field | Type | Required | Description |
|---|---|---|---|
| data | ItemTransfer[] | required | — |
| └ txHash | string | required | — |
| └ blockNum | integer | required | — |
| └ blockHash | string | required | — |
| └ timestamp | string | null | required | — |
| └ from | string[] | required | Input addresses that spent this item in the transaction. Empty for the create transaction. |
| └ to | object[] | required | — |
| └ address | string | null | required | — |
| └ amount | string | required | — |
| └ druid | string | null | required | Set when the transaction is one half of a two-way trade. |
| └ created | boolean | required | True for the transaction that created the item. |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/items/g42df520fb2b94f34af5615babcfef2e/transfers"
Example response
json
{
"data": [
{
"txHash": "string",
"blockNum": 0,
"blockHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z",
"from": [
"string"
],
"to": [
{
"address": "string",
"amount": "string"
}
],
"druid": "string",
"created": false
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}Chain
GET
/api/v1/supplyCirculating and total supply
Responses
200application/jsonSupply figures
| Field | Type | Required | Description |
|---|---|---|---|
| circulating | string | required | — |
| circulatingLngx | string | required | — |
| total | string | null | required | — |
| totalLngx | string | null | required | — |
| ticker | string | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/supply"
Example response
json
{
"circulating": "string",
"circulatingLngx": "string",
"total": "string",
"totalLngx": "string",
"ticker": "string"
}GET
/api/v1/statusChain and indexer status
Responses
200application/jsonChain status
| Field | Type | Required | Description |
|---|---|---|---|
| network | string | required | — |
| ticker | string | required | — |
| height | integer | null | required | — |
| blocks | integer | required | — |
| transactions | integer | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/status"
Example response
json
{
"network": "string",
"ticker": "string",
"height": 0,
"blocks": 0,
"transactions": 0
}Trades
GET
/api/v1/tradesList two-way trades, newest settlement first
A two-way trade is a set of transactions sharing one DRUID that settle together. Each leg states who gave which asset to whom.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| limit | integer | query | optional | — |
| offset | integer | null | query | optional | — |
Responses
200application/jsonA page of trades
| Field | Type | Required | Description |
|---|---|---|---|
| data | Trade[] | required | — |
| └ druid | string | required | — |
| └ participants | integer | required | — |
| └ complete | boolean | required | Every expected transaction is indexed and every leg is met. |
| └ blockNum | integer | required | — |
| └ blockHash | string | required | — |
| └ timestamp | string | null | required | — |
| └ legs | object[] | required | — |
| └ from | string[] | null | required | Input addresses of the transaction that pays this leg; null when no indexed transaction does. |
| └ to | string | required | — |
| └ txHash | string | null | required | — |
| └ met | boolean | required | — |
| └ asset | object | required | — |
| └ transactions | string[] | required | — |
| pagination | Pagination | required | — |
| └ total | integer | required | — |
| └ limit | integer | required | — |
| └ offset | integer | required | — |
| └ hasMore | boolean | required | — |
Example request
curl
curl "https://explorer.lineage.to/api/v1/trades"
Example response
json
{
"data": [
{
"druid": "string",
"participants": 0,
"complete": false,
"blockNum": 0,
"blockHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z",
"legs": [
{
"from": [
"string"
],
"to": "string",
"txHash": "string",
"met": false,
"asset": {
"kind": "token",
"amount": "string",
"amountLngx": "string",
"genesisHash": "string",
"metadata": "string"
}
}
],
"transactions": [
"string"
]
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"hasMore": false
}
}GET
/api/v1/trades/{druid}Get a two-way trade by its DRUID
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| druid | string | path | required | — |
Responses
200application/jsonA trade
| Field | Type | Required | Description |
|---|---|---|---|
| druid | string | required | — |
| participants | integer | required | — |
| complete | boolean | required | Every expected transaction is indexed and every leg is met. |
| blockNum | integer | required | — |
| blockHash | string | required | — |
| timestamp | string | null | required | — |
| legs | object[] | required | — |
| └ from | string[] | null | required | Input addresses of the transaction that pays this leg; null when no indexed transaction does. |
| └ to | string | required | — |
| └ txHash | string | null | required | — |
| └ met | boolean | required | — |
| └ asset | object | required | — |
| └ kind | "token" | "item" | required | — |
| └ amount | string | required | — |
| └ amountLngx | string | null | required | LNGX-formatted amount; null for items. |
| └ genesisHash | string | null | required | — |
| └ metadata | string | null | required | — |
| transactions | string[] | required | — |
404application/problem+jsonNot found
Example request
curl
curl "https://explorer.lineage.to/api/v1/trades/DRUID0x277251e1651aa2861727323acf69a358"
Example response
json
{
"druid": "string",
"participants": 0,
"complete": false,
"blockNum": 0,
"blockHash": "string",
"timestamp": "2026-01-01T00:00:00.000Z",
"legs": [
{
"from": [
"string"
],
"to": "string",
"txHash": "string",
"met": false,
"asset": {
"kind": "token",
"amount": "string",
"amountLngx": "string",
"genesisHash": "string",
"metadata": "string"
}
}
],
"transactions": [
"string"
]
}