Developers

Read the AntSeed marketplace by API.

curl https://antseedstats.com/api/v1/network/summary
14 endpointsNo key60 req/minCORS open
Base URL
antseedstats.com/api/v1
Auth
None
Rate limit
60 req/min per IP
Format
JSON, CSV on series
CORS
Open to any origin
OpenAPI
Reading a responseThe envelope, the units and who says what
{
  "data": { ... },
  "meta": {
    "version": "v1",
    "endpoint": "sellers.daily",
    "as_of_block": 52301234,
    "as_of_ts": 1791400000,
    "indexer_lag_blocks": 3,
    "generated_at": 1791400010,
    "max_age_s": 300,
    "sources": { "days": "chain" }
  }
}
  • as_of_block
    The Base block our indexer had fully processed when the response was built, with its timestamp and how many blocks behind the chain head that was. A number without a block cannot be reconciled with the chain; this one can.
  • version
    Fields never change meaning inside v1; new fields are added, old ones stay. Figures that depend on a definition of ours, such as organic or the trust score, say so in meta.sources, and a change of definition would be a new field or a v2.
  • money
    Money comes twice: an integer in micro-USDC (6 decimals, exact, the on-chain unit) and a formatted string with 2 decimals. Tokens and requests are integers. Prices are USD per 1 million tokens, as advertised.
  • time
    Timestamps are UTC seconds (fields ending in _ts). Days are UTC calendar days as YYYY-MM-DD. A 24h, 7d or 30d window is rolling and ends now; a day is a full UTC day, and today is partial.
  • sources
    chain: read from Base events or contract state. announce: what a seller signs and publishes about itself (names, prices), taken as is. antseedstats: a figure that depends on a definition of ours, such as the organic view, the trust score or a projection.
  • view
    Lists of sellers and prices default to all: nothing hidden. Rankings default to organic, like the site: sellers in AntSeed's on-chain wash registry and in clusters we confirmed are left out. Every row still carries wash_registry (the chain's verdict) and organic (ours) so you can choose.
Network
GET/network/summaryLifetime totals, windows, current epoch

The home page numbers. Lifetime settled USDC and fees come from every ChannelSettled event. The 24h, 7d and 30d windows are rolling (not calendar) and count distinct buyers and sellers inside the window. paid_usage_24h comes from settlements whose buyers shared a per-model split, so it is a lower bound.

curl "https://antseedstats.com/api/v1/network/summary"
/api/v1
Response fields (38)
  • lifetime.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • lifetime.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • lifetime.fees_microinteger
    fees in micro-USDC (integer, 6 decimals)
  • lifetime.fees_usdstring
    fees in USDC, formatted with 2 decimals
  • lifetime.settlesinteger
    Settlement events
  • lifetime.buyersinteger
    Distinct buyers that settled
  • lifetime.sellersinteger
    Distinct sellers that settled
  • lifetime.tokens_ininteger
    Input tokens (MetadataRecorded)
  • lifetime.tokens_outinteger
    Output tokens
  • lifetime.requestsinteger
    Requests
  • windowsobject
    Rolling windows ending now
  • windows.24h.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • windows.24h.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • windows.24h.settlesinteger
    Settles
  • windows.24h.buyersinteger
    Distinct buyers
  • windows.24h.sellersinteger
    Distinct sellers
  • windows.7d.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • windows.7d.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • windows.7d.settlesinteger
    Settles
  • windows.7d.buyersinteger
    Distinct buyers
  • windows.7d.sellersinteger
    Distinct sellers
  • windows.30d.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • windows.30d.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • windows.30d.settlesinteger
    Settles
  • windows.30d.buyersinteger
    Distinct buyers
  • windows.30d.sellersinteger
    Distinct sellers
  • paid_usage_24hobject
    Rolling 24h from per-model usage (lower bound)
  • paid_usage_24h.requestsinteger
    Paid requests
  • paid_usage_24h.tokensinteger
    Paid tokens
  • paid_usage_24h.imagesinteger
    Generated images
  • paid_usage_24h.free_requestsinteger
    Free-tier requests
  • paid_usage_24h.free_tokensinteger
    Free-tier tokens
  • paid_usage_24h.modelsinteger
    Distinct models used
  • paid_usage_24h.coveragenumber
    Share of settlements carrying a per-model split, 0 to 1
  • epoch.numberinteger
    Current epoch
  • epoch.starts_tsinteger
    UTC seconds
  • epoch.ends_tsinteger
    UTC seconds
  • epoch.seconds_leftinteger
    Until the next epoch

