Aurelia

Token API

GET/tokens/:chain/:address

Everything about one token: metadata, logo and socials, creation and creator, supply, price, stats and fees paid per window, ATH and ATL, bonding curve, market cap and FDV, holders summary, security checks, and its pools with the chart pool first.

Parameters

NameInTypeDefaultAllowed values
chainpathstringrequiredevm:56 (BSC), solana, evm:8453 (Base), evm:4663 (Robinhood Chain) or evm:1 (Ethereum)
addresspathstringrequiredToken address (BSC) or mint (Solana)

Response

FieldTypeMeaning
tokenobjectaddress, decimals, symbol, name, firstSeenBlock; totalSupply and circulatingSupply (decimal strings or null); supplyAt (unix ms the supply was read, or null).
token.firstSeenAtnumber | nullTime of firstSeenBlock, unix ms: when Aurelia first saw the token, not when it was created.
token.createdAt, createdTx, creatornumber | null, string | null, string | nullThe token's creation: unix ms, transaction and creator. Only when Aurelia saw the creation itself (a launchpad's create, or the deploy transaction); all null otherwise, never guessed from a first sighting.
token.logostring | nullAbsolute URL of the logo, re-hosted as a WebP at most 256×256 and served by GET /logos/:chain/:address. null when none is stored.
token.description, socials, uristring | null, object, string | nullFrom the token's metadata document: plain text (at most 1,000 characters); website, twitter, telegram, discord (https:// URLs or null) and others; and where the document lives as the chain states it.
token.securityobject | nullThe token's risk checks, each saying how it was established: see Security. null for a chain Aurelia does not check.
holders{ count, top10Share } | nullAs the last holders read found them (kept an hour); each is null when that list was not complete. null before any read: this page never reads the chain for them.
creator{ address, labels, tokensCreated, graduated } | nullThe creator's labels, and how many tokens Aurelia saw it create and how many graduated from their bonding curve. null when the creation was not seen.
priceobject | nullFrom the token's latest swap as the base in its chart pool: usd (null when that swap could not be priced), quote and quoteToken (the same price in the pool's quote token; the chain's own coin is address native, with its symbol), pool, time. null when it was never the base there.
windows{ 5m, 15m, 1h, 4h, 6h, 12h, 24h }Each: priceChange (fraction or null), volumeUsd, buyVolumeUsd, sellVolumeUsd, trades, buys, sells, traders, buyers, sellers (distinct, approximate), feesPaidUsd (null when Aurelia's fee records start inside the window).
stats24hobjectwindows["24h"] without priceChange.
chartPool, poolCountstring | null, numberThe pool with the most 24 h volume where the token was the base (failing that, the pool holding most of it), and every pool that holds the token.
liquidityUsd, marketCapUsd, fdvUsdnumber | nullThe listed pools whose liquidity is known, summed; price.usd × circulating supply, and × total supply.
pools[]arrayUp to 25: the chart pool, then by 24 h volume. Each: address, protocol, token0, token1, based (the token was the base here in 24 h), counter, priceUsd, reserve and counterReserve (decimals applied; a curve's are virtual), liquidityUsd (real balances; null for concentrated liquidity and bins on BSC), volume24hUsd, trades24h. Token pools pages through all of them.
feesPaidUsdnumber | nullAll-time fees paid on the token's swaps as the base. null unless Aurelia saw the token's creation after its fee records began.
ath, atl{ usd, at } | nullAll-time high and low USD price and the minute it happened. null unless Aurelia saw the token's creation, so it holds the whole history.
bonding{ pool, progress, complete } | nullFor a token launched on a bonding curve: the curve, the share of its sellable supply sold (0 to 1, or null when the program does not state it), and whether it completed.
latestTradeAtnumber | nullThe token's newest swap in any pool, unix ms.

Example

Captured 2026-09-28 18:03 UTC on a test instance, trimmed to 1 pool and the 5m, 1h and 24h windows.

curl -s -H 'Authorization: Bearer <key>' 'https://app.aurelia.build/api/tokens/evm:56/0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777'
{
  "token": {
    "address": "0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777",
    "decimals": 18,
    "symbol": "TAX",
    "name": "Tax Token",
    "firstSeenBlock": 1000002,
    "totalSupply": "1000000000",
    "circulatingSupply": "1000000000",
    "supplyAt": 1790618262558,
    "firstSeenAt": 1790546861920,
    "createdAt": 1790546861920,
    "createdTx": "0x4517764dd3b9782c02c5a640714b20335ea2585b394946c4b0f5f44bc1a7bf12",
    "creator": "0x0f325bd174c70440fa62c31dce9f69d54baf717e",
    "logo": null,
    "description": null,
    "socials": {
      "website": null,
      "twitter": null,
      "telegram": null,
      "discord": null,
      "others": {}
    },
    "uri": null,
    "security": {
      "checkedAt": 1790618614169,
      "flags": [
        "buy_tax",
        "sell_tax"
      ],
      "honeypot": {
        "likely": false,
        "buyers": 8,
        "sellers": 7,
        "window": "24h",
        "how": "Distinct wallets that bought, and that sold, in the last 24h (the transaction's sender), leaving out the token's creator and its pools' creators where Aurelia saw them. Likely a honeypot when 10+ wallets bought and none of them sold; not one once any sold"
      },
      "lp": {
        "pool": "0x702e6533e0182381606adbe3ccbb77f682ccc58b",
        "lockedShare": null,
        "burnedShare": 1,
        "how": "The pool is its own LP token: totalSupply() and balanceOf() of the zero and dead addresses at block 124557783. Locked LP is not counted: Aurelia has no trustworthy list of lockers"
      },
      "top10Share": 0.30010822,
      "logoReuses": null,
      "unknown": {
        "logoReuses": "the token has no logo"
      },
      "contract": {
        "block": 124557783,
        "owner": "0x0000000000000000000000000000000000000000",
        "renounced": true,
        "proxy": {
          "kind": "minimal",
          "implementation": "0x024f18294970b5c76c0691b87f138a0317156422",
          "admin": null,
          "upgradeable": false
        },
        "functions": {
          "mint": {
            "present": false,
            "signatures": [],
            "nonOwnerCall": null
          },
          "pause": {
            "present": false,
            "signatures": [],
            "nonOwnerCall": null
          },
          "blacklist": {
            "present": false,
            "signatures": [],
            "nonOwnerCall": null
          },
          "tradingToggle": {
            "present": false,
            "signatures": [],
            "nonOwnerCall": null
          }
        },
        "how": "At block 124557783: owner() or getOwner(); the EIP-1967, OpenZeppelin and EIP-1822 proxy slots and EIP-1167 code; the known mint, pause, blacklist and trading-toggle signatures the implementation's bytecode dispatches, each present one called once through Multicall3 (eth_call from a caller that is not the owner)"
      },
      "taxes": {
        "buy": 0.02,
        "sell": 0.02,
        "buys": 69,
        "sells": 33,
        "window": "24h",
        "how": "Median over the swaps of the last 24h in transactions with one swap of the token: what the pool's Transfer logs delivered to the recipient against what the pool sent (buys), what the pool received against what its sender sent in all (sells)"
      }
    }
  },
  "holders": {
    "count": 13,
    "top10Share": 0.30010822
  },
  "creator": {
    "address": "0x0f325bd174c70440fa62c31dce9f69d54baf717e",
    "labels": [
      "creator"
    ],
    "tokensCreated": 3,
    "graduated": 1
  },
  "stats24h": {
    "volumeUsd": 1758,
    "buyVolumeUsd": 1560,
    "sellVolumeUsd": 198,
    "trades": 105,
    "buys": 72,
    "sells": 33,
    "traders": 8,
    "buyers": 8,
    "sellers": 7,
    "feesPaidUsd": null
  },
  "chartPool": "0x702e6533e0182381606adbe3ccbb77f682ccc58b",
  "price": {
    "usd": 0.006,
    "quote": 0.00001,
    "quoteToken": {
      "address": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
      "symbol": "WBNB"
    },
    "pool": "0x702e6533e0182381606adbe3ccbb77f682ccc58b",
    "time": 1790618578665
  },
  "windows": {
    "5m": {
      "priceChange": 0,
      "volumeUsd": 600,
      "buyVolumeUsd": 600,
      "sellVolumeUsd": 0,
      "trades": 2,
      "buys": 2,
      "sells": 0,
      "traders": 1,
      "buyers": 1,
      "sellers": 0,
      "feesPaidUsd": null
    },
    "1h": {
      "priceChange": -0.019999999999999907,
      "volumeUsd": 618,
      "buyVolumeUsd": 612,
      "sellVolumeUsd": 6,
      "trades": 5,
      "buys": 4,
      "sells": 1,
      "traders": 4,
      "buyers": 3,
      "sellers": 1,
      "feesPaidUsd": null
    },
    "24h": {
      "priceChange": null,
      "volumeUsd": 1758,
      "buyVolumeUsd": 1560,
      "sellVolumeUsd": 198,
      "trades": 105,
      "buys": 72,
      "sells": 33,
      "traders": 8,
      "buyers": 8,
      "sellers": 7,
      "feesPaidUsd": null
    }
  },
  "poolCount": 2,
  "liquidityUsd": 4204200,
  "marketCapUsd": 6000000,
  "fdvUsd": 6000000,
  "pools": [
    {
      "address": "0x702e6533e0182381606adbe3ccbb77f682ccc58b",
      "protocol": "pancakeswap-v2",
      "token0": "0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777",
      "token1": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
      "volume24hUsd": 1368,
      "reserve": "700000000",
      "based": true,
      "counter": {
        "address": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
        "symbol": "WBNB"
      },
      "trades24h": 102,
      "priceUsd": 0.006,
      "counterReserve": "7",
      "liquidityUsd": 4204200
    }
  ],
  "feesPaidUsd": null,
  "ath": {
    "usd": 0.006122448979591836,
    "at": 1790549820000
  },
  "atl": {
    "usd": 0.000012,
    "at": 1790546820000
  },
  "bonding": {
    "pool": "0xf39f85a07237050d069187679c621b9df1df8585b01d625ae22bc7cb99430013",
    "progress": 1,
    "complete": true
  },
  "latestTradeAt": 1790618578665
}

Notes

  • Cached 5 s. 404 {"error":"unknown token"} for a token Aurelia has never stored. The token channel sends this answer again as it changes, and the price after each trade.
  • price and the window stats count swaps where the token was the base. A stablecoin is always the quote, so USDC answers price: null and zero stats: it is priced at $1 when it quotes other tokens.
  • marketCapUsd and fdvUsd are null when the price or the supply is unknown, when the supply is 0, above $2T, or above $100M while the token's known liquidity is under $1k (a price printed in a pool nobody can exit). WBNB has no supply here, since its wrapped supply is not BNB's.
  • security waits at most 1.5 s for a chain read on a miss; a slower one finishes in the background and the block says so in unknown ("the chain is being read"): ask again in a few seconds.
  • A token seen for the first time can have null symbol, name and supplies for a short while; logo, description and socials follow once its metadata document is fetched, which can take minutes or never happen.
  • Window stats are built from 5-minute buckets, the newest one still filling: 5m is the current bucket only. priceChange is null without a priced trade that long ago (the look-back is 48 h).
  • Fees paid are the transaction fees traders paid to get their swaps included: on Solana the base and priority fee plus any Jito tip, on BSC the gas, in USD at the native price of the moment. Trading-bot fees and the pool's own swap fee are not included.
  • ath and atl come from the pools where the token was the base with at least 5% of the chart pool's 24 h volume, plus its bonding curve. When set, they hold the current price: ath.usd ≥ price.usd ≥ atl.usd.

Try it in the interactive docsCreate a free account