LineageExplorerTestnet
●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 URLhttps://explorer.lineage.to
OpenAPI spec ↗

Testnet. These endpoints serve the public testnet. A mainnet will be announced separately.

Blocks
GET/api/v1/blocks

List blocks

Parameters

NameTypeInRequiredDescription
limitqueryoptional—
offsetqueryoptional—
orderqueryoptional—

Responses

200application/jsonA page of blocks
FieldTypeRequiredDescription
datarequired—
└ numrequired—
└ hashrequired—
└ previousHashrequired—
└ timestamprequired—
└ versionrequired—
└ nbTxrequired—
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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

NameTypeInRequiredDescription
idpathrequired—

Responses

200application/jsonA block
FieldTypeRequiredDescription
numrequired—
hashrequired—
previousHashrequired—
timestamprequired—
versionrequired—
nbTxrequired—
merkleRootHashrequired—
bitsrequired—
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}/transactions

List a block's transactions

Parameters

NameTypeInRequiredDescription
idpathrequired—

Responses

200application/jsonThe block's transactions
FieldTypeRequiredDescription
datarequired—
└ hashrequired—
└ blockHashrequired—
└ versionrequired—
└ timestamprequired—
└ typerequired—
└ coinbaserequired—
└ druidrequiredDRUID 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/transactions

List transactions (excludes coinbase)

Parameters

NameTypeInRequiredDescription
limitqueryoptional—
offsetqueryoptional—
orderqueryoptional—

Responses

200application/jsonA page of transactions
FieldTypeRequiredDescription
datarequired—
└ hashrequired—
└ blockHashrequired—
└ versionrequired—
└ timestamprequired—
└ typerequired—
└ druidrequiredDRUID shared by the halves of a two-way trade; null for an ordinary transaction.
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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

NameTypeInRequiredDescription
hashpathrequired—

Responses

200application/jsonA transaction
FieldTypeRequiredDescription
hashrequired—
blockHashrequired—
versionrequired—
timestamprequired—
typerequired—
druidrequiredDRUID shared by the halves of a two-way trade; null for an ordinary transaction.
inputsrequired—
└ fromAddressrequired—
└ valueTyperequiredAsset kind of the spent output: "token" or "item"; null if unresolved.
└ genesisHashrequired—
└ amountrequired—
└ amountLngxrequiredLNGX-formatted amount; null for items.
└ previousOutTxHashrequired—
└ previousOutTxNrequired—
outputsrequired—
└ nrequired—
└ valueTyperequired—
└ amountrequired—
└ amountLngxrequiredLNGX-formatted amount; null for items.
└ addressrequired—
└ locktimerequired—
└ genesisHashrequired—
└ itemMetadatarequired—
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

NameTypeInRequiredDescription
addresspathrequired—

Responses

200application/jsonThe address balance
FieldTypeRequiredDescription
addressrequired—
balancerequired—
balanceLngxrequired—

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}/transactions

List an address's transactions

Parameters

NameTypeInRequiredDescription
addresspathrequired—
limitqueryoptional—
offsetqueryoptional—

Responses

200application/jsonA page of the address's transactions
FieldTypeRequiredDescription
datarequired—
└ hashrequired—
└ blockHashrequired—
└ versionrequired—
└ timestamprequired—
└ typerequired—
└ druidrequiredDRUID shared by the halves of a two-way trade; null for an ordinary transaction.
└ inputsrequired—
└ fromAddressrequired—
└ valueTyperequiredAsset kind of the spent output: "token" or "item"; null if unresolved.
└ genesisHashrequired—
└ amountrequired—
└ amountLngxrequiredLNGX-formatted amount; null for items.
└ previousOutTxHashrequired—
└ previousOutTxNrequired—
└ outputsrequired—
└ nrequired—
└ valueTyperequired—
└ amountrequired—
└ amountLngxrequiredLNGX-formatted amount; null for items.
└ addressrequired—
└ locktimerequired—
└ genesisHashrequired—
└ itemMetadatarequired—
└ blockNumrequired—
└ balanceAfterrequired—
└ balanceAfterLngxrequired—
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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}/items