Cache 45 s. Sources: lifetime = chain, windows = chain, paid_usage_24h = chain, epoch = chain.

GET/network/dailyPer UTC day: settled, users, tokens

One row per UTC calendar day with no gaps. Settled and fees from ChannelSettled; tokens and requests from MetadataRecorded (paid); free usage from the free-tier counters; users are distinct accounts that settled that day. Today is partial.

curl "https://antseedstats.com/api/v1/network/daily?from=2026-09-30&to=2026-10-06"
/api/v1
Parameters
  • fromquery · date
    First UTC day, YYYY-MM-DD (default: 30 days ago)
  • toquery · date
    Last UTC day, YYYY-MM-DD (default: today)
  • formatquery · json | csv · default json
    json (default) or csv
Response fields (19)
  • fromstring
    First day returned
  • tostring
    Last day returned
  • days[]array
  • days[].daystring
    UTC calendar day
  • days[].settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • days[].settled_usdstring
    settled in USDC, formatted with 2 decimals
  • days[].fees_microinteger
    fees in micro-USDC (integer, 6 decimals)
  • days[].fees_usdstring
    fees in USDC, formatted with 2 decimals
  • days[].settlesinteger
    Settlement events
  • days[].usersinteger
    Distinct accounts that settled (buyers plus sellers)
  • days[].new_usersinteger
    Accounts whose first settlement is this day
  • days[].buyersinteger
    Distinct buyers
  • days[].sellersinteger
    Distinct sellers
  • days[].free_only_usersinteger
    Accounts active on the free tier only
  • days[].tokens_ininteger
    Paid input tokens
  • days[].tokens_outinteger
    Paid output tokens
  • days[].requestsinteger
    Paid requests
  • days[].free_tokensinteger
    Free-tier tokens
  • days[].free_requestsinteger
    Free-tier requests

Cache 5 to 8 min. Sources: days = chain.

GET/leadersLast 24h leaders, wash left out

The 'Happening now' band. Rolling 24h window. Sellers we treat as wash trading are left out of every ranking (excluded_sellers says how many were active); this is our judgement, not a chain fact. Model rankings use per-model usage shared by buyers, so they are lower bounds.

curl "https://antseedstats.com/api/v1/leaders"
/api/v1
Response fields (26)
  • window_hoursinteger
    24
  • seller.addressstring
    Lowercase 0x
  • seller.namestring | null
    Announced name (untrusted)
  • seller.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • seller.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • seller.buyersinteger
    Distinct buyers
  • top_model_by_sales.modelstring
    Canonical id
  • top_model_by_sales.displaystring
    Name
  • top_model_by_sales.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • top_model_by_sales.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • top_model_by_sales.tokensinteger
    Tokens
  • top_model_by_sales.requestsinteger
    Requests
  • top_model_by_sales.buyersinteger
    Buyers
  • top_model_by_tokens.modelstring
    Canonical id
  • top_model_by_tokens.displaystring
    Name
  • top_model_by_tokens.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • top_model_by_tokens.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • top_model_by_tokens.tokensinteger
    Tokens
  • top_model_by_tokens.requestsinteger
    Requests
  • top_model_by_tokens.buyersinteger
    Buyers
  • top_free_model.modelstring
    Canonical id
  • top_free_model.displaystring
    Name
  • top_free_model.tokensinteger
    Free tokens
  • top_free_model.requestsinteger
    Free requests
  • top_free_model.buyersinteger
    Buyers
  • excluded_sellersinteger
    Wash-trading sellers active in the window and left out

Cache 45 s. Sources: seller = chain, models = chain, exclusion = antseedstats.

Sellers
GET/sellersEvery seller, lifetime and 7-day figures

The seller leaderboard. Lifetime figures from ChannelSettled and MetadataRecorded. wash_registry is AntSeed's on-chain verdict; organic is our view (registry plus confirmed clusters). The default view is all: nothing is hidden unless you ask.

curl "https://antseedstats.com/api/v1/sellers?sort=revenue_7d&view=organic&limit=10"
/api/v1
Parameters
  • sortquery · revenue_7d | revenue | tokens | requests · default revenue_7d
    Sort key, descending
  • viewquery · all | organic · default all
    organic leaves out sellers in the on-chain wash registry plus our confirmed clusters; all keeps every seller
  • limitquery · int · default 100
    Rows to return (1 to 1000)
  • offsetquery · int · default 0
    Rows to skip
