Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ANT Supply API

Public supply data for the Autonomi Network Token (ANT), served at https://api.autonomi.com. CoinMarketCap and CoinGecko poll the two plain-text endpoints below; anything may read the JSON ones.

Runs as a Cloudflare Worker named api (worker/index.js) in the Autonomi Cloudflare account. This repository is the source of truth — see How this is deployed.

Stale-over-error: if the Arbitrum RPC is unavailable, the supply endpoints serve the last good figure (from in-memory or Cache API fallback) with an X-Stale: true header instead of a 500 — a slightly stale number beats an error for CMC/CoinGecko. A 500 only occurs if no figure has ever been computed.

Endpoint contract

Endpoint Content type Returns
GET / application/json Machine-readable index of everything this host serves
GET /api/health application/json {"status":"healthy","service":"ANT Supply API","timestamp":"<ISO>"}
GET /api/total-supply text/plain Bare integer string, e.g. 1200000000
GET /api/circulating-supply text/plain Bare integer string, e.g. 342278929
GET /api/supply application/json Detailed breakdown (see below)

The two plain-text endpoints return a bare number with no JSON wrapper — this is the format CoinMarketCap and CoinGecko require and must not change. All endpoints send Access-Control-Allow-Origin: *. Supply endpoints accept GET/OPTIONS only (405 otherwise, including HEAD).

Circulating supply definition

circulating = 1,200,000,000 − Σ(excluded wallet balances), read live from the ANT contract on Arbitrum One (0xa78d8321B20c4Ef90eCd72f2588AA985A4BDb684) via public RPC endpoints (a fallback list in worker/index.js, tried in order because public RPCs rate-limit Cloudflare's shared egress IPs), cached for 60 seconds. Excluded wallets:

  1. Network Emissions0xdA4f3aF146f86850DE8e0D6FaE6EEe051Ad0AA44
  2. MAID Airdrop Wallet0x675D39cdCEA31ba8313565b03D684A3bbe183a1a
  3. Foundation Cold Wallet0x4f7B7fd0533d06D2ABFad07eAe57C9CE8E92B670
  4. Foundation Hot Wallet0xd10A556E6A5111b5D4Dd5Ae06761d41F6CE1D499
  5. Shareholder NFT Contract0x1617C551E1d63e693b0F6B42FE5352a79f2F9961

Changing this list is a change to the published circulating supply figure — treat it as a reviewed change (PR), and mirror any change in this README.

/api/supply response shape

{
  "total_supply": "1200000000",
  "circulating_supply": "342278929",
  "total_excluded": "857721070",
  "excluded_wallets": [
    { "name": "...", "address": "0x...", "purpose": "...", "balance": "...", "balance_with_decimals": "..." }
  ],
  "timestamp": "<ISO>",
  "decimals": 18,
  "token": { "name": "Autonomi Network Token", "symbol": "ANT", "contract": "0x...", "blockchain": "Arbitrum One" }
}

How this is deployed

  • Config as code. Worker code, routes, and settings live in this repo (wrangler.jsonc). The Cloudflare dashboard is for looking, not editing — dashboard changes are invisible to git and overwritten by the next deploy.
  • Deploys run from GitHub Actions (.github/workflows/deploy.yml) on every merge to main, using a scoped Cloudflare API token stored as the repo secret CLOUDFLARE_API_TOKEN. No laptop deploys, no personal credentials.
  • Staging: every deploy also serves at https://api.autonomi.workers.dev (note: workers.dev sits behind Cloudflare bot protection and may 403 some non-browser user agents; the production hostname is the contract). CI also runs a public-contract test against api.autonomi.com, including automation user-agents, so a zone bot-protection change that would block machine clients fails the build.
  • Production domain (api.autonomi.com) is declared in wrangler.jsonc — enabling/changing it happens via a reviewed commit.

Secrets

None. The Worker reads public RPC endpoints and holds no credentials. If a secret is ever added, set it via wrangler secret put / Actions secrets and document its name only here.

Local development

npx wrangler dev          # local simulator on http://localhost:8787

Legacy

/api/*.js are the original Vercel serverless functions this Worker replaced (identical behaviour, verified byte-for-byte at migration). They are kept for reference until the Vercel project is retired, then removed.

About

ANT Token Supply API for CoinMarketCap and CoinGecko

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages