Twin Documentation
  • Overview
  • Consumer
  • Developer
  • Operations
Arquitectura
Flujos Técnicos
    Minting & RedeemBridge Cross-chainUniswap V4 Liquidity ManagementOracle Price UpdatesAuto-RebalanceRewardsAuthentication (Platform)Circulation ManagementDisperse (Batch Transfer)Market Data PipelineSupply API (CoinGecko)Contract Data CollectionCron Jobs: Flujos Detallados
Base de Datos
Local SetupConventions
powered by Zudoku
Flujos Técnicos

Supply API (CoinGecko)

Overview

Endpoints públicos (sin autenticación) que exponen el total supply y circulating supply de cada token. Diseñados para ser consumidos por agregadores como CoinGecko, CoinMarketCap, etc.

Base path: GET /app/v1/supply/...

Endpoints

EndpointContent-TypeDescripción
GET /supply/total/:symboltext/plainTotal supply de un token (suma de todas las redes)
GET /supply/circulating/:symboltext/plainCirculating supply de un token (suma de todas las redes)
GET /supply/detailapplication/jsonDetalle de todos los tokens con desglose por red
GET /supply/detail/:symbolapplication/jsonDetalle de un token con desglose por red

El parámetro :symbol es case-insensitive (argt, ARGt, ARGT funcionan igual).

Fórmula

Code
Total Supply = Σ ERC20.totalSupply() por cada red del token Circulating Supply = Total Supply - Σ balanceOf(wallet) de wallets no circulantes

Las wallets no circulantes son treasuries, reserves, LP pools, etc. configuradas como CirculationWallet activas en el dashboard.

Flujo

Ejemplos

Total supply (text/plain)

TerminalCode
curl https://api.twin.finance/app/v1/supply/total/ARGt # → 12704796257.97492108

Circulating supply (text/plain)

TerminalCode
curl https://api.twin.finance/app/v1/supply/circulating/ARGt # → 12066772753.16973390

Detalle por token (JSON)

TerminalCode
curl https://api.twin.finance/app/v1/supply/detail/ARGt
Code
{ "data": { "symbol": "ARGt", "totalSupply": "12704796257.97492108", "circulatingSupply": "12066772753.16973390", "networks": [ { "network": "BASE", "totalSupply": "10000000000.00000000", "circulatingSupply": "9500000000.00000000" }, { "network": "POLYGON", "totalSupply": "2704796257.97492108", "circulatingSupply": "2566772753.16973390" } ] } }

Detalle todos los tokens (JSON)

TerminalCode
curl https://api.twin.finance/app/v1/supply/detail
Code
{ "data": { "tokens": [ { "symbol": "ARGt", "totalSupply": "12704796257.97492108", "circulatingSupply": "12066772753.16973390", "networks": [...] }, { "symbol": "BRAt", "totalSupply": "...", "circulatingSupply": "...", "networks": [...] } ] } }

Error: token no encontrado

TerminalCode
curl https://api.twin.finance/app/v1/supply/total/INVALID # → 404 "Token not found"

Configuración de tokens

Para que un token aparezca en los endpoints:

  1. OpsToken: Debe existir en Operations > Tokens (dashboard) con un description que empiece con el symbol (ej: "ARGt BASE")
  2. CirculationWallet: Al menos 1 wallet activa asociada al token
  3. Multi-red: Si el token existe en múltiples redes (ej: ARGt en Base + Polygon), crear un OpsToken por red. El endpoint agrupa automáticamente por symbol y suma los supplies.

Implementación

ArchivoRol
packages/platform/src/routes/app/v1/supply.tsController — 4 endpoints, cache 5 min
packages/shared/src/service/circulation.service.tsgetSupplyData() — lectura on-chain, agrupación por symbol
packages/platform/src/middleware/auth.ts/app/v1/supply en PUBLIC_ROUTES

Notas para integradores

  • Cache: Datos se refrescan cada 5 minutos. Pollear más frecuente no aporta datos nuevos.
  • Formato numérico: 8 decimales fijos (ej: 12704796257.97492108).
  • Redes: Base, Polygon, Arbitrum (según configuración de OpsTokens).
  • Tokens actuales: ARGt, BRAt, MEXt, COLt, PERt, CHLt, BOLt, USDC.
  • CloudFlare WAF: Si hay WAF activo, configurar regla para permitir User-Agent: CoinGecko y X-Requested-With: com.coingecko.
Last modified on May 11, 2026
Market Data PipelineContract Data Collection
On this page
  • Overview
  • Endpoints
  • Fórmula
  • Flujo
  • Ejemplos
    • Total supply (text/plain)
    • Circulating supply (text/plain)
    • Detalle por token (JSON)
    • Detalle todos los tokens (JSON)
    • Error: token no encontrado
  • Configuración de tokens
  • Implementación
  • Notas para integradores
JSON
JSON