Response fields (24)
  • totalinteger
    Sellers matching the view
  • sellers[]array
  • sellers[].addressstring
    Lowercase 0x address
  • sellers[].agent_idstring | null
    On-chain agent id (null for announce-only peers)
  • sellers[].namestring | null
    Display name from the seller's own announcement (untrusted text)
  • sellers[].verifiedboolean
    Has a domain or GitHub proof we verified
  • sellers[].liveboolean
    Announcing on the DHT right now
  • sellers[].revenue_microinteger
    revenue in micro-USDC (integer, 6 decimals)
  • sellers[].revenue_usdstring
    revenue in USDC, formatted with 2 decimals
  • sellers[].revenue_7d_microinteger
    revenue 7d in micro-USDC (integer, 6 decimals)
  • sellers[].revenue_7d_usdstring
    revenue 7d in USDC, formatted with 2 decimals
  • sellers[].fees_microinteger
    fees in micro-USDC (integer, 6 decimals)
  • sellers[].fees_usdstring
    fees in USDC, formatted with 2 decimals
  • sellers[].settlesinteger
    Lifetime settlement events
  • sellers[].channelsinteger
    Lifetime payment channels
  • sellers[].tokensinteger
    Lifetime tokens served, input plus output (MetadataRecorded)
  • sellers[].requestsinteger
    Lifetime requests (MetadataRecorded)
  • sellers[].modelsinteger
    Models advertised
  • sellers[].reputationnumber | null
    Trust score 0 to 100 (AntSeed SDK formula, recomputed by us)
  • sellers[].ghost_ratenumber | null
    Share of channels opened and never settled, 0 to 1
  • sellers[].wash_registryboolean
    Proven wash trader in AntSeed's on-chain registry (chain fact)
  • sellers[].organicboolean
    In our Organic view: not in the registry and not in a cluster we confirmed (our judgement)
  • sellers[].first_settle_tsinteger | null
    First settlement, UTC seconds (null if none)
  • sellers[].last_settle_tsinteger | null
    Last settlement, UTC seconds (null if none)

Cache 5 to 8 min. Sources: figures = chain, name = announce, reputation = antseedstats, wash_registry = chain, organic = antseedstats.

GET/sellers/{address}One seller: totals, trust, verification

Everything the seller page shows. trust holds the four weighted parts of the AntSeed trust score (history 50, usage 20, power 10, identity 20) as we recompute them from on-chain inputs; wash_registry comes from the registry contract.

curl "https://antseedstats.com/api/v1/sellers/0xd19ffae0e85b5230422019926b2f37ec0f1f41f3"
/api/v1
Parameters
  • addresspath · address · required
    Seller address (0x, 40 hex, any case)
Response fields (39)
  • addressstring
    Lowercase 0x
  • agent_idstring | null
    On-chain agent id
  • peer_idstring | null
    DHT peer id
  • namestring | null
    Announced name (untrusted)
  • rankinteger | null
    Position by lifetime revenue
  • sharenumber | null
    Share of lifetime network revenue, 0 to 1
  • revenue_microinteger
    revenue in micro-USDC (integer, 6 decimals)
  • revenue_usdstring
    revenue in USDC, formatted with 2 decimals
  • revenue_7d_microinteger
    revenue 7d in micro-USDC (integer, 6 decimals)
  • revenue_7d_usdstring
    revenue 7d in USDC, formatted with 2 decimals
  • revenue_prev_7d_microinteger
    revenue prev 7d in micro-USDC (integer, 6 decimals)
  • revenue_prev_7d_usdstring
    revenue prev 7d in USDC, formatted with 2 decimals
  • fees_microinteger
    fees in micro-USDC (integer, 6 decimals)
  • fees_usdstring
    fees in USDC, formatted with 2 decimals
  • settlesinteger
    Settlements
  • channelsinteger
    Channels
  • buyersinteger
    Distinct buyers
  • tokensinteger
    Tokens served
  • requestsinteger
    Requests
  • reputationnumber | null
    Trust score 0 to 100
  • trust.historynumber | null
    0 to 50
  • trust.usagenumber | null
    0 to 20
  • trust.powernumber | null
    0 to 10
  • trust.identitynumber | null
    0 to 20
  • trust.identity_kindstring | null
    Kind of identity claim
  • trust.epochinteger | null
    Epoch the score was computed for
  • ghost_ratenumber | null
    Channels never settled over channels opened, 0 to 1
  • stake_usdcnumber | null
    USDC stake on-chain
  • verifiedboolean
    Has a domain or GitHub proof we verified
  • verification[]array
  • verification[].kindstring
    domain or github
  • verification[].targetstring
    Domain or GitHub user
  • verification[].verifiedboolean
    Effective state
  • verification[].hrefstring
    Verified resource
  • liveboolean
    Announcing on the DHT now
  • wash_registryboolean
    Proven wash trader on-chain
  • organicboolean
    In our Organic view
  • first_settle_tsinteger | null
    UTC seconds
  • last_settle_tsinteger | null
    UTC seconds