List the items an address holds

Parameters

NameTypeInRequiredDescription
addresspathrequired—
limitqueryoptional—
offsetqueryoptional—

Responses

200application/jsonA page of the address's items
FieldTypeRequiredDescription
datarequired—
└ genesisHashrequired—
└ amountrequired—
└ metadatarequired—
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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/items

Search 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

NameTypeInRequiredDescription
limitqueryoptional—
offsetqueryoptional—
qqueryoptional—
genesisqueryoptional—
spentqueryoptional—

Responses

200application/jsonA page of item outputs
FieldTypeRequiredDescription
datarequired—
└ genesisHashrequiredThe item this output belongs to: the hash of its create transaction, including on the creation output itself.
└ metadatarequiredThe output's own metadata or, failing that, the item's metadata from its creation output.
└ addressrequired—
└ amountrequired—
└ amountLngxrequiredAlways null: an item quantity is not a token amount.
└ spentrequired—
└ txHashrequired—
└ nrequired—
└ blockNumrequired—
└ blockHashrequired—
└ timestamprequired—
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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

NameTypeInRequiredDescription
genesispathrequired—

Responses

200application/jsonAn item
FieldTypeRequiredDescription
genesisHashrequired—
metadatarequired—
totalAmountrequiredUnits created, as a decimal string.
creatorrequired—
blockNumrequired—
blockHashrequired—
timestamprequired—
holderCountrequired—
holdersrequiredCurrent holders, largest first (at most 100).
└ addressrequired—
└ amountrequired—
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}/transfers

List the transactions that moved an item, newest first

Parameters

NameTypeInRequiredDescription
genesispathrequired—
limitqueryoptional—
offsetqueryoptional—

Responses

200application/jsonA page of transfers
FieldTypeRequiredDescription
datarequired—
└ txHashrequired—
└ blockNumrequired—
└ blockHashrequired—
└ timestamprequired—
└ fromrequiredInput addresses that spent this item in the transaction. Empty for the create transaction.
└ torequired—
└ addressrequired—
└ amountrequired—
└ druidrequiredSet when the transaction is one half of a two-way trade.
└ createdrequiredTrue for the transaction that created the item.
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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/supply

Circulating and total supply

Responses

200application/jsonSupply figures
FieldTypeRequiredDescription
circulatingrequired—
circulatingLngxrequired—
totalrequired—
totalLngxrequired—
tickerrequired—

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/status

Chain and indexer status

Responses

200application/jsonChain status
FieldTypeRequiredDescription
networkrequired—
tickerrequired—
heightrequired—
blocksrequired—
transactionsrequired—

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/trades

List 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

NameTypeInRequiredDescription
limitqueryoptional—
offsetqueryoptional—

Responses

200application/jsonA page of trades
FieldTypeRequiredDescription
datarequired—
└ druidrequired—
└ participantsrequired—
└ completerequiredEvery expected transaction is indexed and every leg is met.
└ blockNumrequired—
└ blockHashrequired—
└ timestamprequired—
└ legsrequired—
└ fromrequiredInput addresses of the transaction that pays this leg; null when no indexed transaction does.
└ torequired—
└ txHashrequired—
└ metrequired—
└ assetrequired—
└ transactionsrequired—
paginationrequired—
└ totalrequired—
└ limitrequired—
└ offsetrequired—
└ hasMorerequired—

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

NameTypeInRequiredDescription
druidpathrequired—

Responses

200application/jsonA trade
FieldTypeRequiredDescription
druidrequired—
participantsrequired—
completerequiredEvery expected transaction is indexed and every leg is met.
blockNumrequired—
blockHashrequired—
timestamprequired—
legsrequired—
└ fromrequiredInput addresses of the transaction that pays this leg; null when no indexed transaction does.
└ torequired—
└ txHashrequired—
└ metrequired—
└ assetrequired—
└ kindrequired—
└ amountrequired—
└ amountLngxrequiredLNGX-formatted amount; null for items.
└ genesisHashrequired—
└ metadatarequired—
transactionsrequired—
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"
  ]
}
API reference · Lineage Explorer