Public API
A free, read-only JSON API for everything locked and vesting on Elyport. Built for DEXes, screeners, explorers, bots and dashboards.
At a glance
- Base URL
- https://elyport.com/api/v1
- Auth
- None, no API key
- CORS
- Open to every origin
- Freshness
- Cached about 30 seconds
Endpoints
| GET | Returns |
|---|---|
/token/{address} | Token info, supply and liquidity locked, every lock and vesting schedule |
/lock/{id} | One lock |
/vesting/{id} | One vesting schedule, with what is claimable now |
/wallet/{address} | Locks a wallet owns, vesting it receives and vesting it created |
/stats | Total locks and schedules, contract addresses |
/ | Index of endpoints |
Token example
The endpoint most integrations need. Show a “liquidity locked” label next to a pair in one request.
Request
curl https://elyport.com/api/v1/token/0xYourTokenResponse (shortened)
{
"token": { "address": "0x…", "symbol": "TOKEN", "decimals": 18, "totalSupply": "1000000000000000000000000000" },
"summary": {
"activeLocks": 3,
"supplyLockedPercent": 15.2,
"bestLiquidityLockedPercent": 92.4,
"nextUnlock": 1798761600,
"vestingSchedules": 12
},
"liquidity": [
{ "pair": "0x…", "lockedPercent": 92.4, "lockedUntil": 1830297600, "locks": 1 }
],
"locks": [ { "id": "4", "isLP": true, "amount": "…", "unlockAt": 1830297600, "status": "locked", "url": "https://elyport.com/lock/4" } ],
"vesting": [ … ],
"links": { "page": "…", "claim": "…", "badge": "…", "lockWidget": "…", "claimWidget": "…" }
}Data format
- Amounts are strings in the token's smallest unit (like wei), so large numbers stay exact.
- Times are Unix timestamps in seconds.
- Percentages are numbers from 0 to 100.
- Lock status is
locked,unlockedorwithdrawn.
Errors
| Status | When |
|---|---|
| 400 | The address or id is not valid |
| 404 | That lock or schedule does not exist |
| 502 | Elysium could not be reached, try again shortly |
Errors return { "error": "message" }.
From JavaScript
fetch
const r = await fetch("https://elyport.com/api/v1/token/" + token);
const { summary } = await r.json();
if (summary.bestLiquidityLockedPercent >= 90) showBadge("Liquidity locked");