Cache 45 s. Sources: figures = chain, name = announce, prices = announce, reputation = antseedstats, verification = antseedstats, wash_registry = chain, organic = antseedstats.

GET/sellers/{address}/dailyOne seller per UTC day (the cross-check)

The cross-check series. settled is what changed hands on-chain for this seller that day (every ChannelSettled where it is the seller), which is why it can differ from what the seller measured as served. Tokens come from MetadataRecorded for the seller's agent and are null for announce-only peers.

curl "https://antseedstats.com/api/v1/sellers/0xd19ffae0e85b5230422019926b2f37ec0f1f41f3/daily?from=2026-09-30&to=2026-10-06"
/api/v1
Parameters
  • addresspath · address · required
    Seller address (0x, 40 hex, any case)
  • fromquery · date
    First UTC day, YYYY-MM-DD (default: 30 days ago)
  • toquery · date
    Last UTC day, YYYY-MM-DD (default: today)
  • formatquery · json | csv · default json
    json (default) or csv
Response fields (13)
  • addressstring
    Lowercase 0x
  • fromstring
    First day
  • tostring
    Last day
  • days[]array
  • days[].daystring
    UTC day
  • days[].settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • days[].settled_usdstring
    settled in USDC, formatted with 2 decimals
  • days[].fees_microinteger
    fees in micro-USDC (integer, 6 decimals)
  • days[].fees_usdstring
    fees in USDC, formatted with 2 decimals
  • days[].settlesinteger
    Settlements
  • days[].buyersinteger
    Distinct buyers
  • days[].tokens_ininteger | null
    Input tokens
  • days[].tokens_outinteger | null
    Output tokens

Cache 5 to 8 min. Sources: days = chain.

GET/sellers/{address}/modelsWhat a seller advertises and sold

advertised is the signed metadata as the network sees it (prices in USD per 1M tokens). sold is decoded from settlements whose buyers shared a per-model split, so it is a lower bound and names come as advertised.

curl "https://antseedstats.com/api/v1/sellers/0xd19ffae0e85b5230422019926b2f37ec0f1f41f3/models"
/api/v1
Parameters
  • addresspath · address · required
    Seller address (0x, 40 hex, any case)
Response fields (19)
  • addressstring
    Lowercase 0x
  • advertised[]array
  • advertised[].modelstring
    Canonical id
  • advertised[].model_displaystring
    Name
  • advertised[].advertised_asstring
    Raw announced name
  • advertised[].input_usd_per_mnumber | null
    USD per 1M input
  • advertised[].cached_input_usd_per_mnumber | null
    USD per 1M cached input
  • advertised[].output_usd_per_mnumber | null
    USD per 1M output
  • advertised[].freeboolean
    0 and 0
  • advertised[].protocolsstring | null
    CSV of API protocols
  • advertised[].categoriesstring | null
    Seller tags, CSV
  • sold[]array
  • sold[].modelstring
    Canonical id
  • sold[].model_displaystring
    Name
  • sold[].settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • sold[].settled_usdstring
    settled in USDC, formatted with 2 decimals
  • sold[].tokensinteger
    Tokens
  • sold[].requestsinteger
    Requests
  • sold[].buyersinteger
    Distinct buyers

Cache 90 s. Sources: advertised = announce, sold = chain.

Models and prices
GET/modelsCatalogue: sellers, prices, usage

One row per canonical model (name variants merged). Prices are the min and max advertised across sellers. Usage is lifetime and a lower bound (per-model splits are opt-in). all counts every seller; organic leaves out wash-trading sellers. The default view is organic, like the site; models with no organic usage are still listed.

curl "https://antseedstats.com/api/v1/models?view=organic&limit=10"
/api/v1
Parameters
  • viewquery · all | organic · default organic
    organic leaves out sellers in the on-chain wash registry plus our confirmed clusters; all keeps every seller
  • sortquery · revenue | tokens | requests | sellers · default revenue
    Sort key, descending, applied to the chosen view
  • limitquery · int · default 100
    Rows to return (1 to 1000)
  • offsetquery · int · default 0
    Rows to skip
Response fields (27)
  • totalinteger
    Models
  • models[]array
  • models[].modelstring
    Canonical id
  • models[].displaystring
    Name
  • models[].customboolean
    A seller's own model, not in any catalog
  • models[].sellersinteger
    Sellers advertising it
  • models[].image_generationboolean
    Priced per image
  • models[].min_input_usd_per_mnumber | null
    Cheapest input price
  • models[].max_input_usd_per_mnumber | null
    Dearest input price
  • models[].min_output_usd_per_mnumber | null
    Cheapest output
  • models[].max_output_usd_per_mnumber | null
    Dearest output
  • models[].min_image_usdnumber | null
    Cheapest price per image
  • models[].usageobject
    In the chosen view
  • models[].usage.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • models[].usage.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • models[].usage.tokensinteger
    Tokens
  • models[].usage.imagesinteger
    Images
  • models[].usage.requestsinteger
    Requests
  • models[].usage.buyersinteger
    Buyers
  • models[].usage.sellersinteger
    Sellers with sales
  • models[].usage_allobject
    Every seller, always
  • models[].usage_all.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • models[].usage_all.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • models[].usage_all.tokensinteger
    Tokens
  • models[].usage_all.requestsinteger
    Requests
  • models[].usage_all.buyersinteger
    Buyers
  • models[].usage_all.sellersinteger
    Sellers with sales

Cache 5 to 8 min. Sources: prices = announce, usage = chain, organic = antseedstats.

GET/models/{id}Where to buy one model

Accepts the canonical id or any advertised spelling. Sellers are deduplicated (cheapest input price) and sorted by price. Use reputation, verified and organic to pick; the list hides nobody.

curl "https://antseedstats.com/api/v1/models/kimi-k3"
/api/v1
Parameters
  • idpath · string · required
    Canonical model id or an advertised name
Response fields (31)
  • modelstring
    Canonical id
  • displaystring
    Name
  • customboolean
    Seller's own model
  • advertised_as[]array
  • usageobject
    Lifetime, every seller, lower bound
  • usage.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • usage.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • usage.tokensinteger
    Tokens
  • usage.requestsinteger
    Requests
  • usage.buyersinteger
    Buyers
  • usage.sellersinteger
    Sellers
  • usage_organic.settled_microinteger
    settled in micro-USDC (integer, 6 decimals)
  • usage_organic.settled_usdstring
    settled in USDC, formatted with 2 decimals
  • usage_organic.tokensinteger
    Tokens
  • usage_organic.requestsinteger
    Requests
  • usage_organic.buyersinteger
    Buyers
  • usage_organic.sellersinteger
    Sellers
  • sellers[]array
  • sellers[].addressstring | null
    Lowercase 0x
  • sellers[].agent_idstring
    Agent id
  • sellers[].namestring | null
    Announced name (untrusted)
  • sellers[].advertised_asstring
    Raw name
  • sellers[].input_usd_per_mnumber | null
    USD per 1M input
  • sellers[].cached_input_usd_per_mnumber | null
    USD per 1M cached input
  • sellers[].output_usd_per_mnumber | null
    USD per 1M output
  • sellers[].image_usdnumber | null
    USD per image
  • sellers[].freeboolean
    0 and 0
  • sellers[].reputationnumber | null
    Trust score
  • sellers[].verifiedboolean
    Verified proof
  • sellers[].organicboolean
    In our Organic view
  • sellers[].request_idstring | null
    peerId@model, what a buyer sends

Cache 90 s. Sources: prices = announce, reputation = antseedstats, organic = antseedstats, usage = chain.

GET/pricesEvery listing with list-price savings

The network explorer flattened: one row per seller and model with the advertised prices, whether it is free, the OpenRouter list price for the same model and the saving against it. Filter by model to compare sellers.

