Developers · API v1

Silex API Documentation

A stable, anonymous and read-only interface for publicly listed Cronos project intelligence.

Quick start

The base URL is /api/v1. Public API v1 requires no API key. It accepts only GET, HEAD and CORS preflight OPTIONS requests.

curl /api/v1/projects

Local development uses the current local origin. Production examples automatically use the deployed page origin; no localhost host is baked into this guide.

Browser project pages use /token/cronos/<contract>. That human-facing route is intentionally separate from the unchanged machine endpoint /api/v1/projects/25/<contract>.

Response conventions

Singular resources use { "data": { ... } }. Collections use data plus a stable opaque cursor. Missing numerical data is always JSON null, never 0, "unknown" or "N/A".

{
  "data": [],
  "pagination": { "limit": 25, "nextCursor": null }
}

Pagination

Project, Verified and event collections default to 25 records and accept at most 100. Pass the returned opaque nextCursor unchanged to retrieve the next deterministic page. Trending accepts at most 25 current items.

Rate limit and CORS

Anonymous clients receive 60 requests per minute per IP by default. Deployments may configure this quota. Responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset; a 429 also includes Retry-After. Only public /api/v1 read routes send Access-Control-Allow-Origin: *. Cookies and credentials are neither required nor permitted by this policy.

Projects

GET/projects

Lists only editorially LISTED projects. Optional filters: chainId=25, verified=true|false and the normalized primary dex identifier.

GET/projects/{chainId}/{address}

Returns one project by canonical chain ID and EVM contract. Cronos chain ID 25 is the only supported chain in v1. Private listing states return the same 404 as an unknown record.

{
  "data": {
    "chainId": 25,
    "address": "0x0000000000000000000000000000000000000000",
    "name": "Example",
    "symbol": "EXM",
    "decimals": 18,
    "totalSupply": "1000000000000000000000000",
    "supply": {
      "decimals": 18,
      "totalSupplyRaw": "1000000000000000000000000",
      "deadSupplyRaw": "150000000000000000000000",
      "burnAdjustedSupplyRaw": "850000000000000000000000",
      "circulatingSupplyRaw": null,
      "source": "CRONOS_RPC",
      "state": "KNOWN",
      "observedAt": "2026-08-22T10:30:00.000Z",
      "blockNumber": "38765432",
      "policyVersion": "CRONOS_DEAD_ONLY_V1"
    },
    "market": {
      "priceUsd": 0.0042,
      "priceNative": 0.00001,
      "marketCapUsd": 3100,
      "marketCapMethod": "PROVIDER_REPORTED",
      "marketCapConfidence": "PROVIDER_REPORTED",
      "estimatedMarketCapUsd": 3570,
      "estimatedMarketCapUsdState": "KNOWN",
      "estimatedMarketCapUsdUsingLastKnownGood": false,
      "estimatedMarketCapUsdObservedAt": "2026-08-22T10:30:00.000Z",
      "estimatedMarketCapMethod": "ONCHAIN_BURN_ADJUSTED_SUPPLY_X_PRICE",
      "estimatedMarketCapConfidence": "ESTIMATE",
      "fdvUsd": 4200,
      "totalLiquidityUsd": 182000,
      "totalVolume24hUsd": 41000,
      "marketCount": 3,
      "aggregateComplete": true,
      "missingMarketCount": 0,
      "liquidityUsd": 182000,
      "volume24hUsd": 41000,
      "primaryDex": "vvs",
      "primaryPair": "0x0000000000000000000000000000000000000001",
      "primaryMarket": {
        "dex": "vvs",
        "name": "VVS Finance",
        "symbol": "VVS",
        "pairAddress": "0x0000000000000000000000000000000000000001",
        "liquidityUsd": 140000,
        "volume24hUsd": 30000
      },
      "updatedAt": "2026-08-22T10:30:00.000Z",
      "source": "DEXSCREENER"
    },
    "verification": {
      "projectVerified": false,
      "contractVerified": true,
      "verifiedAt": null,
      "reportId": null
    },
    "watch": null,
    "trending": null,
    "indexedAt": "2026-08-22T10:30:00.000Z"
  }
}

