Skip to content

New launches

GET
/arc/graduated
curl --request GET \
--url 'https://api.getchord.xyz/v1/arc/graduated?hours=48&limit=100'

Tokens whose first pool on Arc was created inside the window, routable by the engine today and screened: impostor symbols, launch farms (one creator, many pools), no-sell tokens and too few traders are removed and counted in screened. Newest first, with the launcher named where the registry knows it.

Use it for: a “new pairs” feed, launch forensics, an agent watching launches.

hours
integer
default: 48 >= 1 <= 168
limit
integer
default: 100 >= 1 <= 200
Media typeapplication/json
object
chain
integer
Allowed value: 5042
hours
integer
tokens
Array
object
address

EVM address, hex, case-insensitive.

string
/^0x[a-fA-F0-9]{40}$/
symbol
string | null
name
string | null
decimals
integer | null
logoURI

Logo through Chord’s proxy (/v1/logo/5042/{address}, 128 px WebP).

string | null
logoUriRaw

The upstream logo URL the proxy fetched, when there is one.

string | null
tags

stablecoin, fx, stock, … — from the curated list; empty for unlisted tokens.

Array<string>
listed

On the curated Arc token list (metadata and logo vetted).

boolean
priceUsd

Last trade price on the token’s dominant venue, USD.

number | null
change24hPct
number | null
volume24h

USD, every venue, no dust floor.

number
buyVolume24h
number
sellVolume24h
number
trades24h
integer
buys24h
integer
sells24h
integer
traders

Distinct attributed wallets over the board’s day window. Routers, executors and bots are not wallets.

integer
lastTradeTs

Unix time, seconds, UTC.

integer
totalSupply

totalSupply() in whole tokens. Null when unreadable.

number | null
marketCapUsd

TotalSupply × price — fully diluted, since nothing on-chain says what is locked.

number | null
pools

Indexed pools holding the token.

object
v3
integer
v2
integer
v4
integer
byDex

Pool count per venue id (uniswap_v3, uniswap_v4, pools_trade, slipstream_fork, v3fork_<8hex>, …).

object
key
additional properties
integer
routable

The engine can quote this token today (at least one pool against a routing anchor).

boolean
flags

Honesty flags. wash = a day’s volume carried by one or two wallets; impostor = an unlisted token wearing a listed symbol. Absent when clean.

Array<string>
Allowed values: wash impostor
launchedAt

Unix time, seconds, UTC.

integer
launcher

Contract the creating transaction called (create = a raw deploy).

string
launcherName

Name from the launcher registry, when known.

string | null
creator

EVM address, hex, case-insensitive.

string
/^0x[a-fA-F0-9]{40}$/
ageSec
integer
total
integer
screened

How many launches each screen removed.

object
not_routable
integer
impostor
integer
no_sells
integer
few_traders
integer
serial_creator
integer
no_trades
integer
no_symbol
integer
updatedAt

Unix time, milliseconds — when the server built this answer.

integer
Example
{
"chain": 5042,
"hours": 48,
"tokens": [
{
"address": "0xf31599ae7a1a2c7e3d99f2bf307c44a71196e987",
"symbol": "DePIN",
"name": "X DePIN",
"decimals": 18,
"logoURI": null,
"tags": [],
"listed": false,
"priceUsd": 0.000011092869541991106,
"change24hPct": null,
"volume24h": 55.392897000000005,
"buyVolume24h": 55.392897000000005,
"sellVolume24h": 0,
"trades24h": 2,
"buys24h": 2,
"sells24h": 0,
"traders": 3,
"lastTradeTs": 1789891653,
"totalSupply": 1000000000,
"marketCapUsd": 11092.869541991106,
"pools": {
"v3": 0,
"v2": 1,
"v4": 0,
"byDex": {
"uniswap_v2": 1
}
},
"routable": true,
"launchedAt": 1789891314,
"launcher": "0x89e5db8b5aa49aa85ac63f691524311aeb649eba",
"creator": "0xd4bd5a99286f728f9529dc8a1fc8b1c702c04497",
"ageSec": 540,
"launcherName": null
},
{
"address": "0xa210789b8b0666afa2d4ed00cf701083a2d72c52",
"symbol": "RWA",
"name": "X RWA",
"decimals": 18,
"logoURI": null,
"tags": [],
"listed": false,
"priceUsd": 0.000011336625606769674,
"change24hPct": null,
"volume24h": 430.557449,
"buyVolume24h": 430.557449,
"sellVolume24h": 0,
"trades24h": 17,
"buys24h": 17,
"sells24h": 0,
"traders": 17,
"lastTradeTs": 1789891140,
"totalSupply": 1000000000,
"marketCapUsd": 11336.625606769674,
"pools": {
"v3": 0,
"v2": 1,
"v4": 0,
"byDex": {
"uniswap_v2": 1
}
},
"routable": true,
"launchedAt": 1789890414,
"launcher": "0x89e5db8b5aa49aa85ac63f691524311aeb649eba",
"creator": "0xd4bd5a99286f728f9529dc8a1fc8b1c702c04497",
"ageSec": 1440,
"launcherName": null
}
],
"total": 85,
"screened": {
"not_routable": 2614,
"impostor": 4,
"no_sells": 13,
"few_traders": 68,
"serial_creator": 1615,
"no_trades": 23098,
"no_symbol": 0
},
"updatedAt": 1789891854594
}

Invalid parameters — error names the check that failed (INVALID_PARAMS, BAD_ADDRESS, BAD_LIMIT, BAD_HOURS, …).

Media typeapplication/json

Every non-2xx body.

object
error
required

Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.

string
message

For humans.

string
statusCode

HTTP status, when included.

integer
Example
{
"error": "INVALID_PARAMS",
"message": "amount must be an integer string in the token's smallest unit"
}

The lane behind this endpoint is not ready or not enabled here (NOT_READY, CHAIN_NOT_ENABLED, NOT_ENABLED, *_UNAVAILABLE). Retry later; do not treat it as an empty answer.

Media typeapplication/json

Every non-2xx body.

object
error
required

Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.

string
message

For humans.

string
statusCode

HTTP status, when included.

integer
Example
{
"error": "INVALID_PARAMS",
"message": "amount must be an integer string in the token's smallest unit"
}