curl "https://antseedstats.com/api/v1/prices?model=kimi-k3"
/api/v1
Parameters
  • modelquery · string
    Canonical model id to filter on
  • freequery · bool
    true: only free listings; false: only paid
  • viewquery · all | organic · default all
    organic leaves out sellers in the on-chain wash registry plus our confirmed clusters; all keeps every seller
  • limitquery · int · default 100
    Rows to return (1 to 1000)
  • offsetquery · int · default 0
    Rows to skip
Response fields (18)
  • totalinteger
    Listings matching
  • listings[]array
  • listings[].sellerstring
    Lowercase 0x address
  • listings[].seller_namestring | null
    Announced display name (untrusted text)
  • listings[].agent_idstring | null
    On-chain agent id
  • listings[].modelstring
    Canonical model id (the /models/{id} slug)
  • listings[].model_displaystring
    Display name
  • listings[].advertised_asstring
    The raw name the seller announces
  • listings[].input_usd_per_mnumber | null
    USD per 1M input tokens
  • listings[].cached_input_usd_per_mnumber | null
    USD per 1M cached input tokens
  • listings[].output_usd_per_mnumber | null
    USD per 1M output tokens
  • listings[].freeboolean
    Input and output both priced at 0
  • listings[].list_input_usd_per_mnumber | null
    OpenRouter list price for the same model, USD per 1M input
  • listings[].save_pctinteger | null
    Percent below the list price, 1 to 99, only when the listing beats it
  • listings[].reputationnumber | null
    Trust score 0 to 100
  • listings[].verifiedboolean
    Has a domain or GitHub proof we verified
  • listings[].organicboolean
    Seller in our Organic view
  • listings[].capabilities[]array

Cache 90 s. Sources: prices = announce, list_price = antseedstats, reputation = antseedstats, organic = antseedstats.

Epochs and $ANTS
GET/epochsEvery epoch: emission, points, burn

Epochs are 7 days from genesis (2026-04-09 09:54:21 UTC). Points are the on-chain usage accruals in USDC; from epoch 22 they come from the usage accounting contract, which leaves out registry-proven wash traders, so totals drop at that boundary for the same real activity. burn_ants is what the gate burned at the close of that epoch.

curl "https://antseedstats.com/api/v1/epochs"
/api/v1
Response fields (13)
  • currentinteger
    Current epoch number
  • epochs[]array
  • epochs[].epochinteger
    Number
  • epochs[].starts_tsinteger
    UTC seconds
  • epochs[].ends_tsinteger
    UTC seconds
  • epochs[].statusstring
    complete, current or future
  • epochs[].emission_antsnumber
    Emission for the epoch
  • epochs[].modelstring
    legacy or recognized
  • epochs[].seller_points_microinteger
    seller points in micro-USDC (integer, 6 decimals)
  • epochs[].seller_points_usdstring
    seller points in USDC, formatted with 2 decimals
  • epochs[].buyer_points_microinteger
    buyer points in micro-USDC (integer, 6 decimals)
  • epochs[].buyer_points_usdstring
    buyer points in USDC, formatted with 2 decimals
  • epochs[].burn_antsnumber | null
    ANTS burned at close (null before the burn)

Cache 5 to 8 min. Sources: epochs = chain.

GET/epochs/{n}One epoch, live economics if current

Same row as /epochs. For the current epoch, economics adds the budget per bucket, the usage and stake inputs and the projected burn as read from the gate now. buyer_ants_per_usd_projected divides the buyer budget by buyer usage so far: our projection, it settles only at epoch close.

curl "https://antseedstats.com/api/v1/epochs/25"
/api/v1
Parameters
  • npath · int · required
    Epoch number