marketCapUsd, estimatedMarketCapUsd and fdvUsd are separate values. marketCapUsd is never populated from FDV or from Silex's estimate; inspect marketCapMethod and marketCapConfidence to distinguish verified from provider-reported provenance. estimatedMarketCapUsd is an upper-bound estimate calculated from the indexed price and on-chain total supply minus the recognized irreversible burn address. It is not verified circulating market cap. A client may use it when marketCapUsd is null, but must visibly label the value Estimated or Est. and must not rewrite or cache it as marketCapUsd.

The optional supply object preserves exact raw integer strings for totalSupplyRaw, deadSupplyRaw and burnAdjustedSupplyRaw, plus decimals, source, state, observation time, block number and policy version. circulatingSupplyRaw remains null unless circulating supply is independently verified; burn-adjusted supply is never presented as verified circulating supply. The backward-compatible totalSupply field also remains an exact raw integer string.

totalLiquidityUsd and totalVolume24hUsd sum each unique supported, known, non-removed Cronos pool with a current or explicitly retained safe value once. marketCount is the backward-compatible supported known-market count. detectedMarketCount is the full retained canonical inventory; includedMarketCount contributes to the aggregate, while excludedMarketCount remains known but is excluded, including unsupportedDexMarketCount. The invariant is detectedMarketCount = includedMarketCount + excludedMarketCount. Consult the state/count fields when inventory is unavailable. Price, market capitalization and FDV are never summed or naively averaged. The v1 aliases liquidityUsd and volume24hUsd remain available and explicitly carry the same token-total values. Pair-specific primary values remain under primaryMarket.

aggregateComplete=false means one or more detected observations were stale or lacked a required metric. Missing values remain null; Silex does not silently convert unknown data to zero. Normalized USD values and percentages are JSON numbers.

Watch Intelligence

GET/projects/{chainId}/{address}/watch

Returns the current public Watch state or null until a substantive current-epoch baseline exists. Status is one of NORMAL, CAUTION, HIGH_RISK or INACTIVE. This project-level state is distinct from event severity.

{
  "data": {
    "status": "CAUTION",
    "calculatedAt": "2026-08-22T10:30:00.000Z",
    "lastObservedAt": "2026-08-22T10:29:00.000Z",
    "summary": "1 active Watch event.",
    "activeReasons": [{
      "eventId": "watch_evt_example",
      "severity": "NOTABLE",
      "summary": "Liquidity decreased 28.4%."
    }]
  }
}
GET/projects/{chainId}/{address}/events

Returns structured public events. Optional filters are severity, type and ISO 8601 since. Internal source-degradation events and provider diagnostics are never returned. The human-readable summary accompanies—not replaces—the stable machine fields.

{
  "data": [{
    "id": "watch_evt_example",
    "type": "LIQUIDITY_DECREASE",
    "severity": "NOTABLE",
    "status": "OPEN",
    "detectedAt": "2026-08-22T10:30:00.000Z",
    "summary": "Liquidity decreased 33.82%",
    "previousValue": 48200,
    "currentValue": 31900,
    "percentageChange": -33.8
  }],
  "pagination": { "limit": 25, "nextCursor": null }
}

Event severity

SeverityMeaning
INFOMeaningful but relatively small observed change.
NOTABLEMaterial observed change worth attention.
MAJORLarge observed change crossing a major configured threshold or structural rule.
CRITICALExtreme observed change crossing Silex's highest configured threshold.

Severity belongs to one event, not to the project permanently. A project may be CAUTION because it has a current MAJOR liquidity event. Public state reasons are ordered by event severity, recency and deterministic event ID.

The website uses /token/cronos/<contract>#watch-event-<event-id> to open an exact expanded event. That fragment is browser navigation and does not change the API route.

Verified projects

GET/verified

Returns only public LISTED projects whose current Silex projectVerified value is true. Contract verification alone is insufficient; historical Nodalis badges have no authority.

Developer infrastructure projections

These public, read-only dashboard endpoints sit outside the versioned project-data base URL. They expose normalized Silex observations and never accept a provider URL, API key or write action.

GET/api/silex/network/status

Canonical RPC-consensus head plus a recent bounded block sample.

GET/api/silex/gas/status

Observed eth_gasPrice, 1h/24h history, relative trend and estimated costs.

GET/api/silex/providers/status

Public-safe upstream status derived from real Silex collector and RPC observations.

GET/api/silex/dex-liquidity

Unique persistent pool aggregation with current/LKG liquidity and fresh pair-level volume.

Health and OpenAPI

GET/health

Returns minimal API status and public-safe project, Watch and Trending freshness. It excludes processes, paths, OAuth configuration and provider diagnostics.

GET/api/silex/rpc/status

Returns the public Cronos RPC Status projection used by the RPC Status dashboard: derived network head, current endpoint classifications, block lag, Silex-measured response time, 24-hour availability and bounded recent history. Internal failure diagnostics and database rows are excluded.

The OpenAPI 3.1 contract is available at /openapi.json and /developers/openapi.json.

Data semantics

Listing

If a project is returned, it is publicly listed. Private editorial states are never represented in v1.

Verification

Silex Project Verification reflects a point-in-time technical pre-scan and manual authenticity review. It is not an audit, investment endorsement or guarantee of future behavior. Contract Verification is a separate signal.

Watch

Silex Watch monitors observable project, market and on-chain state over time and records meaningful changes. Event severity and project Watch state are separate concepts. Watch does not classify intent, assign a permanent project rating or provide second-by-second monitoring.

Trending

Trending orders recent organic momentum relative to the projects that currently meet Silex eligibility requirements. It is separate from listing, community leaderboard rank, verification and Watch risk state and is not a universe-wide Cronos ranking. Public API v1 does not expose supporter identities or individual Community Points allocations; the website-only signed-in mutation surface is not part of this read-only API contract.

Freshness and caching

SurfaceBrowser/shared cacheFreshness field
Project list60 secondsindexedAt, market.updatedAt
Project / Watch / events30 secondslastObservedAt, event timestamps
Trending5 minutescalculatedAt, stale
Verified5 minutesverification.verifiedAt
HealthNo storetimestamp, freshness
Developer tools60 secondsobservedAt, lastSuccessfulAt, lastAttemptAt

Current market fields come from Silex's normalized multi-pair provider observation, refreshed in bounded batches approximately every five minutes. Token liquidity and volume are aggregated across unique valid current Cronos markets; price remains tied to the canonical primary/reference market. market.updatedAt is the actual successful observation time and is not advanced on provider failure. Watch and Trending retain their separate historical cadences. Consumers should inspect timestamps and preserve null when data is unavailable rather than inferring zero.

Errors

Expected status codes are 400 for invalid input, 404 for a non-public or missing resource, 429 for quota exhaustion, 500 for an unexpected failure and 503 when a public data surface is temporarily unavailable. Unexpected failures receive a safe request ID; stack traces are never returned.

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Project not found.",
    "requestId": "req_example"
  }
}

API v1 and compatibility

API v1 is the first stable public contract. Compatible optional fields and endpoints may be added. Breaking renames or removals require a future major route such as /api/v2.

API keys are not required in v1. The anonymous consumer/rate layer can later resolve developer keys to higher quotas without changing resource schemas. These canonical identifiers, structured events, stable enums and UTC timestamps are also the machine-readable foundation for future Silex Agents or MCP tooling; those products are not implemented today.