Elyport
Docs/Build with Elyport

Public API

A free, read-only JSON API for everything locked and vesting on Elyport. Built for DEXes, screeners, explorers, bots and dashboards.

Updated 10 November 20264 min read

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

GETReturns
/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
/statsTotal 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/0xYourToken
Response (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, unlocked or withdrawn.

Errors

StatusWhen
400The address or id is not valid
404That lock or schedule does not exist
502Elysium 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");