Response fields (37)
  • epochinteger
    Number
  • starts_tsinteger
    UTC seconds
  • ends_tsinteger
    UTC seconds
  • statusstring
    complete, current or future
  • emission_antsnumber
    Emission
  • modelstring
    legacy or recognized
  • seller_points_microinteger
    seller points in micro-USDC (integer, 6 decimals)
  • seller_points_usdstring
    seller points in USDC, formatted with 2 decimals
  • buyer_points_microinteger
    buyer points in micro-USDC (integer, 6 decimals)
  • buyer_points_usdstring
    buyer points in USDC, formatted with 2 decimals
  • burn_antsnumber | null
    Burned at close
  • economics.minted_antsnumber
    Minted so far this epoch
  • economics.allocated_antsnumber
    Budgets granted
  • economics.unallocated_antsnumber
    Left over
  • economics.buckets[]array
  • economics.buckets[].keystring
    Bucket
  • economics.buckets[].cap_pctnumber
    Ceiling, % of emission
  • economics.buckets[].cap_antsnumber
    Ceiling
  • economics.buckets[].allocated_antsnumber
    Granted
  • economics.buckets[].dynamicboolean
    Scales with usage or stake
  • economics.burn.cap_antsnumber
    30% of emission
  • economics.burn.projected_antsnumber
    If someone settles
  • economics.burn.realized_antsnumber
    Burned so far
  • economics.usage.seller_microinteger
    seller in micro-USDC (integer, 6 decimals)
  • economics.usage.seller_usdstring
    seller in USDC, formatted with 2 decimals
  • economics.usage.buyer_microinteger
    buyer in micro-USDC (integer, 6 decimals)
  • economics.usage.buyer_usdstring
    buyer in USDC, formatted with 2 decimals
  • economics.usage.target_microinteger
    target in micro-USDC (integer, 6 decimals)
  • economics.usage.target_usdstring
    target in USDC, formatted with 2 decimals
  • economics.usage.pct_of_targetnumber
    Input over target, %
  • economics.usage.seller_budget_antsnumber
    Seller usage budget
  • economics.usage.buyer_budget_antsnumber
    Buyer usage budget
  • economics.stake.active_antsnumber
    Active stake
  • economics.stake.target_antsnumber
    Target
  • economics.stake.pct_of_targetnumber
    %
  • economics.buyer_ants_per_usd_projectednumber | null
    Buyer budget over buyer usage so far
  • economics.degradedboolean
    True when a chain read failed and these figures are not trustworthy

Cache 45 s. Sources: epoch = chain, economics = chain, buyer_ants_per_usd_projected = antseedstats.

GET/ants/supply$ANTS minted, emitted, burned, staked

The canonical token is 0xa87EE81b2C0Bc659307ca2D9ffdC38514DD85263 (transfers gated, no market price; an unrelated token with the same ticker is indexed elsewhere). emitted_ants counts completed epochs only. The partition is null when any identity it depends on failed to tie out.

curl "https://antseedstats.com/api/v1/ants/supply"
/api/v1
Response fields (19)
  • tokenstring
    Canonical $ANTS address
  • transfers_enabledboolean
    Token transfers open to everyone
  • total_supply_antsnumber
    totalSupply, includes burned-to-dead
  • max_supply_antsnumber
    Cap
  • emitted_antsnumber
    Completed-epoch emission
  • burned_antsnumber | null
    Both burn sinks
  • burned_dead_antsnumber
    At 0x...dEaD
  • partition.staked_antsnumber
    In pools
  • partition.stakable_antsnumber | null
    Staked plus earned not yet staked
  • partition.staked_pctnumber | null
    Staked over stakable
  • partition.minted_antsnumber
    Minted
  • partition.pre22_antsnumber
    Minted before epoch 22
  • partition.segments[]array
  • partition.segments[].keystring
    Segment
  • partition.segments[].antsnumber
    ANTS
  • partition.segments[].pctnumber
    % of total
  • burns[]array
  • burns[].epochinteger
    Epoch
  • burns[].antsnumber
    Burned at its close

Cache 5 to 8 min. Sources: supply = chain, partition = chain.

Health
GET/statusIndexer head, lag, subsystems

Never cached. last_indexed_block is the oldest watermark across the ingestion streams, which is also the as_of_block every other endpoint reports.

curl "https://antseedstats.com/api/v1/status"
/api/v1
Response fields (13)
  • overallstring
    ok, warn or down
  • head_blockinteger | null
    Base head, read live
  • last_indexed_blockinteger | null
    Oldest stream watermark
  • lag_blocksinteger | null
    head minus last indexed
  • streams[]array
  • streams[].keystring
    Stream
  • streams[].last_blockinteger
    Watermark
  • streams[].lag_blocksinteger | null
    Lag
  • streams[].statusstring
    ok, warn or down
  • subsystems[]array
  • subsystems[].keystring
    Subsystem
  • subsystems[].statusstring
    ok, warn or down
  • subsystems[].detailstring
    Human summary

Cache never cached. Sources: status = antseedstats.

Built by @gekko_eth. Missing an endpoint? Ask there. An MCP server for AI clients is next.