From 7933b9a959c47b4482b16fb620f51d6d15c8e0e3 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:09:31 -0400 Subject: [PATCH 01/12] Updating nginx redirects --- nginx.conf | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/nginx.conf b/nginx.conf index 2d66dad7f3dd..8139c15b4d50 100644 --- a/nginx.conf +++ b/nginx.conf @@ -173,7 +173,79 @@ http { rewrite ^/docs/en/token-api/mcp/cline/$ $scheme://$http_host/docs/en/ai-suite/token-api-mcp/ permanent; rewrite ^/docs/en/token-api/mcp/cline/$ $scheme://$http_host/docs/en/ai-suite/token-api-mcp/ permanent; rewrite ^/docs/en/token-api/endpoint-pricing/$ $scheme://$http_host/docs/en/token-api/endpoints/pricing/ permanent; - rewrite ^/docs/en/ai-suite/token-api-skills/quick-setup$ $scheme://$http_host/docs/en/ai-suite/token-api-skills/ permanent; + rewrite ^/docs/en/ai-suite/token-api-skills/quick-setup$ $scheme://$http_host/docs/en/ai-suite/token-api-skills/ permanent; + # TOKEN API REDIRECTS + rewrite ^/docs/en/token-api/quick-start/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/svm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1SvmTokens/ permanent; + rewrite ^/docs/en/token-api/svm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1SvmTransfers/ permanent; + rewrite ^/docs/en/token-api/svm-tokens/holders/$ https://app.pinax.network/docs/api/getV1SvmHolders/ permanent; + rewrite ^/docs/en/token-api/svm-tokens/balances/$ https://app.pinax.network/docs/api/getV1SvmBalances/ permanent; + rewrite ^/docs/en/token-api/svm-tokens/owner/$ https://app.pinax.network/docs/api/getV1SvmOwner permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/balances-native/$ https://app.pinax.network/docs/api/getV1SvmBalancesNative permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/holders-native/$ https://app.pinax.network/docs/api/getV1SvmHoldersNative permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1SvmTokensNative permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1SvmTransfersNative permanent; + rewrite ^/docs/en/token-api/svm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1SvmDexes permanent; + rewrite ^/docs/en/token-api/svm-dexs/pools/$ https://app.pinax.network/docs/api/getV1SvmPools permanent; + rewrite ^/docs/en/token-api/svm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1SvmPoolsOhlc permanent; + rewrite ^/docs/en/token-api/svm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1SvmSwaps permanent; + rewrite ^/docs/en/token-api/evm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1EvmTokens permanent; + rewrite ^/docs/en/token-api/evm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1EvmTransfers permanent; + rewrite ^/docs/en/token-api/evm-tokens/holders/$ https://app.pinax.network/docs/api/getV1EvmHolders permanent; + rewrite ^/docs/en/token-api/evm-tokens/balances/$ https://app.pinax.network/docs/api/getV1EvmBalances permanent; + rewrite ^/docs/en/token-api/evm-tokens/balances-historical/$ https://app.pinax.network/docs/api/getV1EvmBalancesHistorical permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1EvmTokensNative permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1EvmTransfersNative permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/holders-native/$ https://app.pinax.network/docs/api/getV1EvmHoldersNative permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/balances-native/$ https://app.pinax.network/docs/api/getV1EvmBalancesNative permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/balances-historical-native/$ https://app.pinax.network/docs/api/getV1EvmBalancesHistoricalNative permanent; + rewrite ^/docs/en/token-api/evm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1EvmDexes permanent; + rewrite ^/docs/en/token-api/evm-dexs/pools/$ https://app.pinax.network/docs/api/getV1EvmPools permanent; + rewrite ^/docs/en/token-api/evm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1EvmPoolsOhlc permanent; + rewrite ^/docs/en/token-api/evm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1EvmSwaps permanent; + rewrite ^/docs/en/token-api/evm-nfts/collections/$ https://app.pinax.network/docs/api/getV1EvmNftCollections permanent; + rewrite ^/docs/en/token-api/evm-nfts/holders/$ https://app.pinax.network/docs/api/getV1EvmNftHolders permanent; + rewrite ^/docs/en/token-api/evm-nfts/items/$ https://app.pinax.network/docs/api/getV1EvmNftItems permanent; + rewrite ^/docs/en/token-api/evm-nfts/ownerships/$ https://app.pinax.network/docs/api/getV1EvmNftOwnerships permanent; + rewrite ^/docs/en/token-api/evm-nfts/sales/$ https://app.pinax.network/docs/api/getV1EvmNftSales permanent; + rewrite ^/docs/en/token-api/evm-nfts/transfers/$ https://app.pinax.network/docs/api/getV1EvmNftTransfers permanent; + rewrite ^/docs/en/token-api/tvm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1TvmTokens permanent; + rewrite ^/docs/en/token-api/tvm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1TvmTransfers permanent; + rewrite ^/docs/en/token-api/tvm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1TvmTokensNative permanent; + rewrite ^/docs/en/token-api/tvm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1TvmTransfersNative permanent; + rewrite ^/docs/en/token-api/tvm-dexs/dexes/ https://app.pinax.network/docs/api/getV1TvmDexes permanent; + rewrite ^/docs/en/token-api/tvm-dexs/pools/ https://app.pinax.network/docs/api/getV1TvmPools permanent; + rewrite ^/docs/en/token-api/tvm-dexs/pools-ohlc/ https://app.pinax.network/docs/api/getV1TvmPoolsOhlc permanent; + rewrite ^/docs/en/token-api/tvm-dexs/swaps/ https://app.pinax.network/docs/api/getV1TvmSwaps permanent; + rewrite ^/docs/en/token-api/polymarket-markets/markets/ https://app.pinax.network/docs/prediction-markets permanent; + rewrite ^/docs/en/token-api/polymarket-markets/ohlc/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsOhlc permanent; + rewrite ^/docs/en/token-api/polymarket-markets/oi/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsOi permanent; + rewrite ^/docs/en/token-api/polymarket-markets/activity/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsActivity permanent; + rewrite ^/docs/en/token-api/polymarket-markets/positions/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsPositions permanent; + rewrite ^/docs/en/token-api/polymarket-platform/platform/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketPlatform permanent; + rewrite ^/docs/en/token-api/polymarket-users/users/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketUsers permanent; + rewrite ^/docs/en/token-api/polymarket-users/positions/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketUsersPositions permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/activity/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsActivity permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/dexes/ https://app.pinax.network/docs/perp-exchanges permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/liquidations-ohlc/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsLiquidationsOhlc permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/liquidations/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsLiquidations permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/markets/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarkets permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/ohlc/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsOhlc permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/oi/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsOi permanent; + rewrite ^/docs/en/token-api/hyperliquid-platform/platform/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidPlatform permanent; + rewrite ^/docs/en/token-api/hyperliquid-users/activity/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsersActivity permanent; + rewrite ^/docs/en/token-api/hyperliquid-users/positions/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsersPositions permanent; + rewrite ^/docs/en/token-api/hyperliquid-users/users/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsers permanent; + rewrite ^/docs/en/token-api/hyperliquid-vaults/depositors/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidVaultsDepositors permanent; + rewrite ^/docs/en/token-api/hyperliquid-vaults/vaults/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidVaults permanent; + rewrite ^/docs/en/token-api/monitoring/health/ https://app.pinax.network/docs/api/getV1Health permanent; + rewrite ^/docs/en/token-api/monitoring/networks/ https://app.pinax.network/docs/api/getV1Networks permanent; + rewrite ^/docs/en/token-api/monitoring/version/ https://app.pinax.network/docs/api/getV1Version permanent; + rewrite ^/docs/en/token-api/endpoints/pricing/ https://pinax.network/pricing/api permanent; + rewrite ^/docs/en/token-api/endpoints/support/ https://app.pinax.network/endpoints permanent; + rewrite ^/docs/en/token-api/guides/gpt/ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/guides/polymarket/ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/faq/ https://app.pinax.network/docs/api/ permanent; # Temporary redirects (302) rewrite ^/docs/en/querying/graph-client/$ $scheme://$http_host/docs/en/subgraphs/querying/graph-client/README/ redirect; rewrite ^/docs/en/developing/graph-ts/$ $scheme://$http_host/docs/en/subgraphs/developing/creating/graph-ts/README/ redirect; From 6fdb7bfec5f0340650892f27b315cc17dbbd1b0b Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:13:38 -0400 Subject: [PATCH 02/12] Removing Token API docs pages --- .../src/pages/en/token-api/_meta-titles.json | 22 - website/src/pages/en/token-api/_meta.js | 26 -- .../src/pages/en/token-api/endpoints/_meta.js | 4 - .../pages/en/token-api/endpoints/pricing.mdx | 133 ------ .../pages/en/token-api/endpoints/support.mdx | 23 - .../src/pages/en/token-api/evm-dexs/_meta.js | 6 - .../src/pages/en/token-api/evm-dexs/dexes.mdx | 9 - .../en/token-api/evm-dexs/pools-ohlc.mdx | 11 - .../src/pages/en/token-api/evm-dexs/pools.mdx | 9 - .../src/pages/en/token-api/evm-dexs/swaps.mdx | 9 - .../src/pages/en/token-api/evm-nfts/_meta.js | 8 - .../en/token-api/evm-nfts/collections.mdx | 9 - .../pages/en/token-api/evm-nfts/holders.mdx | 9 - .../src/pages/en/token-api/evm-nfts/items.mdx | 9 - .../en/token-api/evm-nfts/ownerships.mdx | 9 - .../src/pages/en/token-api/evm-nfts/sales.mdx | 9 - .../pages/en/token-api/evm-nfts/transfers.mdx | 9 - .../en/token-api/evm-tokens-native/_meta.js | 7 - .../balances-historical-native.mdx | 11 - .../evm-tokens-native/balances-native.mdx | 9 - .../evm-tokens-native/holders-native.mdx | 9 - .../evm-tokens-native/tokens-native.mdx | 9 - .../evm-tokens-native/transfers-native.mdx | 9 - .../pages/en/token-api/evm-tokens/_meta.js | 7 - .../evm-tokens/balances-historical.mdx | 11 - .../en/token-api/evm-tokens/balances.mdx | 9 - .../pages/en/token-api/evm-tokens/holders.mdx | 9 - .../pages/en/token-api/evm-tokens/tokens.mdx | 9 - .../en/token-api/evm-tokens/transfers.mdx | 9 - website/src/pages/en/token-api/faq.mdx | 424 ------------------ .../src/pages/en/token-api/guides/_meta.js | 4 - website/src/pages/en/token-api/guides/gpt.mdx | 121 ----- .../pages/en/token-api/guides/polymarket.mdx | 71 --- .../en/token-api/hyperliquid-markets/_meta.js | 9 - .../hyperliquid-markets/activity.mdx | 15 - .../token-api/hyperliquid-markets/dexes.mdx | 15 - .../hyperliquid-markets/liquidations-ohlc.mdx | 11 - .../hyperliquid-markets/liquidations.mdx | 13 - .../token-api/hyperliquid-markets/markets.mdx | 13 - .../en/token-api/hyperliquid-markets/ohlc.mdx | 11 - .../en/token-api/hyperliquid-markets/oi.mdx | 11 - .../token-api/hyperliquid-platform/_meta.js | 3 - .../hyperliquid-platform/platform.mdx | 11 - .../en/token-api/hyperliquid-users/_meta.js | 5 - .../token-api/hyperliquid-users/activity.mdx | 13 - .../token-api/hyperliquid-users/positions.mdx | 13 - .../en/token-api/hyperliquid-users/users.mdx | 15 - .../en/token-api/hyperliquid-vaults/_meta.js | 4 - .../hyperliquid-vaults/depositors.mdx | 11 - .../token-api/hyperliquid-vaults/vaults.mdx | 13 - .../pages/en/token-api/monitoring/_meta.js | 5 - .../pages/en/token-api/monitoring/health.mdx | 11 - .../en/token-api/monitoring/networks.mdx | 9 - .../pages/en/token-api/monitoring/version.mdx | 9 - .../en/token-api/polymarket-markets/_meta.js | 7 - .../token-api/polymarket-markets/activity.mdx | 13 - .../token-api/polymarket-markets/markets.mdx | 11 - .../en/token-api/polymarket-markets/ohlc.mdx | 11 - .../en/token-api/polymarket-markets/oi.mdx | 11 - .../polymarket-markets/positions.mdx | 11 - .../en/token-api/polymarket-platform/_meta.js | 3 - .../polymarket-platform/platform.mdx | 9 - .../en/token-api/polymarket-users/_meta.js | 4 - .../token-api/polymarket-users/positions.mdx | 11 - .../en/token-api/polymarket-users/users.mdx | 11 - .../src/pages/en/token-api/quick-start.mdx | 103 ----- .../src/pages/en/token-api/svm-dexs/_meta.js | 6 - .../src/pages/en/token-api/svm-dexs/dexes.mdx | 9 - .../en/token-api/svm-dexs/pools-ohlc.mdx | 9 - .../src/pages/en/token-api/svm-dexs/pools.mdx | 9 - .../src/pages/en/token-api/svm-dexs/swaps.mdx | 9 - .../en/token-api/svm-tokens-native/_meta.js | 3 - .../svm-tokens-native/balances-native.mdx | 9 - .../svm-tokens-native/holders-native.mdx | 9 - .../svm-tokens-native/tokens-native.mdx | 9 - .../svm-tokens-native/transfers-native.mdx | 9 - .../pages/en/token-api/svm-tokens/_meta.js | 7 - .../en/token-api/svm-tokens/balances.mdx | 9 - .../pages/en/token-api/svm-tokens/holders.mdx | 9 - .../pages/en/token-api/svm-tokens/owner.mdx | 9 - .../pages/en/token-api/svm-tokens/tokens.mdx | 9 - .../en/token-api/svm-tokens/transfers.mdx | 9 - .../src/pages/en/token-api/tvm-dexs/_meta.js | 6 - .../src/pages/en/token-api/tvm-dexs/dexes.mdx | 9 - .../en/token-api/tvm-dexs/pools-ohlc.mdx | 11 - .../src/pages/en/token-api/tvm-dexs/pools.mdx | 9 - .../src/pages/en/token-api/tvm-dexs/swaps.mdx | 9 - .../en/token-api/tvm-tokens-native/_meta.js | 4 - .../tvm-tokens-native/tokens-native.mdx | 9 - .../tvm-tokens-native/transfers-native.mdx | 9 - .../pages/en/token-api/tvm-tokens/_meta.js | 4 - .../pages/en/token-api/tvm-tokens/tokens.mdx | 9 - .../en/token-api/tvm-tokens/transfers.mdx | 9 - 93 files changed, 1688 deletions(-) delete mode 100644 website/src/pages/en/token-api/_meta-titles.json delete mode 100644 website/src/pages/en/token-api/_meta.js delete mode 100644 website/src/pages/en/token-api/endpoints/_meta.js delete mode 100644 website/src/pages/en/token-api/endpoints/pricing.mdx delete mode 100644 website/src/pages/en/token-api/endpoints/support.mdx delete mode 100644 website/src/pages/en/token-api/evm-dexs/_meta.js delete mode 100644 website/src/pages/en/token-api/evm-dexs/dexes.mdx delete mode 100644 website/src/pages/en/token-api/evm-dexs/pools-ohlc.mdx delete mode 100644 website/src/pages/en/token-api/evm-dexs/pools.mdx delete mode 100644 website/src/pages/en/token-api/evm-dexs/swaps.mdx delete mode 100644 website/src/pages/en/token-api/evm-nfts/_meta.js delete mode 100644 website/src/pages/en/token-api/evm-nfts/collections.mdx delete mode 100644 website/src/pages/en/token-api/evm-nfts/holders.mdx delete mode 100644 website/src/pages/en/token-api/evm-nfts/items.mdx delete mode 100644 website/src/pages/en/token-api/evm-nfts/ownerships.mdx delete mode 100644 website/src/pages/en/token-api/evm-nfts/sales.mdx delete mode 100644 website/src/pages/en/token-api/evm-nfts/transfers.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens-native/_meta.js delete mode 100644 website/src/pages/en/token-api/evm-tokens-native/balances-historical-native.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens-native/balances-native.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens-native/holders-native.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens-native/tokens-native.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens-native/transfers-native.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens/_meta.js delete mode 100644 website/src/pages/en/token-api/evm-tokens/balances-historical.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens/balances.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens/holders.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens/tokens.mdx delete mode 100644 website/src/pages/en/token-api/evm-tokens/transfers.mdx delete mode 100644 website/src/pages/en/token-api/faq.mdx delete mode 100644 website/src/pages/en/token-api/guides/_meta.js delete mode 100644 website/src/pages/en/token-api/guides/gpt.mdx delete mode 100644 website/src/pages/en/token-api/guides/polymarket.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/_meta.js delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/activity.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/dexes.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/liquidations-ohlc.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/liquidations.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/markets.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/ohlc.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-markets/oi.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-platform/_meta.js delete mode 100644 website/src/pages/en/token-api/hyperliquid-platform/platform.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-users/_meta.js delete mode 100644 website/src/pages/en/token-api/hyperliquid-users/activity.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-users/positions.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-users/users.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-vaults/_meta.js delete mode 100644 website/src/pages/en/token-api/hyperliquid-vaults/depositors.mdx delete mode 100644 website/src/pages/en/token-api/hyperliquid-vaults/vaults.mdx delete mode 100644 website/src/pages/en/token-api/monitoring/_meta.js delete mode 100644 website/src/pages/en/token-api/monitoring/health.mdx delete mode 100644 website/src/pages/en/token-api/monitoring/networks.mdx delete mode 100644 website/src/pages/en/token-api/monitoring/version.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-markets/_meta.js delete mode 100644 website/src/pages/en/token-api/polymarket-markets/activity.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-markets/markets.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-markets/ohlc.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-markets/oi.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-markets/positions.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-platform/_meta.js delete mode 100644 website/src/pages/en/token-api/polymarket-platform/platform.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-users/_meta.js delete mode 100644 website/src/pages/en/token-api/polymarket-users/positions.mdx delete mode 100644 website/src/pages/en/token-api/polymarket-users/users.mdx delete mode 100644 website/src/pages/en/token-api/quick-start.mdx delete mode 100644 website/src/pages/en/token-api/svm-dexs/_meta.js delete mode 100644 website/src/pages/en/token-api/svm-dexs/dexes.mdx delete mode 100644 website/src/pages/en/token-api/svm-dexs/pools-ohlc.mdx delete mode 100644 website/src/pages/en/token-api/svm-dexs/pools.mdx delete mode 100644 website/src/pages/en/token-api/svm-dexs/swaps.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens-native/_meta.js delete mode 100644 website/src/pages/en/token-api/svm-tokens-native/balances-native.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens-native/holders-native.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens-native/tokens-native.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens-native/transfers-native.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens/_meta.js delete mode 100644 website/src/pages/en/token-api/svm-tokens/balances.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens/holders.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens/owner.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens/tokens.mdx delete mode 100644 website/src/pages/en/token-api/svm-tokens/transfers.mdx delete mode 100644 website/src/pages/en/token-api/tvm-dexs/_meta.js delete mode 100644 website/src/pages/en/token-api/tvm-dexs/dexes.mdx delete mode 100644 website/src/pages/en/token-api/tvm-dexs/pools-ohlc.mdx delete mode 100644 website/src/pages/en/token-api/tvm-dexs/pools.mdx delete mode 100644 website/src/pages/en/token-api/tvm-dexs/swaps.mdx delete mode 100644 website/src/pages/en/token-api/tvm-tokens-native/_meta.js delete mode 100644 website/src/pages/en/token-api/tvm-tokens-native/tokens-native.mdx delete mode 100644 website/src/pages/en/token-api/tvm-tokens-native/transfers-native.mdx delete mode 100644 website/src/pages/en/token-api/tvm-tokens/_meta.js delete mode 100644 website/src/pages/en/token-api/tvm-tokens/tokens.mdx delete mode 100644 website/src/pages/en/token-api/tvm-tokens/transfers.mdx diff --git a/website/src/pages/en/token-api/_meta-titles.json b/website/src/pages/en/token-api/_meta-titles.json deleted file mode 100644 index 97ce045e62fd..000000000000 --- a/website/src/pages/en/token-api/_meta-titles.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "svm-tokens": "SVM Token Endpoints", - "svm-tokens-native": "SVM Token Endpoints (Native)", - "svm-dexs": "SVM DEX Endpoints", - "evm-tokens": "EVM Token Endpoints (ERC-20)", - "evm-tokens-native": "EVM Token Endpoints (Native)", - "evm-dexs": "EVM DEX Endpoints", - "evm-nfts": "EVM NFT Endpoints", - "tvm-tokens": "TVM Token Endpoints (ERC-20)", - "tvm-tokens-native": "TVM Token Endpoints (Native)", - "tvm-dexs": "TVM DEX Endpoints", - "polymarket-markets": "Polymarket Market Endpoints", - "polymarket-platform": "Polymarket Platform Endpoints", - "polymarket-users": "Polymarket User Endpoints", - "hyperliquid-markets": "Hyperliquid Market Endpoints", - "hyperliquid-platform": "Hyperliquid Platform Endpoints", - "hyperliquid-users": "Hyperliquid User Endpoints", - "hyperliquid-vaults": "Hyperliquid Vault Endpoints", - "monitoring": "Monitoring Endpoints", - "endpoints": "Endpoints", - "guides": "Guides" -} diff --git a/website/src/pages/en/token-api/_meta.js b/website/src/pages/en/token-api/_meta.js deleted file mode 100644 index 23903d25e820..000000000000 --- a/website/src/pages/en/token-api/_meta.js +++ /dev/null @@ -1,26 +0,0 @@ -import titles from './_meta-titles.json' - -export default { - 'quick-start': '', - 'svm-tokens': titles['svm-tokens'] ?? '', - 'svm-tokens-native': titles['svm-tokens-native'] ?? '', - 'svm-dexs': titles['svm-dexs'] ?? '', - 'evm-tokens': titles['evm-tokens'] ?? '', - 'evm-tokens-native': titles['evm-tokens-native'] ?? '', - 'evm-dexs': titles['evm-dexs'] ?? '', - 'evm-nfts': titles['evm-nfts'] ?? '', - 'tvm-tokens': titles['tvm-tokens'] ?? '', - 'tvm-tokens-native': titles['tvm-tokens-native'] ?? '', - 'tvm-dexs': titles['tvm-dexs'] ?? '', - 'polymarket-markets': titles['polymarket-markets'] ?? '', - 'polymarket-platform': titles['polymarket-platform'] ?? '', - 'polymarket-users': titles['polymarket-users'] ?? '', - 'hyperliquid-markets': titles['hyperliquid-markets'] ?? '', - 'hyperliquid-platform': titles['hyperliquid-platform'] ?? '', - 'hyperliquid-users': titles['hyperliquid-users'] ?? '', - 'hyperliquid-vaults': titles['hyperliquid-vaults'] ?? '', - monitoring: titles['monitoring'] ?? '', - endpoints: titles['endpoints'] ?? '', - guides: titles['guides'] ?? '', - faq: '', -} diff --git a/website/src/pages/en/token-api/endpoints/_meta.js b/website/src/pages/en/token-api/endpoints/_meta.js deleted file mode 100644 index c85dabe30711..000000000000 --- a/website/src/pages/en/token-api/endpoints/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - pricing: '', - support: '', -} diff --git a/website/src/pages/en/token-api/endpoints/pricing.mdx b/website/src/pages/en/token-api/endpoints/pricing.mdx deleted file mode 100644 index 848619a7859a..000000000000 --- a/website/src/pages/en/token-api/endpoints/pricing.mdx +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: Endpoint Pricing -sidebarTitle: Pricing ---- - -## Pricing Tiers - -| Free Tier | Scale Tier | Pro Tier | Enterprise | -| --- | --- | --- | --- | -| $25 of total usage across available endpoints | $50 of total usage across available endpoints | $200 of total usage across available endpoints | Custom plan across available endpoints | -| Query parameters: 10 items returned, batch size 1 | Query parameters: 100 items returned, batch size 25 | Query parameters: 500 items returned, batch size 50 | Custom items returned and batch size | -| Rate limit: 200/min | Rate limit: 500/min | Rate limit: 1000/min | Custom rate limit | -| Time parameters: 1h, 4h, 1d, 1w intervals | Time parameters: 1m, 5m, 10m, 30m, 1h, 4h, 1d, 1w intervals | Time parameters: 1m, 5m, 10m, 30m, 1h, 4h, 1d, 1w intervals | Time parameters: 1m, 5m, 10m, 30m, 1h, 4h, 1d, 1w intervals | -| Historical price data: Full availability | Historical price data: Full availability | Historical price data: Full availability | Historical price data: Full availability | -| No additional queries allowed outside of free tier | Pay-as-you-go once included usage is exceeded | Pay-as-you-go once included usage is exceeded | SLAs + Engineering Support | - -## Time Intervals and Parameters - -1. **Full historical data** is available on all plans. -2. **Pagination** is still required to fetch all results. -3. You can use **`start_time`** and **`end_time`** to move your time window across history. - - **Example**: `start_time=2025-01-01`, `end_time=2025-01-28`, and `interval=4h` (Free plan) will return 28 days of data for that range. - -## Token Endpoints - $0.15 per 10K requests - -Query token transfers, balances, and metadata across EVM and SVM blockchains - -``` -GET /v1/evm/tokens -GET /v1/svm/tokens -GET /v1/tvm/tokens -GET /v1/evm/tokens/native -GET /v1/tvm/tokens/native -GET /v1/evm/transfers -GET /v1/svm/transfers -GET /v1/tvm/transfers -GET /v1/evm/transfers/native -GET /v1/tvm/transfers/native -GET /v1/evm/balances -GET /v1/svm/balances -GET /v1/evm/balances/native -GET /v1/svm/balances/native -GET /v1/svm/owner -``` - -## DEX Endpoints - $0.50 per 10K requests - -Access on-chain swap, liquidity pool, and decentralized exchange data - -``` -GET /v1/evm/swaps -GET /v1/svm/swaps -GET /v1/tvm/swaps -GET /v1/evm/pools -GET /v1/svm/pools -GET /v1/tvm/pools -``` - -## NFT Endpoints - $0.50 per 10K requests - -Retrieve NFT transfers, ownership details, collections, and sales activity - -``` -GET /v1/evm/nft/items -GET /v1/evm/nft/collections -GET /v1/evm/nft/sales -GET /v1/evm/nft/ownerships -GET /v1/evm/nft/transfers -``` - -## Aggregate & Historical Endpoints - $2 per 10K requests - -Provide summarized, ranked, and time-series blockchain data for analytical use - -``` -GET /v1/evm/holders -GET /v1/svm/holders -GET /v1/evm/holders/native -GET /v1/evm/nft/holders -GET /v1/evm/pools/ohlc -GET /v1/svm/pools/ohlc -GET /v1/tvm/pools/ohlc -GET /v1/evm/balances/historical -GET /v1/evm/balances/historical/native -``` - -## Polymarket Prediction Market Endpoints - $2 per 10K requests - -Unified endpoints that expose Polymarket prediction market data—including market metadata, real-time pricing/order books, and historical analytics - -``` -GET /v1/polymarket/markets/ohlc -GET /v1/polymarket/markets/oi -GET /v1/polymarket/markets/activity -GET /v1/polymarket/markets/positions -GET /v1/polymarket/platform -GET /v1/polymarket/users -GET /v1/polymarket/users/positions -``` - -## Hyperliquid Endpoints - $2 per 10K requests - -Unified endpoints that expose Hyperliquid perpetual futures data - -``` -GET /v1/hyperliquid/dexes -GET /v1/hyperliquid/markets/ohlc -GET /v1/hyperliquid/markets/oi -GET /v1/hyperliquid/markets/activity -GET /v1/hyperliquid/markets/liquidations -GET /v1/hyperliquid/markets/liquidations/ohlc -GET /v1/hyperliquid/users -GET /v1/hyperliquid/users/positions -GET /v1/hyperliquid/users/activity -GET /v1/hyperliquid/vaults -GET /v1/hyperliquid/vaults/depositors -GET /v1/hyperliquid/platform -``` - -## Monitoring Endpoints - Free - -Offer real-time API, network, and version health information for system status - -``` -GET /v1/health -GET /v1/version -GET /v1/networks -GET /v1/evm/dexes -GET /v1/svm/dexes -GET /v1/tvm/dexes -GET /v1/polymarket/markets -GET /v1/hyperliquid/platform -``` diff --git a/website/src/pages/en/token-api/endpoints/support.mdx b/website/src/pages/en/token-api/endpoints/support.mdx deleted file mode 100644 index 50f825afdfd6..000000000000 --- a/website/src/pages/en/token-api/endpoints/support.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Endpoint Feature Matrix -sidebarTitle: Support Matrix ---- - -import { Check } from '@edgeandnode/gds/icons' - -## Chain and Feature Support - -| Network | Tokens | Swaps | NFTs | -| ----------------- | :-----------------------: | :-----------------------: | :-----------------------: | -| Ethereum Mainnet | | | | -| BSC Mainnet | | | | -| Base Mainnet | | | | -| Unichain Mainnet | | | | -| Arbitrum One | | | | -| Optimism Mainnet | | | | -| Polygon Mainnet | | | | -| Avalanche C-Chain | | | | -| Solana Mainnet | | | ❌ Unsupported | -| Tron Mainnet | | | ❌ Unsupported | - -A full list of chain support for The Graph services can be found [here](/supported-networks/). diff --git a/website/src/pages/en/token-api/evm-dexs/_meta.js b/website/src/pages/en/token-api/evm-dexs/_meta.js deleted file mode 100644 index 68e13a8d4948..000000000000 --- a/website/src/pages/en/token-api/evm-dexs/_meta.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - dexes: '', - pools: '', - 'pools-ohlc': '', - swaps: '', -} diff --git a/website/src/pages/en/token-api/evm-dexs/dexes.mdx b/website/src/pages/en/token-api/evm-dexs/dexes.mdx deleted file mode 100644 index 5b3aa0969af4..000000000000 --- a/website/src/pages/en/token-api/evm-dexs/dexes.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Supported DEXs -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmDexes ---- - -Returns supported EVM DEXs. diff --git a/website/src/pages/en/token-api/evm-dexs/pools-ohlc.mdx b/website/src/pages/en/token-api/evm-dexs/pools-ohlc.mdx deleted file mode 100644 index 7bcda1650d43..000000000000 --- a/website/src/pages/en/token-api/evm-dexs/pools-ohlc.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Pool OHLCV Data -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmPoolsOhlc ---- - -Returns OHLCV price data for liquidity pools. - -OHLCV historical depth is subject to plan restrictions. diff --git a/website/src/pages/en/token-api/evm-dexs/pools.mdx b/website/src/pages/en/token-api/evm-dexs/pools.mdx deleted file mode 100644 index 5cdd6b65d534..000000000000 --- a/website/src/pages/en/token-api/evm-dexs/pools.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Liquidity Pools -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmPools ---- - -Returns Uniswap liquidity pool metadata including token pairs, fees, and protocol versions. diff --git a/website/src/pages/en/token-api/evm-dexs/swaps.mdx b/website/src/pages/en/token-api/evm-dexs/swaps.mdx deleted file mode 100644 index a3b3148a1582..000000000000 --- a/website/src/pages/en/token-api/evm-dexs/swaps.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Swap Events -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmSwaps ---- - -Returns DEX swap transactions from Uniswap protocols with token amounts and prices. diff --git a/website/src/pages/en/token-api/evm-nfts/_meta.js b/website/src/pages/en/token-api/evm-nfts/_meta.js deleted file mode 100644 index cf28cdab3c1a..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/_meta.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - collections: '', - holders: '', - items: '', - ownerships: '', - sales: '', - transfers: '', -} diff --git a/website/src/pages/en/token-api/evm-nfts/collections.mdx b/website/src/pages/en/token-api/evm-nfts/collections.mdx deleted file mode 100644 index 8d542c83fde3..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/collections.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: NFT Collection -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmNftCollections ---- - -Returns NFT collection metadata, supply stats, owner count, and transfer history. diff --git a/website/src/pages/en/token-api/evm-nfts/holders.mdx b/website/src/pages/en/token-api/evm-nfts/holders.mdx deleted file mode 100644 index b9de134c00e2..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/holders.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: NFT Holders -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmNftHolders ---- - -Returns wallet addresses holding NFT collection tokens with quantity and percentage distribution. diff --git a/website/src/pages/en/token-api/evm-nfts/items.mdx b/website/src/pages/en/token-api/evm-nfts/items.mdx deleted file mode 100644 index ae78e867b143..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/items.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: NFT Items -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmNftItems ---- - -Returns NFT token metadata, attributes, current owner, and media URIs. diff --git a/website/src/pages/en/token-api/evm-nfts/ownerships.mdx b/website/src/pages/en/token-api/evm-nfts/ownerships.mdx deleted file mode 100644 index d3ebd7f772b2..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/ownerships.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: NFT Ownerships by Address -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmNftOwnerships ---- - -Returns NFT tokens owned by a wallet address with metadata and ownership information. diff --git a/website/src/pages/en/token-api/evm-nfts/sales.mdx b/website/src/pages/en/token-api/evm-nfts/sales.mdx deleted file mode 100644 index dfb27f946162..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/sales.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: NFT Sales -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmNftSales ---- - -Returns NFT marketplace sales with price, buyer, seller, and transaction data. diff --git a/website/src/pages/en/token-api/evm-nfts/transfers.mdx b/website/src/pages/en/token-api/evm-nfts/transfers.mdx deleted file mode 100644 index 88c748d0e1b8..000000000000 --- a/website/src/pages/en/token-api/evm-nfts/transfers.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: NFT Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmNftTransfers ---- - -Returns NFT transfer events including mints, burns, and ownership changes. diff --git a/website/src/pages/en/token-api/evm-tokens-native/_meta.js b/website/src/pages/en/token-api/evm-tokens-native/_meta.js deleted file mode 100644 index 39a6cee60e64..000000000000 --- a/website/src/pages/en/token-api/evm-tokens-native/_meta.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - 'tokens-native': '', - 'transfers-native': '', - 'holders-native': '', - 'balances-native': '', - 'balances-historical-native': '', -} diff --git a/website/src/pages/en/token-api/evm-tokens-native/balances-historical-native.mdx b/website/src/pages/en/token-api/evm-tokens-native/balances-historical-native.mdx deleted file mode 100644 index 9f96a0a4fb51..000000000000 --- a/website/src/pages/en/token-api/evm-tokens-native/balances-historical-native.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Historical Native Balances -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmBalancesHistoricalNative ---- - -Returns wallet Native balance changes over time in OHLCV format. - -OHLCV historical depth is subject to plan restrictions. diff --git a/website/src/pages/en/token-api/evm-tokens-native/balances-native.mdx b/website/src/pages/en/token-api/evm-tokens-native/balances-native.mdx deleted file mode 100644 index 5c3f9f237648..000000000000 --- a/website/src/pages/en/token-api/evm-tokens-native/balances-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Balances -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmBalancesNative ---- - -Returns EVM native balances for wallet addresses. diff --git a/website/src/pages/en/token-api/evm-tokens-native/holders-native.mdx b/website/src/pages/en/token-api/evm-tokens-native/holders-native.mdx deleted file mode 100644 index cb52af1d7cd9..000000000000 --- a/website/src/pages/en/token-api/evm-tokens-native/holders-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Holders -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmHoldersNative ---- - -Returns top token holders ranked by Native balance. diff --git a/website/src/pages/en/token-api/evm-tokens-native/tokens-native.mdx b/website/src/pages/en/token-api/evm-tokens-native/tokens-native.mdx deleted file mode 100644 index 30964e7458ad..000000000000 --- a/website/src/pages/en/token-api/evm-tokens-native/tokens-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Metadata -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmTokensNative ---- - -Returns Native metadata including supply and holder count. diff --git a/website/src/pages/en/token-api/evm-tokens-native/transfers-native.mdx b/website/src/pages/en/token-api/evm-tokens-native/transfers-native.mdx deleted file mode 100644 index c59e2d3f6355..000000000000 --- a/website/src/pages/en/token-api/evm-tokens-native/transfers-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmTransfersNative ---- - -Returns Native transfers with transaction and block data. diff --git a/website/src/pages/en/token-api/evm-tokens/_meta.js b/website/src/pages/en/token-api/evm-tokens/_meta.js deleted file mode 100644 index 14eed3bf8a84..000000000000 --- a/website/src/pages/en/token-api/evm-tokens/_meta.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - tokens: '', - transfers: '', - holders: '', - balances: '', - 'balances-historical': '', -} diff --git a/website/src/pages/en/token-api/evm-tokens/balances-historical.mdx b/website/src/pages/en/token-api/evm-tokens/balances-historical.mdx deleted file mode 100644 index fc7239bea8b9..000000000000 --- a/website/src/pages/en/token-api/evm-tokens/balances-historical.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Historical Balances -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmBalancesHistorical ---- - -Returns wallet token balance changes over time in OHLCV format. - -OHLCV historical depth is subject to plan restrictions. diff --git a/website/src/pages/en/token-api/evm-tokens/balances.mdx b/website/src/pages/en/token-api/evm-tokens/balances.mdx deleted file mode 100644 index 5cb634f740c2..000000000000 --- a/website/src/pages/en/token-api/evm-tokens/balances.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Balances -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmBalances ---- - -Returns ERC-20 token balances for a wallet address. diff --git a/website/src/pages/en/token-api/evm-tokens/holders.mdx b/website/src/pages/en/token-api/evm-tokens/holders.mdx deleted file mode 100644 index caaf96ad62db..000000000000 --- a/website/src/pages/en/token-api/evm-tokens/holders.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Holders -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmHolders ---- - -Returns top token holders ranked by balance. diff --git a/website/src/pages/en/token-api/evm-tokens/tokens.mdx b/website/src/pages/en/token-api/evm-tokens/tokens.mdx deleted file mode 100644 index d4ff4aca81be..000000000000 --- a/website/src/pages/en/token-api/evm-tokens/tokens.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Metadata -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmTokens ---- - -Returns ERC-20 token metadata including supply and holder count. diff --git a/website/src/pages/en/token-api/evm-tokens/transfers.mdx b/website/src/pages/en/token-api/evm-tokens/transfers.mdx deleted file mode 100644 index 48f722f3ba86..000000000000 --- a/website/src/pages/en/token-api/evm-tokens/transfers.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1EvmTransfers ---- - -Returns ERC-20 and native token transfers with transaction and block data. diff --git a/website/src/pages/en/token-api/faq.mdx b/website/src/pages/en/token-api/faq.mdx deleted file mode 100644 index 22af227f6c45..000000000000 --- a/website/src/pages/en/token-api/faq.mdx +++ /dev/null @@ -1,424 +0,0 @@ ---- -title: Token API FAQ -sidebarTitle: FAQ ---- - -Get fast answers to easily integrate and scale with The Graph's high-performance Token API. - -## General - -### Which blockchains are supported by the Token API? - -Currently, the Token API supports Ethereum Mainnet, BNB Smart Chain (BSC Mainnet), Polygon Mainnet, Optimism Mainnet, Base Mainnet, Unichain Mainnet, Avalanche C-Chain, Arbitrum One, Solana Mainnet and Tron Mainnet. A full list of supported networks can be found under the Token API column [here](/supported-networks/). - -### Does the Token API support NFTs? - -Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. - -### Do NFTs include off-chain data? - -NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. - -### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? - -Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. - -### How current is the data provided by the API relative to the blockchain? - -The API provides data up to the latest finalized block. This time varies depending on the blockchain. Improvements to provide data closer to the chain head are planned, and feedback is welcome on [Discord](https://discord.gg/graphprotocol). - -### How do I retrieve token prices? - -Token prices are available with the Open-High-Low-Close (OHLC) endpoints. For a given time period, `"open"` represents the price at the start of the time period, `"high"` represents the highest price during the time period, `"low"` represents the lowest price, and `"close"` represents the price at the end of the time period. You can change the time period using the `interval` parameter. Smaller time intervals are available on paid plans. - -### Does the Token API support historical token data? - -The Token API supports historical token balances with the `/v1/evm/balances/historical` endpoint. You can query historical price data by pool at `/v1/evm/pools/ohlc`. Historical balances have a similar OHLC format, but return token balances instead of prices. - -### Does the Token API provide a client SDK or client library? - -While an official client SDK is not currently available, please share feedback on any SDKs or integrations you would like to see on [Discord](https://discord.gg/graphprotocol). Community contributions are welcome to use the [OpenAPI document](https://token-api.thegraph.com/openapi) to build and share their own client libraries. - -### Are there plans to support additional blockchains in the future? - -Yes, more blockchains will be supported in the future. Please share feedback on desired chains on [Discord](https://discord.gg/graphprotocol). - -### Are there plans to support additional use cases? - -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). - -### What DEXs are supported by the Token API? - -DEXs listed below are grouped by network and ordered by most swaps. Only verified DEXs with more than 10K swaps in 2025 have been listed. For a more detailed and comprehensive list of supported DEXs, you can query the `/v1/dexes/evm`, `/v1/dexes/svm`, or `/v1/dexes/tvm endpoints`. - -#### Solana Mainnet - -**Full support of DEX protocol** - -Swaps are being reported via Swap programs and include amm_pool field - -- Raydium Liquidity Pool V4 -- Pump.fun AMM -- Pump.fun -- Raydium Concentrated Liquidity -- Raydium CPMM -- Meteora DLMM Program -- Meteora Pools Program -- Meteora DAMM v2 -- Raydium Launchpad - -**Partial support of AMM** - -Swaps are being reported via Aggregator programs and do not include amm_pool field - -- Whirlpools Program -- Lifinity Swap V2 -- SolFi -- Obric V2 -- Stabble Stable Swap -- Phoenix -- ZeroFi -- Openbook V2 -- Invariant Swap -- Stabble Weighted Swap -- GoonFi -- 1Dex Program -- Fluxbeam Program -- Mercurial Stable Swap -- Saber Stable Swap -- Orca Token Swap V2 -- Cropper Whirlpool -- Lifinity Swap -- Meteora Dynamic Bonding Curve Program -- Moonit -- BonkSwap -- Saber Decimal Wrapper -- Saros AMM -- Jupiter Perpetuals -- Sanctum Router Program -- Numeraire -- Crema Finance Program -- Sanctum Program -- GooseFX: GAMMA -- Orca Token Swap -- OpenBook -- Swap Program -- Guac Swap -- Dexlab Swap -- GooseFX V2 -- Aldrin AMM V2 -- Helium Treasury Management -- Aldrin AMM -- Symmetry Engine -- Marinade Finance -- Cropper Finance -- Oasis -- StepN DOOAR Swap -- Penguin Finance -- Step Finance Swap Program -- WOOFi -- Cykura Swap -- Sentre Swap -- Dradex Program -- Gavel -- Sencha Cpamm -- Clone -- 1Sol -- GooseFX SSL -- Serum DEX V3 - -#### Ethereum Mainnet - -- Uniswap V2 -- Uniswap V3 -- Uniswap V1 -- Uniswap V4 -- SushiSwap V2 -- Balancer -- Cow -- Curve -- Bancor -- Ring Swap -- Shiba Inu -- Crypto.com: DeFi Swap -- PancakeSwap V2 -- Solidly V3 -- SushiSwap V3 -- KyberSwap Elastic -- Dodo -- WOOFi -- Fraxswap V2 -- Verse Exchange -- Integral -- NineInch -- Orion -- Future Lithium -- Neopin -- DelioSwap -- KwikSwap -- SakeSwap -- Nova -- LinkSwap -- EtherVista -- DooarSwap - -#### Arbitrum One - -- Uniswap V3 -- Uniswap V4 -- SushiSwap V3 -- Balancer -- Curve -- Ramses -- KyberSwap Elastic -- WOOFi -- Dodo -- SushiSwap V2 -- Uniswap V2 -- Camelot -- GammaSwap -- Solidly V3 -- Arbswap -- UpSwap -- SpartaDex -- PancakeSwap -- DXswap -- Arbidex -- Integral -- Cow - -#### Polygon Mainnet - -- Quickswap V2 -- Uniswap V3 -- Uniswap V4 -- SushiSwap V2 -- Uniswap V2 -- Balancer -- Curve -- Stabl.fi -- SushiSwap V3 -- KyberSwap Elastic -- Dodo -- WOOFi -- SweepnFlip -- ApeSwap V2 -- DFYN -- Jetswap -- Polycat Finance -- Wault Finance -- DooarSwap -- Elk -- Cow - -#### Unichain Mainnet - -- Uniswap V4 -- Uniswap V3 -- Uniswap V2 -- KyberSwap Elastic - -#### BSC Mainnet - -- PancakeSwap V2 -- PancakeSwap V3 -- PancakeSwap V4 -- PancakeSwap V1 -- Biswap -- Dodo -- WOOFi -- KyberSwap Elastic -- ApeSwap V2 -- MDEX -- BabySwap -- Nomiswap -- Nomiswap Stable -- JulSwap -- Algebra (v3-style) -- WaultSwap -- BakerySwap -- LFJ (Trader Joe) -- SquadSwap -- Cow - -#### Optimism Mainnet - -- Uniswap V3 -- Uniswap V4 -- Velodrome V3 -- Velodrome V2 -- Balancer -- Curve -- Beethoven X -- KyberSwap Elastic -- WOOFi -- Dodo - -#### Avalanche C-Chain - -- LFJ (Trader Joe) -- Pangolin V2 -- Pangolin V1 -- KyberSwap Elastic -- Elk Finance -- Uniswap V4 -- Lydia Finance -- SushiSwap V2 -- Curve -- OliveSwap - -#### Base Mainnet - -- Uniswap V3 -- Uniswap V2 -- Uniswap V4 -- Aerodrome -- SushiSwap V2 -- Balancer -- KyberSwap Elastic -- Curve -- BaseSwap -- Alien Base V3 -- BaseSwap V2 -- Solidly V3 -- Alien Base V2 - -#### Tron Mainnet - -- SunPump -- SunSwap V2 -- SunSwap V1 (JustSwap) -- USwap -- SunSwap 1.5 (JustSwap) -- ISwap V1 -- JustMoney -- SocialSwap V2 -- ISwap V2 -- SocialSwap V1 -- WhiteSwap -- Oikos Swap V2 - -## MCP / LLM / AI - -### Is there a time limit for LLM queries? - -Yes. The maximum time limit for each LLM query is 10 seconds. - -### Is there a known list of LLMs that work with the API? - -Yes, Cline, Cursor, and Claude Desktop integrate successfully with The Graph's Token API + MCP server. - -Beyond that, whether an LLM "works" depends on whether it supports the MCP protocol directly (or has a compatible plugin/adapter). - -### Where can I find the MCP client? - -You can find the code for the MCP client in [The Graph's repo](https://github.com/graphprotocol/mcp-client). - -### MCP integration with Claude/Cline/Cursor shows errors like "ENOENT" or "Server disconnected". How do I fix this? - -For "ENOENT" errors, ensure Node.js 18+ is installed and the path to `npx`/`bunx` is correct (consider using full paths in config). "Server disconnected" usually indicates authentication or connectivity issues – verify your `ACCESS_TOKEN` is set correctly and your network allows access to `https://token-api.mcp.thegraph.com/`. - -### Do I need to use MCP or tools like Claude, Cline, or Cursor? - -No, these are optional. MCP is an advanced feature allowing AI assistants to interface with the API via streaming. For standard usage, simply call the REST endpoints with any HTTP client using your JWT. Claude Desktop, Cline bot, and Cursor IDE integrations are provided for convenience but aren't required. - -### Will using the REST-MCP counts towards my Token API usage? - -Yes, you need to provide your Token API token to the MCP for authenticating with the Token API. The MCP makes API requests on your behalf when your LLM interacts with it. - -## Advanced Topics - -### I keep seeing a smart contract with addresses like `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` and `0x0000000000000000000000000000000000000000`. What is this? - -The address `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` is a sentinel (placeholder) used in some EVM contracts to represent the chain's native token (ETH, BNB, AVAX, etc.) when the code expects a contract address. It stands for the native token of the chain you're on: ETH on Ethereum/Mainnet L2s, BNB on BSC, AVAX on Avalanche C-Chain, and so on. - -`0x0000000000000000000000000000000000000000` is another placeholder introduced in Uniswap v4 for the same purpose. These repetitive patterns make it clear they're not real accounts—just conventional low-entropy addresses developers agreed to use. - -**Use native endpoints instead of placeholders:** When you need native token data, call the dedicated endpoints rather than relying on the sentinel addresses. For example: - -- `/v1/evm/balances/native` for EVM native balances -- `/v1/svm/balances/native` for Solana (SVM) native balances -- `/v1/tvm/transfers/native` for Tron (TVM) native transfers - -### I'm getting 403/401 errors. What's wrong? - -Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. - -### Why am I getting 500 errors? - -Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. - -### Are there rate limits or usage costs? - -Yes. The Token API is provided under a tiered pricing model with defined usage limits based on the selected subscription plan. Each plan specifies allowable request volumes, batch sizes, historical data access, and rate limits. Requests that exceed the provisioned thresholds may be subject to throttling or may return HTTP 429: Too Many Requests. Additional usage beyond the included quota will be billed according to the applicable pay-as-you-go structure, unless otherwise restricted by the selected plan. - -For details on available plans, limits, and billing terms, please refer to the [Token API pricing](/token-api/endpoint-pricing/) section. - -### What do I do if I notice data inconsistencies in the data returned by the Token API? - -If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. - -### How do I specify a network? - -You can query which networks are available with [this endpoint](https://token-api.thegraph.com/networks). Take note that the network IDs differ between the Token API and Subgraphs. For EVM networks, use EVM endpoints with the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `polygon`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum Mainnet. - -To query Solana Mainnet, use the SVM endpoints. - -### Why do I only see 10 results? How can I get more data? - -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=10` to get 10 results (higher limits are available on paid plans), and increment `page` for subsequent batches (e.g., `page=2` for items 11-20). - -To ensure you retrieve all data, continue fetching pages until the API returns an empty data array, indicating there is no more data. - -### How do I fetch older transfer history? - -The Transfers endpoint defaults to 30 days of history. To retrieve older events, increase the `age` parameter up to 180 days maximum (e.g., `age=180` for 6 months of transfers). Transfers older than 180 days cannot be fetched in a single call. - -### What does an empty `"data": []` array mean? - -An empty data array means no records were found matching the query – not an error. This occurs when querying wallets with no tokens/transfers or token contracts with no holders. Verify you've used the correct address and parameters. An invalid address format will trigger a 4xx error. - -### Why is the JSON response wrapped in a `"data"` array? - -All Token API responses consistently wrap results in a top-level `data` array, even for single items. This uniform design handles the common case where addresses have multiple balances or transfers. When parsing, be sure to index into the `data` array (e.g., `const results = response.data`). - -### Why are token amounts returned as strings? - -Large numeric values (like token amounts or supply) are returned as strings to avoid precision loss, as they often exceed JavaScript's safe integer range. Convert these to big number types for arithmetic operations. Fields like `decimals` are provided as normal numbers to help derive human-readable values. - -### What format should addresses be in? - -For EVM addresses, the API accepts hex addresses with either 42 or 40 characters, with or without the `0x` prefix. The endpoint is case-insensitive, so both lower and uppercase hex characters work. Ensure EVM addresses are exactly 42 characters, or 40 if you remove the prefix. For contract queries, use the token's contract address. For balance/transfer queries, use the wallet address. - -SVM addresses are base58-encoded strings that are typically 32-44 characters long. They contain a mix of uppercase letters, lowercase letters, and numbers. Unlike Ethereum Mainnet addresses which are hexadecimal and start with "0x", Solana Mainnet addresses don't have a consistent prefix pattern. - -### Address field semantics - -Swap-related address fields are DEX-dependent and should not be treated as interchangeable. - -The API exposes: - -- `transaction_from` — the account that initiated the transaction onchain -- `caller` — the account or contract that called the swap-relevant smart contract -- `sender` — a field that, in many modern DEX integrations, is best interpreted as the end-user side of the swap flow -- `recipient` — the swap recipient field when available from protocol data - -These fields may be the same in some protocols and different in others. For example, simpler Uniswap V2-style flows can be more direct, while Uniswap V3 and newer routed designs often involve routers or intermediary contracts, so the contract-level caller may differ from the wallet that initiated the transaction. - -The `sender` field deserves special attention. Although the field is named `sender`, in many modern DEX designs it more closely represents the user associated with the swap than a strict low-level transfer sender. This is because many protocols now route swaps through intermediary contracts, and those routers may handle both the send and receive side of token movement before funds reach the final user. In practice, `sender` is often best understood as a user-oriented field rather than a literal transfer sender across all DEX implementations. - -Because of this: - -- `transaction_from`, `caller`, `sender`, and `recipient` may all differ -- `caller` should not be interpreted as the same as `transaction_from` -- `sender` is often the most user-oriented address in the response, but its exact semantics still depend on the DEX implementation -- `recipient` may refer to an intermediate contract rather than the final wallet beneficiary -- TVM swap data does not include call data, which is why `caller` is not supported there - -### Do I need special headers besides authentication? - -While recommended, `Accept: application/json` isn't strictly required as the API returns JSON by default. The critical header is `Authorization: Bearer `. Ensure you make a GET request to the correct URL without trailing slashes or path typos (e.g., use `/v1/evm/balances` not `/v1/evm/balance`). - -### Is the Token API part of The Graph's GraphQL service? - -No, the Token API is a separate RESTful service. Unlike traditional subgraphs, it provides ready-to-use REST endpoints (HTTP GET) for common token data. You don't need to write GraphQL queries or deploy subgraphs. Under the hood, it uses The Graph's infrastructure and MCP with AI for enrichment, but you simply interact with REST endpoints. diff --git a/website/src/pages/en/token-api/guides/_meta.js b/website/src/pages/en/token-api/guides/_meta.js deleted file mode 100644 index d247cd6ba936..000000000000 --- a/website/src/pages/en/token-api/guides/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - gpt: '', - polymarket: '', -} diff --git a/website/src/pages/en/token-api/guides/gpt.mdx b/website/src/pages/en/token-api/guides/gpt.mdx deleted file mode 100644 index bc5ae18255b4..000000000000 --- a/website/src/pages/en/token-api/guides/gpt.mdx +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: How the Token API Powers Custom GPTs -sidebarTitle: Create Custom GPTs ---- - -## Overview - -The Token API is a pre-indexed blockchain data service that provides real-time access to token balances, metadata, prices, liquidity, and volume across multiple chains. Developers use its REST endpoints to build wallets, trading dashboards, DeFi analytics, and AI systems without maintaining their own indexing stack. Custom GPTs can connect directly to the Token API's OpenAPI schema. - -The Token API enables developers to build **Custom GPTs** to reason over live blockchain data inside ChatGPT that can reason over and respond with live blockchain data directly inside ChatGPT. - -## What the Token API Enables in Custom GPTs - -When a Custom GPT is wired to the Token API, it gains access to a machine-readable schema and authenticated endpoints. Developers can use this to: - -- **Query real-time onchain data**: Balances, token prices, liquidity, and transaction history. -- **Automate domain-specific tasks**: Portfolio tracking, accounting, reconciliation, and market analysis. -- **Power AI agents with verifiable blockchain context**: Use the same data sources dapps rely on. - -Because the Token API provides a machine-readable schema and authenticated requests, it serves as a structured data layer that enables GPT-5 agents to combine natural language reasoning with live onchain data from The Graph. - -## When to Use the Token API for Custom GPTs - -Use the Token API when your GPT needs repeatable, domain-specific behavior grounded in blockchain data. This is most effective when the GPT performs the same type of task frequently or enforces a workflow you define. For one-off or exploratory questions, standard ChatGPT prompts are sufficient. - -## Choosing a Use Case - -Start with a clear, narrow objective, then expand as needed. Common patterns include: - -- **Accounting GPT**: Onchain accounting, tax tagging, and portfolio reconciliation. -- **Trading GPT**: Liquidity, pricing, and volume analysis for trading strategies. -- **Protocol Tracking GPT**: Real-time monitoring of transaction activity and liquidity pools. - -A focused initial goal such as “Retrieve token balances and prices for a wallet” makes it easier to configure reliable behavior before adding complex workflows. - -## Requirements - -| Requirement | Description | -| ---------------------- | ------------------------------------------------------- | -| ChatGPT 5 | Custom GPT creation requires GPT-5 tier or Pro. | -| Token API Subscription | Sign up at [The Graph Market](https://thegraph.market/) | -| Token API Key | Available in your dashboard as the Authentication JWT. | - -## Setting Up a Custom GPT - -Below is an explanatory outline of what happens during setup. This section provides conceptual understanding. - -### Create Custom GPT - -1. Visit chat.openai.com/gpts in your browser. 2, Click Create (top right). -2. Under Configure (in the top left panel), set up your GPT's personality and scope. - -### Configure Your GPT - -You define the GPT's role, scope, and metadata so it knows what it is designed to do. This includes: - -- **Name and Description**: Helps users discover your GPT. - - For example: **Name**: Token Tracker GPT **Description**: An onchain analytics assistant that retrieves live token balances, prices, and liquidity data using The Graph's Token API. -- **Instructions**: Tells the GPT what tasks it should perform using the Token API. - - For example: You are a blockchain data assistant retrieving onchain token data from The Graph's Token API. Use endpoints to fetch balances, liquidity, and price history across EVM chains. Present results in tables with token symbols, prices, and USD values. -- **Knowledge**: Optional context files such as wallet references, accounting rules, or code snippets. -- **New Action**: At the bottom, click “Create new action” to connect your GPT to the Token API. - -### Connect the Token API - -To enable live blockchain queries inside ChatGPT, you connect the GPT to the Token API through: - -#### Authentication - -1. Set Authentication to API Key → Bearer. -2. Open [The Graph Market](https://thegraph.market/) and copy your Authentication JWT from your dashboard. -3. Paste the token into the ChatGPT prompt where the field shows [HIDDEN]. - -#### Schema - -1. Above the Schema box, click Import from URL. -2. Paste: https://token-api.thegraph.com/openapi -3. Click Import. You'll now see endpoints like: - - `getV1EvmTokens` - - `getV1EvmDexes` - - `getV1EvmBalances` -4. Click Test on one (for example `getV1EvmDexes`) to verify connection. - -##### Privacy - -1. At the bottom, under Privacy, paste: https://pinax.network/en/legal/privacy - -### Privacy - -You can attach a privacy policy URL such as: https://pinax.network/en/legal/privacy - -## Example Prompt Patterns - -These examples help illustrate how a GPT reasons over Token API data. - -### Wallet and Portfolio - -Get the total USD balance for a wallet across multiple chains, returning token name, symbol, balance, and price. - -### Trading Analysis - -Compare USDC and DAI liquidity across Uniswap and Curve. Return the top 5 pools by TVL. - -### Accounting - -List all ERC-20 transfers for this address in the last 30 days. Group by token and total incoming/outgoing volume. - -## Best Practices - -| Tip | Why It Matters | -| --------------------------------- | ---------------------------------------------------------------------- | -| Scope your GPT narrowly first | Simplifies debugging and validates schema integration. | -| Use clear role instructions | Helps the GPT choose the right endpoints and avoid assumptions. | -| Name endpoints explicitly | Improves routing accuracy when fetching balances, prices, or DEX data. | -| Combine with code | Enables custom parsing or logic for complex workflows. | -| Add Subgraph or Substream context | Provides richer analytics when combined with Token API data. | - -## FAQs & Resources - -- Builders Office Hours (October 23, 2025) -- Watch the full session: https://x.com/i/broadcasts/1mrGmBzBarNJy diff --git a/website/src/pages/en/token-api/guides/polymarket.mdx b/website/src/pages/en/token-api/guides/polymarket.mdx deleted file mode 100644 index 4f790ad5f656..000000000000 --- a/website/src/pages/en/token-api/guides/polymarket.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Polymarket Data Overview -sidebarTitle: Polymarket Data ---- - -The Graph's Token API provides a complete set of REST endpoints for querying Polymarket's on-chain prediction market data. These endpoints are purpose-built for **research, analytics, and historical analysis** — covering markets, platform-wide aggregates, and individual user performance. - -## Why Use The Graph for Polymarket Data - -Polymarket already exposes its own API for real-time order flow and WebSocket feeds optimized for low-latency trading. The Graph's Polymarket endpoints serve a different purpose: they give researchers, analysts, and builders structured access to **aggregated, historical, and cross-market data** that Polymarket's native API doesn't surface. - -### What Users Get with The Graph's Token API - -- **Platform-wide aggregates:** Daily or weekly volume, open interest, fees, and split/merge activity rolled up across every Polymarket market. Track the platform's growth trajectory, not just individual markets. -- **User leaderboards and PnL breakdowns:** Paginated rankings by volume, realized PnL, unrealized PnL, or trade count. Drill into any address to see per-token position history, cost basis, and entry prices. -- **Market-level open interest time-series:** Track collateral flows (splits, merges, redemptions) over time for any market. Understand conviction shifts beyond price alone. -- **On-chain activity feeds:** Chronological trade, split, merge, and redemption logs with transaction hashes and block numbers for full auditability. -- **OHLCV price history:** Standard candlestick data for any outcome token, ready for charting and backtesting. - -> **A note on latency:** If you need sub-second order book data or execution, Polymarket's native WebSocket endpoints are the right tool. The Graph's Polymarket endpoints are optimized for structured queries over historical and aggregated data, which feeds dashboards, research reports, and strategy backtests. - -## Getting Started - -All Polymarket endpoints are available under the Token API base URL: - -``` -https://token-api.thegraph.com/v1/polymarket/ -``` - -You'll need a Token API key. See the [Quick Start guide](https://claude.ai/token-api/quick-start/) to create one. - -- [Market Endpoints](/token-api/polymarket-markets/markets/) -- [Platform Endpoints](/token-api/polymarket-platform/platform/) -- [User Endpoints](/token-api/polymarket-users/users/) - -You can also set up the [Token API MCP](/ai-suite/token-api-mcp/introduction/) to query Polymarket in your AI assistant. - -### Polymarket Endpoints at a Glance - -| Group | Endpoint | What it returns | -| --- | --- | --- | -| **Markets** | `/v1/polymarket/markets` | Market metadata (question, outcomes, token IDs, volume, status) | -| **Markets** | `/v1/polymarket/markets/ohlcv` | OHLCV candlestick data per outcome token | -| **Markets** | `/v1/polymarket/markets/open-interest` | Open interest time-series (splits, merges, redemptions) | -| **Markets** | `/v1/polymarket/markets/activity` | Onchain trade and position activity feed | -| **Markets** | `/v1/polymarket/markets/positions` | All user positions for a given outcome token (leaderboard) | -| **Platform** | `/v1/polymarket/platform` | Platform-wide volume, OI, fees, and trade aggregates | -| **Users** | `/v1/polymarket/users` | User stats and leaderboard (volume, PnL, trade counts) | -| **Users** | `/v1/polymarket/users/positions` | Per-user position breakdown with cost basis and PnL | - -## Recommended Use Cases - -### 1. Portfolio review and self-analysis - -Use the User Lookup and User Positions endpoints to audit your own Polymarket account. See total PnL (realized and unrealized), review every position's cost basis and entry price, and identify which markets drove gains or losses. This is the fastest path to a personal Polymarket PnL statement. - -### 2. Leaderboard research and strategy mirroring - -Use User Lookup without an address to pull the global leaderboard ranked by PnL, volume, or trade count. Identify top-performing wallets, then drill into their positions via User Positions to study what they're buying, their sizing patterns, and where they're concentrated. Combine with Market OHLCV to backtest whether mirroring their entries would have been profitable. - -### 3. Market-level conviction analysis - -Use Market Open Interest alongside OHLCV to separate price moves from real capital commitment. A price spike with flat open interest is noise. A price move backed by rising OI (new splits) signals genuine conviction. Market Activity gives you the raw on-chain logs to verify. - -### 4. Platform health and trend monitoring - -Use Platform Aggregates to track Polymarket's overall trajectory, including daily volume trends, total open interest growth, fee revenue, and the split-to-merge ratio. This is essential context for anyone writing about prediction markets, building analytics dashboards, or evaluating Polymarket as a platform. - -### 5. AI-assisted research with MCP tools - -Pair these endpoints with The Graph's Token API MCP server to let AI agents query Polymarket data conversationally. Ask questions like "Who are the top 10 traders by PnL this week?" or "What was the open interest trend on the 2026 election market?" and get structured answers grounded in on-chain data. diff --git a/website/src/pages/en/token-api/hyperliquid-markets/_meta.js b/website/src/pages/en/token-api/hyperliquid-markets/_meta.js deleted file mode 100644 index d6bf35498ade..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/_meta.js +++ /dev/null @@ -1,9 +0,0 @@ -export default { - activity: '', - dexes: '', - 'liquidations-ohlc': '', - liquidations: '', - markets: '', - ohlc: '', - oi: '', -} diff --git a/website/src/pages/en/token-api/hyperliquid-markets/activity.mdx b/website/src/pages/en/token-api/hyperliquid-markets/activity.mdx deleted file mode 100644 index d726a0e33127..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/activity.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Market Activity -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidMarketsActivity ---- - -Returns a chronological fill feed, filterable by `coin`, `dex`, and/or `user`. Each row is a single fill carrying price, size, side (`BID` or `ASK`), directional intent (`OPEN_LONG`, `CLOSE_SHORT`, `LIQUIDATED_CROSS_LONG`, `AUTO_DELEVERAGING`, and others), closed PnL, fees (negative values represent maker rebates), and order-level metadata (`order_id`, `client_order_id`, `twap_id`, `crossed`). - -For balance-changing events on a user (deposits, withdrawals, funding payments, vault flows), use `/v1/hyperliquid/users/activity`. - -At least one of `coin`, `dex`, or `user` is required. Filters compose additively — pass any combination to narrow further; a mismatched pair (e.g. `coin=cash:TSLA&dex=xyz`) returns empty. - -Defaults to the last 24 hours when no time range is specified — provide `start_time` and `end_time` to query older data. diff --git a/website/src/pages/en/token-api/hyperliquid-markets/dexes.mdx b/website/src/pages/en/token-api/hyperliquid-markets/dexes.mdx deleted file mode 100644 index 2759529d5ab5..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/dexes.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Supported DEXs -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidDexes ---- - -Returns the list of perpetuals DEXs and spot, each with 24h activity stats (volume, trade count, unique users, asset count). Hyperliquid hosts a core perpetuals venue (`dex=perps`) alongside builder-deployed perpetuals DEXs that each list their own asset universe — `xyz` (commodities and macro indices), `cash` (tokenized equities), `km`, and others. - -Use this endpoint to discover valid `dex` filter values for venue-scoped queries on `/markets`, `/markets/activity`, `/markets/liquidations`, `/users`, and `/users/positions`. - -For platform-wide totals across all DEXs over arbitrary intervals, use `/v1/hyperliquid/platform`. - -**Public — no auth required.** diff --git a/website/src/pages/en/token-api/hyperliquid-markets/liquidations-ohlc.mdx b/website/src/pages/en/token-api/hyperliquid-markets/liquidations-ohlc.mdx deleted file mode 100644 index 11406ed1d71c..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/liquidations-ohlc.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market Liquidations OHLCV -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidMarketsLiquidationsOhlc ---- - -Returns liquidation-only OHLCV candles for a single coin and interval. Adds mark-price OHLC (`mark_price_open`, `mark_price_high`, `mark_price_low`, `mark_price_close`) — the price feed used for margining at liquidation time — alongside the standard trade-price OHLC. Volume and counts cover the liquidation fills only. - -For all-fill candles, use `/v1/hyperliquid/markets/ohlc`. diff --git a/website/src/pages/en/token-api/hyperliquid-markets/liquidations.mdx b/website/src/pages/en/token-api/hyperliquid-markets/liquidations.mdx deleted file mode 100644 index 5896c5b36fe5..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/liquidations.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Market Liquidations -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidMarketsLiquidations ---- - -Returns one row per liquidation event, aggregated across the multiple fills that walk the book during a liquidation. Only the liquidated user's side is returned — counterparty fills are excluded. - -Each row surfaces the coin, liquidated user, transaction hash, liquidation kind (`CROSS_LONG`, `ISOLATED_SHORT`, and others), total size and notional, size-weighted average fill price, the mark price at liquidation, and the liquidation method reported by the venue (`backstop` and others). - -Filter by `coin`, `dex`, and/or `liquidated_user` — filters compose additively. Sort by `notional` (default — largest events first) or `time` (most recent first). diff --git a/website/src/pages/en/token-api/hyperliquid-markets/markets.mdx b/website/src/pages/en/token-api/hyperliquid-markets/markets.mdx deleted file mode 100644 index 5ee346ef53e1..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/markets.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Market Lookup -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidMarkets ---- - -Returns the latest snapshot per market: last trade price, 24h change versus the prior-day close, 24h volume (split by side), trade and unique-user counts, and the most recent open interest and funding rate observed at the last funding snapshot. - -Filters compose additively — pass `coin`, `dex`, `base_token`, and/or `quote_token` to narrow the scope. A mismatched combination (e.g. `coin=cash:TSLA&dex=xyz`) returns empty. Omit all for a full listing sorted by 24h volume. - -`base_token` and `quote_token` are spot-discovery filters: `?base_token=HYPE` returns every spot pair where HYPE sits on the base side (HYPE/USDC, HYPE/USDT0, …). Use the `coin` from the result as the identifier on the rest of the `/v1/hyperliquid/*` endpoints. diff --git a/website/src/pages/en/token-api/hyperliquid-markets/ohlc.mdx b/website/src/pages/en/token-api/hyperliquid-markets/ohlc.mdx deleted file mode 100644 index bb581c37d766..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/ohlc.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market OHLCV -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidMarketsOhlc ---- - -Returns OHLCV candles for a single coin and interval, derived from regular trade fills. Volume is broken down both by side (`buy_volume`, `ask_volume`) and — on perpetuals — by directional intent (`open_long_volume`, `close_long_volume`, `open_short_volume`, `close_short_volume`) so consumers can distinguish whether price moves are driven by fresh exposure or position unwinds. On spot markets the directional-intent fields are zero; the side-volume fields carry the buy/sell breakdown directly. - -For liquidation-only candles (with mark-price OHLC), use `/v1/hyperliquid/markets/liquidations/ohlc`. diff --git a/website/src/pages/en/token-api/hyperliquid-markets/oi.mdx b/website/src/pages/en/token-api/hyperliquid-markets/oi.mdx deleted file mode 100644 index d4735d5b0f98..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-markets/oi.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market Open Interest -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidMarketsOi ---- - -Returns the historical open-interest and funding-rate time series for a coin at the requested interval. `open_interest` is the sum of absolute signed position sizes across all users at each funding snapshot. - -Each row also exposes the directional positioning split (`long_size`, `short_size`, `net_position`, plus `long_positions` and `short_positions` as user counts) and funding aggregates (`funding_rate`, `total_funding`, `positive_funding`, `negative_funding`) — useful for detecting crowded sides, funding pressure, and position flushes. diff --git a/website/src/pages/en/token-api/hyperliquid-platform/_meta.js b/website/src/pages/en/token-api/hyperliquid-platform/_meta.js deleted file mode 100644 index cd746e2988c0..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-platform/_meta.js +++ /dev/null @@ -1,3 +0,0 @@ -export default { - platform: '', -} diff --git a/website/src/pages/en/token-api/hyperliquid-platform/platform.mdx b/website/src/pages/en/token-api/hyperliquid-platform/platform.mdx deleted file mode 100644 index 9340c1ded13a..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-platform/platform.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Platform Activity -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidPlatform ---- - -Returns a platform-wide time series aggregating all coins and DEXs into one row per `timestamp`. Each row carries trade volume (split by side), trade and counterparty counts, distinct active coins, total fees, and a liquidation slice (`liquidations_volume`, `liquidations_count`, `unique_liquidated_users`). - -Use this endpoint instead of summing per-coin or per-DEX data client-side when you need cross-market totals. Per-coin OHLCV lives on `/v1/hyperliquid/markets/ohlc`; per-DEX on `/v1/hyperliquid/dexes`. diff --git a/website/src/pages/en/token-api/hyperliquid-users/_meta.js b/website/src/pages/en/token-api/hyperliquid-users/_meta.js deleted file mode 100644 index ff6d7db2c9b7..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-users/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - activity: '', - positions: '', - users: '', -} diff --git a/website/src/pages/en/token-api/hyperliquid-users/activity.mdx b/website/src/pages/en/token-api/hyperliquid-users/activity.mdx deleted file mode 100644 index abfd18c77f2f..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-users/activity.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: User Activity -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidUsersActivity ---- - -Returns a chronological feed of balance-changing events for a user — bridge deposits/withdrawals, on-chain account deposits/withdrawals, vault deposits/withdrawals, liquidations, and funding payments. Each row carries an `event_type` discriminator and a `notes` field with type-specific extras (e.g. funding rate and position size for funding events). - -For trade fills, use `/v1/hyperliquid/markets/activity` instead. - -Supply `event_types` (comma-separated) to filter to a subset. Defaults to the last 30 days when no time range is specified — provide `start_time` and `end_time` to query older data. diff --git a/website/src/pages/en/token-api/hyperliquid-users/positions.mdx b/website/src/pages/en/token-api/hyperliquid-users/positions.mdx deleted file mode 100644 index ebc0812bbf8e..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-users/positions.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: User Positions -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidUsersPositions ---- - -Returns the current signed position (`position_size`) per coin for a user, reconstructed from the latest funding snapshot per `(user, coin)` pair. Positive `position_size` indicates a long position, negative indicates a short. Each row also carries the funding rate applied at that snapshot and the snapshot timestamp. - -Filter by `coin` for a single coin, or `dex` to return only positions on one venue (`xyz`, `cash`, etc.). - -Caveat: positions opened and fully closed between two funding snapshots are never observed during settlement and will not appear here. diff --git a/website/src/pages/en/token-api/hyperliquid-users/users.mdx b/website/src/pages/en/token-api/hyperliquid-users/users.mdx deleted file mode 100644 index ce6364db0306..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-users/users.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: User Lookup -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidUsers ---- - -Returns trading aggregates per user: fill count, volume broken down by side, total fees (negative values represent net maker rebates), realized PnL, net funding paid or received, liquidation-fill count, distinct coins traded, and first/last trade timestamps. - -Omit `user` for leaderboard mode — returns a paginated list sorted by `sort_by`. Provide `user` for profile mode — returns a single row. Filters `coin` and `dex` compose additively — pass either or both to narrow the scope (`coin=BTC` for one market, `dex=xyz` for one venue, both together for redundancy). A mismatched combination (e.g. `coin=cash:TSLA&dex=xyz`) returns an empty result. - -Aggregation windows are fixed via the `interval` parameter — `1h`, `1d`, `1w`, `30d`, or omit for all-time. Data is refreshed hourly, so `1h` lags up to 1h. - -Vaults trade as normal accounts, so passing a vault address as `user` returns its trading performance — pair with `/v1/hyperliquid/vaults` for depositor-side stats. diff --git a/website/src/pages/en/token-api/hyperliquid-vaults/_meta.js b/website/src/pages/en/token-api/hyperliquid-vaults/_meta.js deleted file mode 100644 index ffe700f11590..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-vaults/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - depositors: '', - vaults: '', -} diff --git a/website/src/pages/en/token-api/hyperliquid-vaults/depositors.mdx b/website/src/pages/en/token-api/hyperliquid-vaults/depositors.mdx deleted file mode 100644 index 1a14b737642a..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-vaults/depositors.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Vault Depositors -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidVaultsDepositors ---- - -Returns the per-depositor breakdown for a single vault — one row per `(user, vault)` pair with lifetime deposits, lifetime net withdrawals (after vault commission and closing cost), distributions received, deposit and withdrawal counts, and last-activity timestamp. - -For the vault-level summary, see `/v1/hyperliquid/vaults`. diff --git a/website/src/pages/en/token-api/hyperliquid-vaults/vaults.mdx b/website/src/pages/en/token-api/hyperliquid-vaults/vaults.mdx deleted file mode 100644 index 86ceaa0652fd..000000000000 --- a/website/src/pages/en/token-api/hyperliquid-vaults/vaults.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Vault Listings -template: - type: openApi - apiId: tokenApi - operationId: getV1HyperliquidVaults ---- - -Returns vault summaries — leader, lifetime flow totals (deposits, withdrawals, distributions, leader commissions), depositor and event counts, and last-activity timestamp. - -Vault trading PnL/volume is exposed via `/v1/hyperliquid/users` with the vault address as `user` (vaults trade as normal accounts on Hyperliquid). Per-depositor breakdowns live on `/v1/hyperliquid/vaults/depositors`. - -Vaults predating our indexer cutover (2026-02-02) have no `ledger_vault_creates` row and come back with `leader`/`created_at` as null and `initial_deposit`/`create_fee` as 0. diff --git a/website/src/pages/en/token-api/monitoring/_meta.js b/website/src/pages/en/token-api/monitoring/_meta.js deleted file mode 100644 index 7905c8d46fe8..000000000000 --- a/website/src/pages/en/token-api/monitoring/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - health: '', - networks: '', - version: '', -} diff --git a/website/src/pages/en/token-api/monitoring/health.mdx b/website/src/pages/en/token-api/monitoring/health.mdx deleted file mode 100644 index a4ac581c99ee..000000000000 --- a/website/src/pages/en/token-api/monitoring/health.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Health Check -template: - type: openApi - apiId: tokenApi - operationId: getV1Health ---- - -Returns API operational status and dependency health with optional endpoint testing. - -Use `skip_endpoints` to bypass endpoint responses checks. diff --git a/website/src/pages/en/token-api/monitoring/networks.mdx b/website/src/pages/en/token-api/monitoring/networks.mdx deleted file mode 100644 index a29d27b4cf81..000000000000 --- a/website/src/pages/en/token-api/monitoring/networks.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Supported Networks -template: - type: openApi - apiId: tokenApi - operationId: getV1Networks ---- - -Returns supported blockchain networks with identifiers and metadata. diff --git a/website/src/pages/en/token-api/monitoring/version.mdx b/website/src/pages/en/token-api/monitoring/version.mdx deleted file mode 100644 index 6ae341acc17d..000000000000 --- a/website/src/pages/en/token-api/monitoring/version.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: API Version Info -template: - type: openApi - apiId: tokenApi - operationId: getV1Version ---- - -Returns API version, build date, and commit information. diff --git a/website/src/pages/en/token-api/polymarket-markets/_meta.js b/website/src/pages/en/token-api/polymarket-markets/_meta.js deleted file mode 100644 index d62a8de186db..000000000000 --- a/website/src/pages/en/token-api/polymarket-markets/_meta.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - markets: '', - ohlc: '', - oi: '', - activity: '', - positions: '', -} diff --git a/website/src/pages/en/token-api/polymarket-markets/activity.mdx b/website/src/pages/en/token-api/polymarket-markets/activity.mdx deleted file mode 100644 index 38409b8e212f..000000000000 --- a/website/src/pages/en/token-api/polymarket-markets/activity.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Market Activity -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketMarketsActivity ---- - -Returns a chronological feed of on-chain trades, position splits, merges, and redemptions. Each row includes the transaction hash, block number, and scaled amounts. - -For trades, `market.token_id` and `market.outcome_label` identify the specific outcome token. For splits, merges, and redemptions, these are null because the operation applies to the market as a whole. - -At least one of `user`, `token_id`, or `condition_id` is required. Defaults to the last 24 hours when no time range is specified — provide `start_time` and `end_time` to query older data. diff --git a/website/src/pages/en/token-api/polymarket-markets/markets.mdx b/website/src/pages/en/token-api/polymarket-markets/markets.mdx deleted file mode 100644 index 712d86b6140d..000000000000 --- a/website/src/pages/en/token-api/polymarket-markets/markets.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market Lookup -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketMarkets ---- - -Returns market metadata including question, outcomes with token IDs, volume, and status. Each market has exactly two outcomes (binary); multi-outcome scenarios are modeled as multiple markets grouped under one event. - -Use this to discover `token_id` values needed for OHLCV and position queries, or to resolve a slug to identifiers. When no identifier is provided, returns a paginated list for discovery. diff --git a/website/src/pages/en/token-api/polymarket-markets/ohlc.mdx b/website/src/pages/en/token-api/polymarket-markets/ohlc.mdx deleted file mode 100644 index ff66820c2269..000000000000 --- a/website/src/pages/en/token-api/polymarket-markets/ohlc.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market OHLCV -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketMarketsOhlc ---- - -Returns OHLCV price data for a single outcome token. Each market has two outcome tokens (e.g. Yes and No) — use `/v1/polymarket/markets` to discover them. - -Prices are in USD per share (0 to 1). Volume and fees are in USDC. diff --git a/website/src/pages/en/token-api/polymarket-markets/oi.mdx b/website/src/pages/en/token-api/polymarket-markets/oi.mdx deleted file mode 100644 index 2cd74d676502..000000000000 --- a/website/src/pages/en/token-api/polymarket-markets/oi.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market Open Interest -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketMarketsOi ---- - -Returns open interest time-series for a market. Open interest is the USDC collateral locked into conditional token positions — it increases on splits (deposit USDC to mint Yes+No pairs) and decreases on merges (return pairs to withdraw USDC) or redemptions. - -Provide **one** of `condition_id` or `market_slug`. diff --git a/website/src/pages/en/token-api/polymarket-markets/positions.mdx b/website/src/pages/en/token-api/polymarket-markets/positions.mdx deleted file mode 100644 index d604f608ac6c..000000000000 --- a/website/src/pages/en/token-api/polymarket-markets/positions.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Market Positions -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketMarketsPositions ---- - -Returns all user positions for a specific outcome token — a leaderboard view. Each row is one user's cumulative position: cost basis, PNL, shares held, and current value. - -For a user's portfolio across all markets, use `/v1/polymarket/positions` instead. diff --git a/website/src/pages/en/token-api/polymarket-platform/_meta.js b/website/src/pages/en/token-api/polymarket-platform/_meta.js deleted file mode 100644 index cd746e2988c0..000000000000 --- a/website/src/pages/en/token-api/polymarket-platform/_meta.js +++ /dev/null @@ -1,3 +0,0 @@ -export default { - platform: '', -} diff --git a/website/src/pages/en/token-api/polymarket-platform/platform.mdx b/website/src/pages/en/token-api/polymarket-platform/platform.mdx deleted file mode 100644 index 4a5a18569819..000000000000 --- a/website/src/pages/en/token-api/polymarket-platform/platform.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Platform Aggregates -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketPlatform ---- - -Returns platform-wide time-series combining trading volume, open interest, and fee aggregates across all Polymarket markets. diff --git a/website/src/pages/en/token-api/polymarket-users/_meta.js b/website/src/pages/en/token-api/polymarket-users/_meta.js deleted file mode 100644 index 77921ef09783..000000000000 --- a/website/src/pages/en/token-api/polymarket-users/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - users: '', - positions: '', -} diff --git a/website/src/pages/en/token-api/polymarket-users/positions.mdx b/website/src/pages/en/token-api/polymarket-users/positions.mdx deleted file mode 100644 index 8130748c54f5..000000000000 --- a/website/src/pages/en/token-api/polymarket-users/positions.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: User Positions -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketUsersPositions ---- - -Returns a user's positions with PNL breakdown per outcome token. Each row is one token's cumulative position: cost basis, realized PNL, net shares held, average entry price, and current market price. - -Use `closed=false` for positions on live markets, or `closed=true` for resolved markets. diff --git a/website/src/pages/en/token-api/polymarket-users/users.mdx b/website/src/pages/en/token-api/polymarket-users/users.mdx deleted file mode 100644 index 7f133fa24c4f..000000000000 --- a/website/src/pages/en/token-api/polymarket-users/users.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: User Lookup -template: - type: openApi - apiId: tokenApi - operationId: getV1PolymarketUsers ---- - -Returns trading statistics per user: volume, PNL (realized, unrealized, total), trade counts, and activity window. When no user address is provided, returns a paginated leaderboard for discovery. - -Supports lookback windows via `interval`: `1h`, `1d`, `1w`, `30d`. Omit for all-time. Data refreshes hourly. diff --git a/website/src/pages/en/token-api/quick-start.mdx b/website/src/pages/en/token-api/quick-start.mdx deleted file mode 100644 index 176da637c358..000000000000 --- a/website/src/pages/en/token-api/quick-start.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Welcome to the Token API -sidebarTitle: Quick Start ---- - -The Graph's Token API lets you access both live and historical data for tokens across multiple blockchains. - -## Gain access - -Make sure you already have an account on [The Graph Market](https://thegraph.market/) and an **"API TOKEN (Authentication JWT)"** from the [Dashboard](https://thegraph.market/dashboard). - -## Use authenticated routes - -Raw API endpoints are authenticated using a header, and the TypeScript Node.js SDK accepts the token as a configuration option. - - - - ```shell - curl --request GET \ - --url "https://token-api.thegraph.com/v1/evm/balances?network=mainnet&address=0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208" \ - --header 'Accept: application/json' \ - --header 'Authorization: Bearer YOUR_TOKEN' - ``` - - ```typescript - import {EVMChains, TokenAPI} from "@pinax/token-api"; - - const client = new TokenAPI({ - apiToken: process.env.TOKEN_API_KEY || "" - }); - - const result = await client.evm.tokens.getBalances({ - network: EVMChains.Ethereum, - address: ['0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208'] - }) - ``` - - ```python - import requests - - res = requests.get( - "https://token-api.thegraph.com/v1/evm/balances?network=mainnet&address=0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208", - headers={"Authorization": "Bearer YOUR_TOKEN"}, - ) - - print(res.json()) - ``` - - ```go - package main - - import ( - "fmt" - "encoding/json" - "net/http" - ) - - func main() { - req, _ := http.NewRequest("GET", - "https://token-api.thegraph.com/v1/evm/balances?network=mainnet&address=0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208", - nil, - ) - req.Header.Set("Authorization", "Bearer YOUR_TOKEN") - - res, _ := http.DefaultClient.Do(req) - defer res.Body.Close() - - var data any - json.NewDecoder(res.Body).Decode(&data) - - fmt.Printf("%#v\n", data) - } - ``` - - ```rust - use reqwest::Client; - - #[tokio::main] - async fn main() -> reqwest::Result<()> { - let res = Client::new() - .get("https://token-api.thegraph.com/v1/evm/balances?network=mainnet&address=0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208") - .bearer_auth("YOUR_TOKEN") - .send() - .await?; - - println!("{}", res.text().await?); - Ok(()) - } - ``` - - - -## What's next? - -Explore the most popular endpoints: - -- [EVM Transfers](/token-api/evm-tokens/transfers/) -- [Solana Swaps](/token-api/svm-dexs/swaps/) -- [EVM Token Holders](/token-api/evm-tokens/holders/) -- [EVM Swaps](/token-api/evm-dexs/swaps/) -- [EVM Historical Balances](/token-api/evm-tokens/balances-historical/) - -Check the sidebar for more endpoints that you can use with the Token API! diff --git a/website/src/pages/en/token-api/svm-dexs/_meta.js b/website/src/pages/en/token-api/svm-dexs/_meta.js deleted file mode 100644 index 68e13a8d4948..000000000000 --- a/website/src/pages/en/token-api/svm-dexs/_meta.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - dexes: '', - pools: '', - 'pools-ohlc': '', - swaps: '', -} diff --git a/website/src/pages/en/token-api/svm-dexs/dexes.mdx b/website/src/pages/en/token-api/svm-dexs/dexes.mdx deleted file mode 100644 index 7ff60161efae..000000000000 --- a/website/src/pages/en/token-api/svm-dexs/dexes.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Supported DEXs -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmDexes ---- - -Returns supported Solana DEXs. diff --git a/website/src/pages/en/token-api/svm-dexs/pools-ohlc.mdx b/website/src/pages/en/token-api/svm-dexs/pools-ohlc.mdx deleted file mode 100644 index 547a886f1f5e..000000000000 --- a/website/src/pages/en/token-api/svm-dexs/pools-ohlc.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Pool OHLCV Data -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmPoolsOhlc ---- - -Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format for DEX pools. diff --git a/website/src/pages/en/token-api/svm-dexs/pools.mdx b/website/src/pages/en/token-api/svm-dexs/pools.mdx deleted file mode 100644 index 9a142c3dc92a..000000000000 --- a/website/src/pages/en/token-api/svm-dexs/pools.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Liquidity Pools -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmPools ---- - -Returns AMM pool information from Solana DEX protocols with transaction counts. diff --git a/website/src/pages/en/token-api/svm-dexs/swaps.mdx b/website/src/pages/en/token-api/svm-dexs/swaps.mdx deleted file mode 100644 index d4a926108511..000000000000 --- a/website/src/pages/en/token-api/svm-dexs/swaps.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Swap Events -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmSwaps ---- - -Returns AMM swap events from Solana DEXs with input/output tokens and amounts. diff --git a/website/src/pages/en/token-api/svm-tokens-native/_meta.js b/website/src/pages/en/token-api/svm-tokens-native/_meta.js deleted file mode 100644 index c409ed0aa5c9..000000000000 --- a/website/src/pages/en/token-api/svm-tokens-native/_meta.js +++ /dev/null @@ -1,3 +0,0 @@ -export default { - 'balances-native': '', -} diff --git a/website/src/pages/en/token-api/svm-tokens-native/balances-native.mdx b/website/src/pages/en/token-api/svm-tokens-native/balances-native.mdx deleted file mode 100644 index 1264519ccb97..000000000000 --- a/website/src/pages/en/token-api/svm-tokens-native/balances-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Balances -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmBalancesNative ---- - -Returns SOL native balances for wallet addresses. diff --git a/website/src/pages/en/token-api/svm-tokens-native/holders-native.mdx b/website/src/pages/en/token-api/svm-tokens-native/holders-native.mdx deleted file mode 100644 index 976bf7020470..000000000000 --- a/website/src/pages/en/token-api/svm-tokens-native/holders-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Holders -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmHoldersNative ---- - -Returns top token holders ranked by Native balance. diff --git a/website/src/pages/en/token-api/svm-tokens-native/tokens-native.mdx b/website/src/pages/en/token-api/svm-tokens-native/tokens-native.mdx deleted file mode 100644 index 7130e81cd3a9..000000000000 --- a/website/src/pages/en/token-api/svm-tokens-native/tokens-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Metadata -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmTokensNative ---- - -Returns Native metadata including supply and holder count. diff --git a/website/src/pages/en/token-api/svm-tokens-native/transfers-native.mdx b/website/src/pages/en/token-api/svm-tokens-native/transfers-native.mdx deleted file mode 100644 index a010efda571d..000000000000 --- a/website/src/pages/en/token-api/svm-tokens-native/transfers-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmTransfersNative ---- - -Returns Native transfers with transaction and block data. diff --git a/website/src/pages/en/token-api/svm-tokens/_meta.js b/website/src/pages/en/token-api/svm-tokens/_meta.js deleted file mode 100644 index e0581d18315a..000000000000 --- a/website/src/pages/en/token-api/svm-tokens/_meta.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - tokens: '', - transfers: '', - holders: '', - balances: '', - owner: '', -} diff --git a/website/src/pages/en/token-api/svm-tokens/balances.mdx b/website/src/pages/en/token-api/svm-tokens/balances.mdx deleted file mode 100644 index 65146b2525fd..000000000000 --- a/website/src/pages/en/token-api/svm-tokens/balances.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Balances -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmBalances ---- - -Returns SPL token balances for Solana token owners with mint and program data. diff --git a/website/src/pages/en/token-api/svm-tokens/holders.mdx b/website/src/pages/en/token-api/svm-tokens/holders.mdx deleted file mode 100644 index 6d1cd7475946..000000000000 --- a/website/src/pages/en/token-api/svm-tokens/holders.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Holders -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmHolders ---- - -Returns top token holders ranked by balance. diff --git a/website/src/pages/en/token-api/svm-tokens/owner.mdx b/website/src/pages/en/token-api/svm-tokens/owner.mdx deleted file mode 100644 index 65bc50d9a321..000000000000 --- a/website/src/pages/en/token-api/svm-tokens/owner.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Account Owner Lookup -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmOwner ---- - -Returns owner address of an associated token account (ATA) with closure status. diff --git a/website/src/pages/en/token-api/svm-tokens/tokens.mdx b/website/src/pages/en/token-api/svm-tokens/tokens.mdx deleted file mode 100644 index c6c37ef458d1..000000000000 --- a/website/src/pages/en/token-api/svm-tokens/tokens.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Metadata -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmTokens ---- - -Provides SVM token contract metadata. diff --git a/website/src/pages/en/token-api/svm-tokens/transfers.mdx b/website/src/pages/en/token-api/svm-tokens/transfers.mdx deleted file mode 100644 index 2bbb89588916..000000000000 --- a/website/src/pages/en/token-api/svm-tokens/transfers.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1SvmTransfers ---- - -Returns SPL token transfers with program, authority, and account information. diff --git a/website/src/pages/en/token-api/tvm-dexs/_meta.js b/website/src/pages/en/token-api/tvm-dexs/_meta.js deleted file mode 100644 index 68e13a8d4948..000000000000 --- a/website/src/pages/en/token-api/tvm-dexs/_meta.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - dexes: '', - pools: '', - 'pools-ohlc': '', - swaps: '', -} diff --git a/website/src/pages/en/token-api/tvm-dexs/dexes.mdx b/website/src/pages/en/token-api/tvm-dexs/dexes.mdx deleted file mode 100644 index 4f1e5ad007d8..000000000000 --- a/website/src/pages/en/token-api/tvm-dexs/dexes.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Supported DEXs -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmDexes ---- - -Returns all supported TVM DEXs. diff --git a/website/src/pages/en/token-api/tvm-dexs/pools-ohlc.mdx b/website/src/pages/en/token-api/tvm-dexs/pools-ohlc.mdx deleted file mode 100644 index 71346fd5b99a..000000000000 --- a/website/src/pages/en/token-api/tvm-dexs/pools-ohlc.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Pool OHLCV Data -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmPoolsOhlc ---- - -Returns OHLCV price data for liquidity pools. - -OHLCV historical depth is subject to plan restrictions. diff --git a/website/src/pages/en/token-api/tvm-dexs/pools.mdx b/website/src/pages/en/token-api/tvm-dexs/pools.mdx deleted file mode 100644 index 8a1a641c4552..000000000000 --- a/website/src/pages/en/token-api/tvm-dexs/pools.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Liquidity Pools -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmPools ---- - -Returns DEX pool metadata including tokens, fees and protocol. diff --git a/website/src/pages/en/token-api/tvm-dexs/swaps.mdx b/website/src/pages/en/token-api/tvm-dexs/swaps.mdx deleted file mode 100644 index 645d77d5a22c..000000000000 --- a/website/src/pages/en/token-api/tvm-dexs/swaps.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Swap Events -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmSwaps ---- - -Returns DEX swap transactions from Tron protocols with token amounts and prices. diff --git a/website/src/pages/en/token-api/tvm-tokens-native/_meta.js b/website/src/pages/en/token-api/tvm-tokens-native/_meta.js deleted file mode 100644 index da61d9d7b744..000000000000 --- a/website/src/pages/en/token-api/tvm-tokens-native/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - 'tokens-native': '', - 'transfers-native': '', -} diff --git a/website/src/pages/en/token-api/tvm-tokens-native/tokens-native.mdx b/website/src/pages/en/token-api/tvm-tokens-native/tokens-native.mdx deleted file mode 100644 index 0ffe966b0974..000000000000 --- a/website/src/pages/en/token-api/tvm-tokens-native/tokens-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Metadata -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmTokensNative ---- - -Provides Native metadata. diff --git a/website/src/pages/en/token-api/tvm-tokens-native/transfers-native.mdx b/website/src/pages/en/token-api/tvm-tokens-native/transfers-native.mdx deleted file mode 100644 index 9193ee0064a7..000000000000 --- a/website/src/pages/en/token-api/tvm-tokens-native/transfers-native.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Native Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmTransfersNative ---- - -Returns Native transfers with transaction and block data. diff --git a/website/src/pages/en/token-api/tvm-tokens/_meta.js b/website/src/pages/en/token-api/tvm-tokens/_meta.js deleted file mode 100644 index f873e98bea0e..000000000000 --- a/website/src/pages/en/token-api/tvm-tokens/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - tokens: '', - transfers: '', -} diff --git a/website/src/pages/en/token-api/tvm-tokens/tokens.mdx b/website/src/pages/en/token-api/tvm-tokens/tokens.mdx deleted file mode 100644 index ee8a74b3a673..000000000000 --- a/website/src/pages/en/token-api/tvm-tokens/tokens.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Token Metadata -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmTokens ---- - -Provides TVM token contract metadata. diff --git a/website/src/pages/en/token-api/tvm-tokens/transfers.mdx b/website/src/pages/en/token-api/tvm-tokens/transfers.mdx deleted file mode 100644 index 13efd5251ee7..000000000000 --- a/website/src/pages/en/token-api/tvm-tokens/transfers.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: TRC-20 Transfers -template: - type: openApi - apiId: tokenApi - operationId: getV1TvmTransfers ---- - -Returns TRC-20 transfers with transaction and block data. From 0fd01dd6c9c7fc857ffe90d9533ab0309a1e7c53 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:18:00 -0400 Subject: [PATCH 03/12] Removing Token API from About The Graph --- website/src/pages/en/about.mdx | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/website/src/pages/en/about.mdx b/website/src/pages/en/about.mdx index d4d5f313096b..d53f69a7c546 100644 --- a/website/src/pages/en/about.mdx +++ b/website/src/pages/en/about.mdx @@ -5,13 +5,12 @@ description: This page summarizes the core concepts and basics of The Graph Netw ## What is The Graph? -The Graph is a decentralized protocol for indexing and querying blockchain data across [80+ networks](/supported-networks/). +The Graph is a decentralized protocol for indexing and querying blockchain data across [60+ networks](/supported-networks/). Its data services include: - [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. - [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. -- [Token API](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. ### Why Blockchain Data is Difficult to Query @@ -25,22 +24,16 @@ The Graph uses a combination of cutting-edge research, core dev expertise, and i Find the perfect data service for you: -### 1. Custom Real-Time Data Streams - -**Use Case:** High-frequency trading, live analytics. - -- [Build Substreams](/substreams/introduction/) -- [Browse Community Substreams](https://substreams.dev/) - -### 2. Instant Token Data - -**Use Case:** Wallet balances, liquidity pools, transfer events. - -- [Start with Token API](/token-api/quick-start/) - -### 3. Flexible Historical Queries +### 1. Custom APIs for web3 Developers **Use Case:** Dapp frontends, custom analytics. - [Explore Subgraphs](https://thegraph.com/explorer) - [Build Your Subgraph](/subgraphs/quick-start) + +### 2. Real-Time & Historical Data Streams + +**Use Case:** High-frequency trading, live analytics. + +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) From ab1ac934e175aa3f129a11b7208afbc9135dc552 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:22:26 -0400 Subject: [PATCH 04/12] Removing Hypergraph from The Graph's Docs --- website/src/pages/en/hypergraph/_meta.js | 4 - website/src/pages/en/hypergraph/faq.mdx | 76 -------------- website/src/pages/en/hypergraph/overview.mdx | 100 ------------------- 3 files changed, 180 deletions(-) delete mode 100644 website/src/pages/en/hypergraph/_meta.js delete mode 100644 website/src/pages/en/hypergraph/faq.mdx delete mode 100644 website/src/pages/en/hypergraph/overview.mdx diff --git a/website/src/pages/en/hypergraph/_meta.js b/website/src/pages/en/hypergraph/_meta.js deleted file mode 100644 index 3db8b76c3175..000000000000 --- a/website/src/pages/en/hypergraph/_meta.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - overview: '', - faq: '', -} diff --git a/website/src/pages/en/hypergraph/faq.mdx b/website/src/pages/en/hypergraph/faq.mdx deleted file mode 100644 index 9511f5f69d18..000000000000 --- a/website/src/pages/en/hypergraph/faq.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Hypergraph FAQ -sidebarTitle: FAQ ---- - -## General Questions - -### What is Hypergraph? - -Hypergraph is a TypeScript-first framework for building local-first apps that syncs encrypted data to a shared knowledge graph. - -### Does it replace my backend? - -Yes. Hypergraph is your data layer. You still host a thin sync server, but your business logic lives entirely on the client. - -### Who is Hypergraph for? - -Developers building collaborative, consumer-facing apps that require real-time data sync, end-to-end encryption, and public knowledge graph interoperability. Ideal for those who want to focus on client-side logic without managing backend infrastructure. - -### What problems does Hypergraph solve? - -- Real-time sync of private data across users and devices with E2EE -- No traditional backend or database required (framework handles storage and sync) -- Publishing and consuming public data in an interoperable knowledge graph -- Built-in user authentication and access control -- Enables network effects by reusing existing data across apps - -### What should developers know? - -You should be comfortable writing React applications in TypeScript and familiar with common UI patterns (e.g., inboxes). - -## Implementation Questions - -### How can I integrate Hypergraph into an existing application? - -You can add Hypergraph as a collaboration and privacy layer to an existing app, enabling real-time sync and end-to-end encryption while keeping your current stack for other functionality. - -### What are Spaces? - -Spaces are the primary grouping for users and content in Hypergraph: they represent collaboration contexts and topics. Only members of a space can access its private data. - -### How do I get started? - -Check out the [Quickstart](https://docs.hypergraph.thegraph.com/docs/quickstart). - -### Where can I find the API reference? - -Refer to the [API Reference](https://docs.hypergraph.thegraph.com/docs/api-reference/hypergraph/). - -### How do I troubleshoot common errors? - -Find solutions in the [Troubleshooting Guide](https://docs.hypergraph.thegraph.com/docs/troubleshooting). - -## Support and Community - -### Where can I find more examples or support? - -Browse our GitHub repository for sample apps and open issues. Join the community through our issue tracker and discussion forums. - -### How can I share feedback? - -Provide feedback via GitHub issues or our upcoming feedback form linked in the docs. - -### Is Hypergraph open-source? - -100%. Apache-2.0 license. Contributions are welcomed. - -## Security and Privacy - -### Can the server read my private data? - -No. All private content is encrypted client-side with a per-Space symmetric key. - -### What happens if I lose my keys? - -Today you're out of luck (similar to Signal). A social recovery scheme is on the roadmap. Follow [#51](https://github.com/graphprotocol/hypergraph/issues/51). diff --git a/website/src/pages/en/hypergraph/overview.mdx b/website/src/pages/en/hypergraph/overview.mdx deleted file mode 100644 index 35c1f3f1488b..000000000000 --- a/website/src/pages/en/hypergraph/overview.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Hypergraph -sidebarTitle: Overview ---- - -## Overview - -[Hypergraph](https://docs.hypergraph.thegraph.com/) is a TypeScript-first framework for building local-first applications that sync encrypted data to a shared knowledge graph. Instead of relying on traditional backend infrastructure, it shifts control to the client and puts data where it belongs: with the user. - -At its core, Hypergraph is powered by two innovations: - -1. Client-side architecture that keeps users in control of their data while apps remain real-time, private, and interoperable by default. -2. The [GRC-20](https://thegraph.com/blog/grc20-knowledge-graph/) standard which enables truly composable knowledge graphs. - -With Hypergraph, developers can build collaborative apps that feel seamless, secure, and user-owned while focusing purely on client-side logic. - -It offers end-to-end encryption, a GRC-20 Knowledge Graph SDK, JSON-LD storage, conflict-free sync with CRDTs, and Spaces for organizing people and data with fine-grained access. - -For more specifics check out, [key features](https://docs.hypergraph.thegraph.com/docs/key-features). - -## Core Concepts - -### Knowledge Graphs - -Unlike traditional databases that store data in rows and columns, knowledge graphs represent information as connected networks. This structure makes complex queries natural and efficient, while allowing the data model to evolve organically without schema migrations. - -#### Example Use Case - -In a social app, a traditional database might require complex joins to answer a query like: `"Posts by photographers that my friends liked"` - -In a knowledge graph, relationships are the data: - -``` -Teresa --> profession --> Photography -Teresa --> owns --> Fujifilm X100 -Teresa --> posted --> Street Photo -Alex --> friend_of --> Teresa -Alex --> liked --> Street Photo -``` - -This model makes queries natural and efficient, while allowing the schema to evolve organically. - -### The Hypergraph Advantage - -- **Private by default**: Personal data is encrypted on the device. -- **Peer-to-peer**: No central server required. Collaboration is direct. -- **Real-time**: Changes synchronize instantly across devices. -- **Interoperable**: Data is usable across applications that support the protocol. - -Hypergraph serializes all data using the [GRC-20 standard](https://thegraph.com/blog/grc20-knowledge-graph/). Hypergraph handles serialization, encryption, and networking behind the scenes, while developers interact with simple SDK calls. - -### Spaces - -A Space is the fundamental unit of collaboration. It groups people and data, similar to a folder, Slack channel, or shared document. Each Space maps one-to-one with an Automerge document, enabling conflict-free offline editing. - -Membership and roles are tracked in an append-only Space Event Log, supporting common operations like creating a Space, updating roles, inviting members, or removing members. - -### Identities - -Each user controls a cryptographic **Identity** used for authentication, encryption, and signing events. Identities are stored locally, enabling multi-device logins without a backend. - -### Inboxes - -An Inbox is a lightweight queue for delivering updates or direct messages. - -- **Account Inboxes**: Belong to a single user. -- **Space Inboxes**: Broadcast messages to all members. - -Inboxes can be public or private, with authentication policies controlling who can send messages. - -### Events and CRDTs - -Hypergraph uses CRDTs (Conflict-Free Replicated Data Types) to manage updates across peers. - -- Updates are signed, encrypted, and broadcast to peers. -- Conflicts resolve automatically without manual intervention. -- Large logs are periodically compacted into snapshots for efficiency. - -### Security Model - -Hypergraph is designed with security as a core principle: - -- End-to-end encryption ensures data privacy. -- Digital signatures verify the authenticity of events. -- Outdated or invalid updates are automatically rejected. -- Keys are rotated when membership changes to prevent unauthorized access. - -## Exploring Spaces - -Spaces can be browsed using [Geo Browser's Testnet](https://testnet.geobrowser.io/root) by entering a Space ID. Access is restricted by each Space's privacy rules. - -## Getting Started - -- [Quickstart Guide](https://docs.hypergraph.thegraph.com/docs/quickstart) -- [Core Concepts](https://docs.hypergraph.thegraph.com/docs/core-concepts#why-does-grc-20-exist) -- [AI Usage](https://docs.hypergraph.thegraph.com/docs/ai-usage) -- [API Reference](https://docs.hypergraph.thegraph.com/docs/api-reference/hypergraph/) -- [Troubleshooting Guide](https://docs.hypergraph.thegraph.com/docs/troubleshooting) - -For all Hypergraph documentation check out the [Hypergraph Docs](https://docs.hypergraph.thegraph.com/docs/quickstart) and the [Hypergraph GitHub Repo](https://github.com/graphprotocol/hypergraph). From e75566a14242d0f10eaa5c09c527e715f67d49a7 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:38:12 -0400 Subject: [PATCH 05/12] Updates to index.json and global.json --- nginx.conf | 134 ++++++++++++++++--------------- website/src/pages/en/global.json | 3 - website/src/pages/en/index.json | 19 +---- 3 files changed, 71 insertions(+), 85 deletions(-) diff --git a/nginx.conf b/nginx.conf index 8139c15b4d50..2b6412bb3984 100644 --- a/nginx.conf +++ b/nginx.conf @@ -180,72 +180,74 @@ http { rewrite ^/docs/en/token-api/svm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1SvmTransfers/ permanent; rewrite ^/docs/en/token-api/svm-tokens/holders/$ https://app.pinax.network/docs/api/getV1SvmHolders/ permanent; rewrite ^/docs/en/token-api/svm-tokens/balances/$ https://app.pinax.network/docs/api/getV1SvmBalances/ permanent; - rewrite ^/docs/en/token-api/svm-tokens/owner/$ https://app.pinax.network/docs/api/getV1SvmOwner permanent; - rewrite ^/docs/en/token-api/svm-tokens-native/balances-native/$ https://app.pinax.network/docs/api/getV1SvmBalancesNative permanent; - rewrite ^/docs/en/token-api/svm-tokens-native/holders-native/$ https://app.pinax.network/docs/api/getV1SvmHoldersNative permanent; - rewrite ^/docs/en/token-api/svm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1SvmTokensNative permanent; - rewrite ^/docs/en/token-api/svm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1SvmTransfersNative permanent; - rewrite ^/docs/en/token-api/svm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1SvmDexes permanent; - rewrite ^/docs/en/token-api/svm-dexs/pools/$ https://app.pinax.network/docs/api/getV1SvmPools permanent; - rewrite ^/docs/en/token-api/svm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1SvmPoolsOhlc permanent; - rewrite ^/docs/en/token-api/svm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1SvmSwaps permanent; - rewrite ^/docs/en/token-api/evm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1EvmTokens permanent; - rewrite ^/docs/en/token-api/evm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1EvmTransfers permanent; - rewrite ^/docs/en/token-api/evm-tokens/holders/$ https://app.pinax.network/docs/api/getV1EvmHolders permanent; - rewrite ^/docs/en/token-api/evm-tokens/balances/$ https://app.pinax.network/docs/api/getV1EvmBalances permanent; - rewrite ^/docs/en/token-api/evm-tokens/balances-historical/$ https://app.pinax.network/docs/api/getV1EvmBalancesHistorical permanent; - rewrite ^/docs/en/token-api/evm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1EvmTokensNative permanent; - rewrite ^/docs/en/token-api/evm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1EvmTransfersNative permanent; - rewrite ^/docs/en/token-api/evm-tokens-native/holders-native/$ https://app.pinax.network/docs/api/getV1EvmHoldersNative permanent; - rewrite ^/docs/en/token-api/evm-tokens-native/balances-native/$ https://app.pinax.network/docs/api/getV1EvmBalancesNative permanent; - rewrite ^/docs/en/token-api/evm-tokens-native/balances-historical-native/$ https://app.pinax.network/docs/api/getV1EvmBalancesHistoricalNative permanent; - rewrite ^/docs/en/token-api/evm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1EvmDexes permanent; - rewrite ^/docs/en/token-api/evm-dexs/pools/$ https://app.pinax.network/docs/api/getV1EvmPools permanent; - rewrite ^/docs/en/token-api/evm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1EvmPoolsOhlc permanent; - rewrite ^/docs/en/token-api/evm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1EvmSwaps permanent; - rewrite ^/docs/en/token-api/evm-nfts/collections/$ https://app.pinax.network/docs/api/getV1EvmNftCollections permanent; - rewrite ^/docs/en/token-api/evm-nfts/holders/$ https://app.pinax.network/docs/api/getV1EvmNftHolders permanent; - rewrite ^/docs/en/token-api/evm-nfts/items/$ https://app.pinax.network/docs/api/getV1EvmNftItems permanent; - rewrite ^/docs/en/token-api/evm-nfts/ownerships/$ https://app.pinax.network/docs/api/getV1EvmNftOwnerships permanent; - rewrite ^/docs/en/token-api/evm-nfts/sales/$ https://app.pinax.network/docs/api/getV1EvmNftSales permanent; - rewrite ^/docs/en/token-api/evm-nfts/transfers/$ https://app.pinax.network/docs/api/getV1EvmNftTransfers permanent; - rewrite ^/docs/en/token-api/tvm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1TvmTokens permanent; - rewrite ^/docs/en/token-api/tvm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1TvmTransfers permanent; - rewrite ^/docs/en/token-api/tvm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1TvmTokensNative permanent; - rewrite ^/docs/en/token-api/tvm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1TvmTransfersNative permanent; - rewrite ^/docs/en/token-api/tvm-dexs/dexes/ https://app.pinax.network/docs/api/getV1TvmDexes permanent; - rewrite ^/docs/en/token-api/tvm-dexs/pools/ https://app.pinax.network/docs/api/getV1TvmPools permanent; - rewrite ^/docs/en/token-api/tvm-dexs/pools-ohlc/ https://app.pinax.network/docs/api/getV1TvmPoolsOhlc permanent; - rewrite ^/docs/en/token-api/tvm-dexs/swaps/ https://app.pinax.network/docs/api/getV1TvmSwaps permanent; - rewrite ^/docs/en/token-api/polymarket-markets/markets/ https://app.pinax.network/docs/prediction-markets permanent; - rewrite ^/docs/en/token-api/polymarket-markets/ohlc/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsOhlc permanent; - rewrite ^/docs/en/token-api/polymarket-markets/oi/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsOi permanent; - rewrite ^/docs/en/token-api/polymarket-markets/activity/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsActivity permanent; - rewrite ^/docs/en/token-api/polymarket-markets/positions/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsPositions permanent; - rewrite ^/docs/en/token-api/polymarket-platform/platform/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketPlatform permanent; - rewrite ^/docs/en/token-api/polymarket-users/users/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketUsers permanent; - rewrite ^/docs/en/token-api/polymarket-users/positions/ https://app.pinax.network/docs/prediction-markets/getV1PolymarketUsersPositions permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/activity/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsActivity permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/dexes/ https://app.pinax.network/docs/perp-exchanges permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/liquidations-ohlc/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsLiquidationsOhlc permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/liquidations/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsLiquidations permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/markets/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarkets permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/ohlc/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsOhlc permanent; - rewrite ^/docs/en/token-api/hyperliquid-markets/oi/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsOi permanent; - rewrite ^/docs/en/token-api/hyperliquid-platform/platform/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidPlatform permanent; - rewrite ^/docs/en/token-api/hyperliquid-users/activity/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsersActivity permanent; - rewrite ^/docs/en/token-api/hyperliquid-users/positions/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsersPositions permanent; - rewrite ^/docs/en/token-api/hyperliquid-users/users/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsers permanent; - rewrite ^/docs/en/token-api/hyperliquid-vaults/depositors/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidVaultsDepositors permanent; - rewrite ^/docs/en/token-api/hyperliquid-vaults/vaults/ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidVaults permanent; - rewrite ^/docs/en/token-api/monitoring/health/ https://app.pinax.network/docs/api/getV1Health permanent; - rewrite ^/docs/en/token-api/monitoring/networks/ https://app.pinax.network/docs/api/getV1Networks permanent; - rewrite ^/docs/en/token-api/monitoring/version/ https://app.pinax.network/docs/api/getV1Version permanent; - rewrite ^/docs/en/token-api/endpoints/pricing/ https://pinax.network/pricing/api permanent; - rewrite ^/docs/en/token-api/endpoints/support/ https://app.pinax.network/endpoints permanent; - rewrite ^/docs/en/token-api/guides/gpt/ https://app.pinax.network/docs/api/ permanent; - rewrite ^/docs/en/token-api/guides/polymarket/ https://app.pinax.network/docs/api/ permanent; - rewrite ^/docs/en/token-api/faq/ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/svm-tokens/owner/$ https://app.pinax.network/docs/api/getV1SvmOwner/ permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/balances-native/$ https://app.pinax.network/docs/api/getV1SvmBalancesNative/ permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/holders-native/$ https://app.pinax.network/docs/api/getV1SvmHoldersNative/ permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1SvmTokensNative/ permanent; + rewrite ^/docs/en/token-api/svm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1SvmTransfersNative/ permanent; + rewrite ^/docs/en/token-api/svm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1SvmDexes/ permanent; + rewrite ^/docs/en/token-api/svm-dexs/pools/$ https://app.pinax.network/docs/api/getV1SvmPools/ permanent; + rewrite ^/docs/en/token-api/svm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1SvmPoolsOhlc/ permanent; + rewrite ^/docs/en/token-api/svm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1SvmSwaps/ permanent; + rewrite ^/docs/en/token-api/evm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1EvmTokens/ permanent; + rewrite ^/docs/en/token-api/evm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1EvmTransfers/ permanent; + rewrite ^/docs/en/token-api/evm-tokens/holders/$ https://app.pinax.network/docs/api/getV1EvmHolders/ permanent; + rewrite ^/docs/en/token-api/evm-tokens/balances/$ https://app.pinax.network/docs/api/getV1EvmBalances/ permanent; + rewrite ^/docs/en/token-api/evm-tokens/balances-historical/$ https://app.pinax.network/docs/api/getV1EvmBalancesHistorical/ permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1EvmTokensNative/ permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1EvmTransfersNative/ permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/holders-native/$ https://app.pinax.network/docs/api/getV1EvmHoldersNative/ permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/balances-native/$ https://app.pinax.network/docs/api/getV1EvmBalancesNative/ permanent; + rewrite ^/docs/en/token-api/evm-tokens-native/balances-historical-native/$ https://app.pinax.network/docs/api/getV1EvmBalancesHistoricalNative/ permanent; + rewrite ^/docs/en/token-api/evm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1EvmDexes/ permanent; + rewrite ^/docs/en/token-api/evm-dexs/pools/$ https://app.pinax.network/docs/api/getV1EvmPools/ permanent; + rewrite ^/docs/en/token-api/evm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1EvmPoolsOhlc/ permanent; + rewrite ^/docs/en/token-api/evm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1EvmSwaps/ permanent; + rewrite ^/docs/en/token-api/evm-nfts/collections/$ https://app.pinax.network/docs/api/getV1EvmNftCollections/ permanent; + rewrite ^/docs/en/token-api/evm-nfts/holders/$ https://app.pinax.network/docs/api/getV1EvmNftHolders/ permanent; + rewrite ^/docs/en/token-api/evm-nfts/items/$ https://app.pinax.network/docs/api/getV1EvmNftItems/ permanent; + rewrite ^/docs/en/token-api/evm-nfts/ownerships/$ https://app.pinax.network/docs/api/getV1EvmNftOwnerships/ permanent; + rewrite ^/docs/en/token-api/evm-nfts/sales/$ https://app.pinax.network/docs/api/getV1EvmNftSales/ permanent; + rewrite ^/docs/en/token-api/evm-nfts/transfers/$ https://app.pinax.network/docs/api/getV1EvmNftTransfers/ permanent; + rewrite ^/docs/en/token-api/tvm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1TvmTokens/ permanent; + rewrite ^/docs/en/token-api/tvm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1TvmTransfers/ permanent; + rewrite ^/docs/en/token-api/tvm-tokens-native/tokens-native/$ https://app.pinax.network/docs/api/getV1TvmTokensNative/ permanent; + rewrite ^/docs/en/token-api/tvm-tokens-native/transfers-native/$ https://app.pinax.network/docs/api/getV1TvmTransfersNative/ permanent; + rewrite ^/docs/en/token-api/tvm-dexs/dexes/$ https://app.pinax.network/docs/api/getV1TvmDexes/ permanent; + rewrite ^/docs/en/token-api/tvm-dexs/pools/$ https://app.pinax.network/docs/api/getV1TvmPools/ permanent; + rewrite ^/docs/en/token-api/tvm-dexs/pools-ohlc/$ https://app.pinax.network/docs/api/getV1TvmPoolsOhlc/ permanent; + rewrite ^/docs/en/token-api/tvm-dexs/swaps/$ https://app.pinax.network/docs/api/getV1TvmSwaps/ permanent; + rewrite ^/docs/en/token-api/polymarket-markets/markets/$ https://app.pinax.network/docs/prediction-markets/ permanent; + rewrite ^/docs/en/token-api/polymarket-markets/ohlc/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsOhlc/ permanent; + rewrite ^/docs/en/token-api/polymarket-markets/oi/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsOi/ permanent; + rewrite ^/docs/en/token-api/polymarket-markets/activity/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsActivity/ permanent; + rewrite ^/docs/en/token-api/polymarket-markets/positions/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketMarketsPositions/ permanent; + rewrite ^/docs/en/token-api/polymarket-platform/platform/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketPlatform/ permanent; + rewrite ^/docs/en/token-api/polymarket-users/users/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketUsers/ permanent; + rewrite ^/docs/en/token-api/polymarket-users/positions/$ https://app.pinax.network/docs/prediction-markets/getV1PolymarketUsersPositions/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/activity/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsActivity/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/dexes/$ https://app.pinax.network/docs/perp-exchanges/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/liquidations-ohlc/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsLiquidationsOhlc/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/liquidations/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsLiquidations/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/markets/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarkets/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/ohlc/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsOhlc/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-markets/oi/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidMarketsOi/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-platform/platform/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidPlatform/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-users/activity/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsersActivity/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-users/positions/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsersPositions/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-users/users/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidUsers/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-vaults/depositors/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidVaultsDepositors/ permanent; + rewrite ^/docs/en/token-api/hyperliquid-vaults/vaults/$ https://app.pinax.network/docs/perp-exchanges/getV1HyperliquidVaults/ permanent; + rewrite ^/docs/en/token-api/monitoring/health/$ https://app.pinax.network/docs/api/getV1Health/ permanent; + rewrite ^/docs/en/token-api/monitoring/networks/$ https://app.pinax.network/docs/api/getV1Networks/ permanent; + rewrite ^/docs/en/token-api/monitoring/version/$ https://app.pinax.network/docs/api/getV1Version/ permanent; + rewrite ^/docs/en/token-api/endpoints/pricing/$ https://pinax.network/pricing/api/ permanent; + rewrite ^/docs/en/token-api/endpoints/support/$ https://app.pinax.network/endpoints/ permanent; + rewrite ^/docs/en/token-api/guides/gpt/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/guides/polymarket/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/faq/$ https://app.pinax.network/docs/api/ permanent; + # Hypergraph redirects + rewrite ^/docs/en/hypergraph/$ https://app.pinax.network/docs/api/ permanent; # Temporary redirects (302) rewrite ^/docs/en/querying/graph-client/$ $scheme://$http_host/docs/en/subgraphs/querying/graph-client/README/ redirect; rewrite ^/docs/en/developing/graph-ts/$ $scheme://$http_host/docs/en/subgraphs/developing/creating/graph-ts/README/ redirect; diff --git a/website/src/pages/en/global.json b/website/src/pages/en/global.json index a0d7709da4da..4c0d06b0f4f1 100644 --- a/website/src/pages/en/global.json +++ b/website/src/pages/en/global.json @@ -5,10 +5,7 @@ "hide": "Hide navigation", "subgraphs": "Subgraphs", "substreams": "Substreams", - "sps": "Substreams-Powered Subgraphs", - "hypergraph": "Hypergraph", "ai-suite": "AI Suite", - "tokenApi": "Token API", "indexing": "Indexing", "graph-horizon": "Graph Horizon", "resources": "Resources", diff --git a/website/src/pages/en/index.json b/website/src/pages/en/index.json index 99b597dcf0ad..3a049522aaea 100644 --- a/website/src/pages/en/index.json +++ b/website/src/pages/en/index.json @@ -2,9 +2,9 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 80+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 60+ chains. The Graph's core products include Subgraphs for indexing smart contracts and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", - "cta2": "Build your first subgraph" + "cta2": "Build your first Subgraph" }, "products": { "title": "The Graph's Products", @@ -19,11 +19,6 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "tokenApi": { - "title": "Token API", - "description": "Query token data and leverage native MCP support.", - "cta": "Develop with Token API" - }, "graphNode": { "title": "Graph Node", "description": "Index blockchain data and serve it via GraphQL queries.", @@ -70,8 +65,7 @@ "id": "ID", "subgraphs": "Subgraphs", "substreams": "Substreams", - "firehose": "Firehose", - "tokenApi": "Token API" + "firehose": "Firehose" }, "tableLegend": { "subgraphs": { @@ -86,9 +80,6 @@ "basic": "Base", "full": "Extended (EVM only)" }, - "tokenApi": { - "full": "All endpoints supported" - }, "icons": { "checkmark": "Checkmark", "checkmarks": "Checkmarks" @@ -200,10 +191,6 @@ "whatIsDelegating": { "title": "What is Delegating?", "description": "This video explains key concepts to understand before delegating, a form of staking that helps secure The Graph." - }, - "howToIndexSolana": { - "title": "How to Index Solana with a Substreams-powered Subgraph", - "description": "If you're familiar with Subgraphs, discover how Substreams offer a different approach for key use cases." } }, "time": { From d14a4027d57fcc1dbec99459968c63a77822b114 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:51:41 -0400 Subject: [PATCH 06/12] Updates to HomePage.tsx --- website/src/HomePage.tsx | 41 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/website/src/HomePage.tsx b/website/src/HomePage.tsx index 1894df4dd0b0..ef88f9444af6 100644 --- a/website/src/HomePage.tsx +++ b/website/src/HomePage.tsx @@ -40,21 +40,23 @@ export default function HomePage({ supportedNetworks }: { supportedNetworks: Sup
{[ 'mainnet', - 'btc', + 'base', 'bsc', 'solana-mainnet-beta', 'avalanche', - 'stellar', - 'litecoin', 'matic', + 'hyper-evm', 'arbitrum-one', - 'sonic', 'optimism', - 'sei-mainnet', - 'starknet-mainnet', + 'unichain', + 'x-layer', + 'stellar', + 'monad', + 'tempo', 'zksync-era', + 'sonic', 'celo', - 'metis', + 'megaeth', ] .map((id) => supportedNetworks.find((network) => network.id === id)) .filter((network): network is typeof network & {} => Boolean(network)) @@ -129,19 +131,7 @@ export default function HomePage({ supportedNetworks }: { supportedNetworks: Sup iconPosition="side" />
-
- {t('index.products.tokenApi.cta')} - } - icon={ -
- -
- } - /> +
{t('index.supportedNetworks.description.base', [ - 80+ {t('index.supportedNetworks.description.networks')} + 60+ {t('index.supportedNetworks.description.networks')} , - + {t('index.supportedNetworks.description.completeThisForm')} , ])} @@ -310,13 +300,6 @@ export default function HomePage({ supportedNetworks }: { supportedNetworks: Sup slotBelowDescription={} videoThumbnailSrc={`${process.env.BASE_PATH}/img/video-whatIsDelegating.jpg`} /> - } - videoThumbnailSrc={`${process.env.BASE_PATH}/img/video-howToIndexSolana.jpg`} - />
From f50739ef1f10c7112ddb1ab661bcfb39461d7992 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 16:54:01 -0400 Subject: [PATCH 07/12] Updates to NetworksTable.tsx --- website/src/supportedNetworks/NetworksTable.tsx | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/website/src/supportedNetworks/NetworksTable.tsx b/website/src/supportedNetworks/NetworksTable.tsx index 181d795392ec..86e28778ae5b 100644 --- a/website/src/supportedNetworks/NetworksTable.tsx +++ b/website/src/supportedNetworks/NetworksTable.tsx @@ -106,13 +106,6 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) { {t('index.supportedNetworks.tableLegend.firehose.full')} -
- Token API -
- {checkmark} - {t('index.supportedNetworks.tableLegend.tokenApi.full')} -
-
@@ -170,9 +163,6 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) { {t('index.supportedNetworks.tableHeaders.firehose')} - - {t('index.supportedNetworks.tableHeaders.tokenApi')} - {filteredNetworks.map((network) => ( - {network.tokenApiSupportLevel === 'full' ? checkmark : null} ))} From 150aad3bb942fb901fc518071d9ea5b0150dbc64 Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Wed, 20 May 2026 17:13:53 -0400 Subject: [PATCH 08/12] Updated AI landing page, removed Token API AI docs --- nginx.conf | 10 +-- .../src/pages/en/ai-suite/_meta-titles.json | 4 +- website/src/pages/en/ai-suite/_meta.js | 4 +- .../src/pages/en/ai-suite/ai-introduction.mdx | 62 +++++++++++++--- .../pages/en/ai-suite/token-api-mcp/_meta.js | 6 -- .../en/ai-suite/token-api-mcp/claude.mdx | 72 ------------------- .../pages/en/ai-suite/token-api-mcp/cline.mdx | 70 ------------------ .../en/ai-suite/token-api-mcp/cursor.mdx | 66 ----------------- .../ai-suite/token-api-mcp/introduction.mdx | 25 ------- .../pages/en/ai-suite/token-api-skills.mdx | 36 ---------- 10 files changed, 59 insertions(+), 296 deletions(-) delete mode 100644 website/src/pages/en/ai-suite/token-api-mcp/_meta.js delete mode 100644 website/src/pages/en/ai-suite/token-api-mcp/claude.mdx delete mode 100644 website/src/pages/en/ai-suite/token-api-mcp/cline.mdx delete mode 100644 website/src/pages/en/ai-suite/token-api-mcp/cursor.mdx delete mode 100644 website/src/pages/en/ai-suite/token-api-mcp/introduction.mdx delete mode 100644 website/src/pages/en/ai-suite/token-api-skills.mdx diff --git a/nginx.conf b/nginx.conf index 2b6412bb3984..950415ffcaa9 100644 --- a/nginx.conf +++ b/nginx.conf @@ -243,11 +243,13 @@ http { rewrite ^/docs/en/token-api/monitoring/version/$ https://app.pinax.network/docs/api/getV1Version/ permanent; rewrite ^/docs/en/token-api/endpoints/pricing/$ https://pinax.network/pricing/api/ permanent; rewrite ^/docs/en/token-api/endpoints/support/$ https://app.pinax.network/endpoints/ permanent; - rewrite ^/docs/en/token-api/guides/gpt/$ https://app.pinax.network/docs/api/ permanent; - rewrite ^/docs/en/token-api/guides/polymarket/$ https://app.pinax.network/docs/api/ permanent; - rewrite ^/docs/en/token-api/faq/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/guides/gpt/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/guides/polymarket/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/faq/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/ai-suite/token-api-mcp/$ https://app.pinax.network/docs/api/getSkillsMarkdown permanent; + rewrite ^/docs/en/ai-suite/token-api-skills/$ https://app.pinax.network/docs/api/getSkillsMarkdown permanent; # Hypergraph redirects - rewrite ^/docs/en/hypergraph/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/hypergraph/$ https://github.com/graphprotocol/hypergraph permanent; # Temporary redirects (302) rewrite ^/docs/en/querying/graph-client/$ $scheme://$http_host/docs/en/subgraphs/querying/graph-client/README/ redirect; rewrite ^/docs/en/developing/graph-ts/$ $scheme://$http_host/docs/en/subgraphs/developing/creating/graph-ts/README/ redirect; diff --git a/website/src/pages/en/ai-suite/_meta-titles.json b/website/src/pages/en/ai-suite/_meta-titles.json index 2d9646e18dfd..23d8986b860b 100644 --- a/website/src/pages/en/ai-suite/_meta-titles.json +++ b/website/src/pages/en/ai-suite/_meta-titles.json @@ -3,7 +3,5 @@ "subgraph-mcp": "Subgraph MCP", "subgraph-skills": "Subgraph Skills", "substreams-mcp": "Substreams MCP", - "substreams-skills": "Substreams Skills", - "token-api-mcp": "Token API MCP", - "token-api-skills": "Token API Skills" + "substreams-skills": "Substreams Skills" } diff --git a/website/src/pages/en/ai-suite/_meta.js b/website/src/pages/en/ai-suite/_meta.js index 22e7264a28f6..354a3eea3dea 100644 --- a/website/src/pages/en/ai-suite/_meta.js +++ b/website/src/pages/en/ai-suite/_meta.js @@ -5,7 +5,5 @@ export default { 'subgraph-mcp': titles['subgraph-mcp'], 'subgraph-skills': titles['subgraph-skills'], 'substreams-mcp': titles['substreams-mcp'], - 'substreams-skills': titles['substreams-skills'], - 'token-api-mcp': titles['token-api-mcp'], - 'token-api-skills': titles['token-api-skills'], + 'substreams-skills': titles['substreams-skills'] } diff --git a/website/src/pages/en/ai-suite/ai-introduction.mdx b/website/src/pages/en/ai-suite/ai-introduction.mdx index 413a4ecf96f6..ec71acd7c6a9 100644 --- a/website/src/pages/en/ai-suite/ai-introduction.mdx +++ b/website/src/pages/en/ai-suite/ai-introduction.mdx @@ -1,37 +1,77 @@ --- title: The Graph's AI +description: Build with speed and scale faster with The Graph's MCPs and skills. --- -Build with speed and scale faster with The Graph's AI. - ## Using AI on The Graph -Instead of relying on static datasets or centralized APIs, you can now use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) and [Token API MCP](/ai-suite/token-api-mcp/introduction/). +Instead of relying on static datasets or centralized APIs, you can now use our AI-native tooling via the [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), [Substreams MCP](/ai-suite/substreams-mcp/search/), and agent skills for both Subgraphs and Substreams. ### Why Use Onchain Data with AI? Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. -- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. - ## AI for Developers +You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + ### Enable Natural Language Access to Onchain Data [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. +Agent Skills extend AI coding assistants like Claude Code and Cursor with deep, specialized knowledge of The Graph's protocols. This covers development patterns, best practices, and debugging techniques out of the box. + ### Subgraph MCP The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. -### Token API MCP - -The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. - -#### Benefits of Using Subgraph and Token API MCPs +#### Benefits of Using Subgraph MCP - Query Subgraphs and token data using natural language - Access GraphQL schemas and token metadata without manual queries - Find Subgraphs by keyword or contract and check 30-day usage - Retrieve real-time data from The Graph and onchain token sources -- Get wallet balances, transfer history, and top token holders + +### Substreams MCP + +The [Substreams MCP](/ai-suite/substreams-mcp/search/) server lets AI agents search, inspect, and analyze Substreams packages — from registry discovery to sink deployment. It supports dual transport for local clients and SSE/HTTP for remote agents. + +#### Tools + +| Tool | Description | +|---|---| +| `search_substreams` | Search the substreams.dev package registry by keyword, network, or sort order | +| `inspect_package` | Inspect a `.spkg` file to see its full module graph, protobuf types, and metadata | +| `list_package_modules` | Lightweight alternative to `inspect_package` — returns module names, types, and inputs/outputs | +| `get_sink_config` | Analyze a package's sink configuration and generate ready-to-run CLI commands | + +#### Benefits of Using Substreams MCP + +- Discover Substreams packages across any supported chain without leaving your AI assistant +- Inspect module graphs and protobuf schemas using natural language +- Generate deployment CLI commands automatically from sink configurations + +### Agent Skills for Subgraphs + +[Subgraph Skills](/ai-suite/subgraph-skills/) is a collection of AI agent skills that provide expert knowledge for developing, testing, and deploying Subgraphs. Skills are available as Claude Code plugins or OpenClaw skills. + +#### Available Skills + +| Skill | What It Covers | +|---|---| +| **Subgraph Development** | Schema design, manifest configuration, AssemblyScript handlers, contract bindings, Subgraph Composition, and common patterns (ERC20, DEX, NFT, Lending, etc.) | +| **Subgraph Optimization** | Pruning, `@derivedFrom`, immutable entities, avoiding `eth_calls`, timeseries, aggregations, and grafting | +| **Subgraph Testing** | Matchstick unit testing, the Subgraph Linter, mock events, entity assertions, and CI/CD integration | + +### Agent Skills for Substreams + +[Substreams Skills](/ai-suite/substreams-skills/) enhance AI coding assistants with specialized Substreams expertise. Install once and your assistant automatically applies Substreams best practices when working on relevant projects. + +#### Available Skills + +| Skill | What It Covers | +|---|---| +| **`substreams-dev`** | Manifest configuration, Rust module types (map, store, index), protobuf schema design, performance optimization, and debugging | +| **`substreams-sql`** | CDC database sinks, relational mappings, PostgreSQL and ClickHouse patterns, and blockchain data modeling | +| **`substreams-testing`** | Unit, integration, and performance testing; FireCore tooling; and CI/CD pipelines | + diff --git a/website/src/pages/en/ai-suite/token-api-mcp/_meta.js b/website/src/pages/en/ai-suite/token-api-mcp/_meta.js deleted file mode 100644 index 6f527b4e53e4..000000000000 --- a/website/src/pages/en/ai-suite/token-api-mcp/_meta.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - introduction: '', - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/en/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/en/ai-suite/token-api-mcp/claude.mdx deleted file mode 100644 index 992f84e0d0c4..000000000000 --- a/website/src/pages/en/ai-suite/token-api-mcp/claude.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Prerequisites - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -## Configuration - -Create or edit your `claude_desktop_config.json` file. - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -**REST-based MCP** - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--remote-url", "https://token-api.mcp.thegraph.com/"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -> [!NOTE] The previous `--sse-url` option is deprecated, use `--remote-url`. - -## Troubleshooting - -To enable logs for troubleshooting the MCP, add the option `"--verbose", "true"` under `"args"`. - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--remote-url", "https://token-api.mcp.thegraph.com/", "--verbose", "true"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -Logs are available under `logs/mcp.log` and `logs/mcp-server-token-api.log` inside the folder of your Claude configuration file. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` in the command line interface to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key. Otherwise, look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/en/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/en/ai-suite/token-api-mcp/cline.mdx deleted file mode 100644 index 04685c4fbc2a..000000000000 --- a/website/src/pages/en/ai-suite/token-api-mcp/cline.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Prerequisites - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## Configuration - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -**REST-based MCP** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--remote-url", "https://token-api.mcp.thegraph.com/"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -> [!NOTE] The previous `--sse-url` option is deprecated, use `--remote-url`. - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--remote-url", "https://token-api.mcp.thegraph.com/", "--verbose", "true"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/en/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/en/ai-suite/token-api-mcp/cursor.mdx deleted file mode 100644 index 7ac0125575b3..000000000000 --- a/website/src/pages/en/ai-suite/token-api-mcp/cursor.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## Configuration - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -**REST-based MCP** - -```json label="mcp.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--remote-url", "https://token-api.mcp.thegraph.com/"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -```json label="mcp.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--remote-url", "https://token-api.mcp.thegraph.com/", "--verbose", "true"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/en/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/en/ai-suite/token-api-mcp/introduction.mdx deleted file mode 100644 index adade5109e72..000000000000 --- a/website/src/pages/en/ai-suite/token-api-mcp/introduction.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Token API MCP Introduction -sidebarTitle: 'Introduction' ---- - -Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). - -This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query blockchain data using natural language requests. - -There is one MCP option available: - -- A REST-based MCP, the default, that communicates with the Token API. - -The REST-based MCP simply exposes the API endpoints to your LLM based on the OpenAPI specification (available at https://token-api.thegraph.com/openapi). It is the _recommended way_ to set up an LLM with Token API as the set of tools it offers is straightforward to use for any language model. Additionnaly, it automatically stays up-to-date with new Token API releases so you don't miss any new features! - -## What You Can Do - -- Retrieve token metadata including name, symbol, decimals, total supply, and contract address -- Get token balances for any wallet address holding a supported ERC-20 token -- Fetch token transfer activity including sender, receiver, amount, and timestamp -- Identify top holders and analyze token distribution -- Ask natural language questions about token data without writing smart contract calls -- Access historical transfer data to analyze token movement over time - -The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), [Cursor](/ai-suite/token-api-mcp/cursor/) and any other client with MCP integration a direct, conversational access to onchain token data. diff --git a/website/src/pages/en/ai-suite/token-api-skills.mdx b/website/src/pages/en/ai-suite/token-api-skills.mdx deleted file mode 100644 index cfdf825a533d..000000000000 --- a/website/src/pages/en/ai-suite/token-api-skills.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Agent Skills for Token API -sidebarTitle: Token API Skills ---- - -## Quick Setup - -1. Create the skill directory and download the file: - -```bash -mkdir -p ~/.claude/skills/token-api -curl -o ~/.claude/skills/token-api/SKILL.md https://token-api.thegraph.com/skills.md -``` - -2. Verify it works by typing `/token-api` in Claude Code. - -That's it. - -## Where Skills Live - -| Location | Path | Scope | -| -------- | ---------------------------------- | -------------------- | -| Personal | `~/.claude/skills//SKILL.md` | All your projects | -| Project | `.claude/skills//SKILL.md` | Current project only | - -For project-scoped usage (committed to Git so teammates get it too), use `.claude/skills/` in your repository. - -## How It Works - -- Claude Code auto-discovers `SKILL.md` files in `.claude/skills/` directories. -- Skills are invoked with `/skill-name` (e.g., `/token-api`). -- Skills can also be triggered automatically by Claude when relevant to your request. - -## Keeping It Updated - -If the remote file changes, re-run the `curl` command to fetch the latest version. You could also script this if needed. From 0660ca3cd63cc972b57e7c9603fa676e71eaddaa Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Tue, 26 May 2026 15:30:03 -0400 Subject: [PATCH 09/12] Additional Token API docs updates --- nginx.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nginx.conf b/nginx.conf index 950415ffcaa9..c246cbf40efe 100644 --- a/nginx.conf +++ b/nginx.conf @@ -243,9 +243,9 @@ http { rewrite ^/docs/en/token-api/monitoring/version/$ https://app.pinax.network/docs/api/getV1Version/ permanent; rewrite ^/docs/en/token-api/endpoints/pricing/$ https://pinax.network/pricing/api/ permanent; rewrite ^/docs/en/token-api/endpoints/support/$ https://app.pinax.network/endpoints/ permanent; - rewrite ^/docs/en/token-api/guides/gpt/$ https://app.pinax.network/docs/api/ permanent; - rewrite ^/docs/en/token-api/guides/polymarket/$ https://app.pinax.network/docs/api/ permanent; - rewrite ^/docs/en/token-api/faq/$ https://app.pinax.network/docs/api/ permanent; + rewrite ^/docs/en/token-api/guides/gpt/$ https://app.pinax.network/docs/guides/custom-gpt permanent; + rewrite ^/docs/en/token-api/guides/polymarket/$ https://app.pinax.network/docs/guides/prediction-markets permanent; + rewrite ^/docs/en/token-api/faq/$ https://app.pinax.network/docs/guides/token-api permanent; rewrite ^/docs/en/ai-suite/token-api-mcp/$ https://app.pinax.network/docs/api/getSkillsMarkdown permanent; rewrite ^/docs/en/ai-suite/token-api-skills/$ https://app.pinax.network/docs/api/getSkillsMarkdown permanent; # Hypergraph redirects From 64895ebd47133abe6c902e70ff54242177143f0e Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Tue, 26 May 2026 15:42:23 -0400 Subject: [PATCH 10/12] Additional Token API docs updates - again --- nginx.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nginx.conf b/nginx.conf index c246cbf40efe..0f483c8f1a41 100644 --- a/nginx.conf +++ b/nginx.conf @@ -251,8 +251,8 @@ http { # Hypergraph redirects rewrite ^/docs/en/hypergraph/$ https://github.com/graphprotocol/hypergraph permanent; # Temporary redirects (302) - rewrite ^/docs/en/querying/graph-client/$ $scheme://$http_host/docs/en/subgraphs/querying/graph-client/README/ redirect; - rewrite ^/docs/en/developing/graph-ts/$ $scheme://$http_host/docs/en/subgraphs/developing/creating/graph-ts/README/ redirect; + rewrite ^/docs/en/querying/graph-client/$ $scheme://$http_host/docs/en/subgraphs/querying/graph-client/README/ redirect; + rewrite ^/docs/en/developing/graph-ts/$ $scheme://$http_host/docs/en/subgraphs/developing/creating/graph-ts/README/ redirect; location / { try_files $uri $uri.html $uri/index.html =404; From 808915872907e8d0e1e15fa434dee61862db4e0c Mon Sep 17 00:00:00 2001 From: Brandon Kramer Date: Tue, 26 May 2026 15:43:12 -0400 Subject: [PATCH 11/12] Ran Prettier --- website/src/pages/en/ai-suite/_meta.js | 2 +- website/src/pages/en/ai-suite/ai-introduction.mdx | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/website/src/pages/en/ai-suite/_meta.js b/website/src/pages/en/ai-suite/_meta.js index 354a3eea3dea..8f3eb76af72b 100644 --- a/website/src/pages/en/ai-suite/_meta.js +++ b/website/src/pages/en/ai-suite/_meta.js @@ -5,5 +5,5 @@ export default { 'subgraph-mcp': titles['subgraph-mcp'], 'subgraph-skills': titles['subgraph-skills'], 'substreams-mcp': titles['substreams-mcp'], - 'substreams-skills': titles['substreams-skills'] + 'substreams-skills': titles['substreams-skills'], } diff --git a/website/src/pages/en/ai-suite/ai-introduction.mdx b/website/src/pages/en/ai-suite/ai-introduction.mdx index ec71acd7c6a9..414dd44db129 100644 --- a/website/src/pages/en/ai-suite/ai-introduction.mdx +++ b/website/src/pages/en/ai-suite/ai-introduction.mdx @@ -39,7 +39,7 @@ The [Substreams MCP](/ai-suite/substreams-mcp/search/) server lets AI agents sea #### Tools | Tool | Description | -|---|---| +| --- | --- | | `search_substreams` | Search the substreams.dev package registry by keyword, network, or sort order | | `inspect_package` | Inspect a `.spkg` file to see its full module graph, protobuf types, and metadata | | `list_package_modules` | Lightweight alternative to `inspect_package` — returns module names, types, and inputs/outputs | @@ -58,7 +58,7 @@ The [Substreams MCP](/ai-suite/substreams-mcp/search/) server lets AI agents sea #### Available Skills | Skill | What It Covers | -|---|---| +| --- | --- | | **Subgraph Development** | Schema design, manifest configuration, AssemblyScript handlers, contract bindings, Subgraph Composition, and common patterns (ERC20, DEX, NFT, Lending, etc.) | | **Subgraph Optimization** | Pruning, `@derivedFrom`, immutable entities, avoiding `eth_calls`, timeseries, aggregations, and grafting | | **Subgraph Testing** | Matchstick unit testing, the Subgraph Linter, mock events, entity assertions, and CI/CD integration | @@ -70,8 +70,7 @@ The [Substreams MCP](/ai-suite/substreams-mcp/search/) server lets AI agents sea #### Available Skills | Skill | What It Covers | -|---|---| +| --- | --- | | **`substreams-dev`** | Manifest configuration, Rust module types (map, store, index), protobuf schema design, performance optimization, and debugging | | **`substreams-sql`** | CDC database sinks, relational mappings, PostgreSQL and ClickHouse patterns, and blockchain data modeling | | **`substreams-testing`** | Unit, integration, and performance testing; FireCore tooling; and CI/CD pipelines | - From 2847b8731f29ee273babd75c292fbb15083009e7 Mon Sep 17 00:00:00 2001 From: benface Date: Tue, 26 May 2026 22:01:29 -0400 Subject: [PATCH 12/12] Remove more outdated references + fix build --- nginx.conf | 11 +- website/next.config.js | 20 +- website/package.json | 2 +- website/route-lockfile.txt | 90 -- website/src/HomePage.tsx | 10 +- website/src/layout/Layout.tsx | 8 - website/src/openApi/tokenApi.json | 1101 ++++++++++++++--- website/src/pages/en/index.json | 4 - .../supportedNetworks/NetworkDetailsPage.tsx | 18 +- .../src/supportedNetworks/ResourceCards.tsx | 90 +- website/src/supportedNetworks/utils.ts | 15 +- 11 files changed, 931 insertions(+), 438 deletions(-) diff --git a/nginx.conf b/nginx.conf index 0f483c8f1a41..be4375d48a44 100644 --- a/nginx.conf +++ b/nginx.conf @@ -168,13 +168,8 @@ http { rewrite ^/docs/en/supported-networks/near/$ $scheme://$http_host/docs/en/subgraphs/cookbook/near/ permanent; rewrite ^/docs/en/tap/$ $scheme://$http_host/docs/en/indexing/tap/ permanent; rewrite ^/docs/en/tokenomics/$ $scheme://$http_host/docs/en/resources/tokenomics/ permanent; - rewrite ^/docs/en/token-api/$ $scheme://$http_host/docs/en/token-api/quick-start/ permanent; - rewrite ^/docs/en/token-api/mcp/cline/$ $scheme://$http_host/docs/en/ai-suite/token-api-mcp/ permanent; - rewrite ^/docs/en/token-api/mcp/cline/$ $scheme://$http_host/docs/en/ai-suite/token-api-mcp/ permanent; - rewrite ^/docs/en/token-api/mcp/cline/$ $scheme://$http_host/docs/en/ai-suite/token-api-mcp/ permanent; - rewrite ^/docs/en/token-api/endpoint-pricing/$ $scheme://$http_host/docs/en/token-api/endpoints/pricing/ permanent; - rewrite ^/docs/en/ai-suite/token-api-skills/quick-setup$ $scheme://$http_host/docs/en/ai-suite/token-api-skills/ permanent; - # TOKEN API REDIRECTS + + # Token API redirects rewrite ^/docs/en/token-api/quick-start/$ https://app.pinax.network/docs/api/ permanent; rewrite ^/docs/en/token-api/svm-tokens/tokens/$ https://app.pinax.network/docs/api/getV1SvmTokens/ permanent; rewrite ^/docs/en/token-api/svm-tokens/transfers/$ https://app.pinax.network/docs/api/getV1SvmTransfers/ permanent; @@ -248,8 +243,10 @@ http { rewrite ^/docs/en/token-api/faq/$ https://app.pinax.network/docs/guides/token-api permanent; rewrite ^/docs/en/ai-suite/token-api-mcp/$ https://app.pinax.network/docs/api/getSkillsMarkdown permanent; rewrite ^/docs/en/ai-suite/token-api-skills/$ https://app.pinax.network/docs/api/getSkillsMarkdown permanent; + # Hypergraph redirects rewrite ^/docs/en/hypergraph/$ https://github.com/graphprotocol/hypergraph permanent; + # Temporary redirects (302) rewrite ^/docs/en/querying/graph-client/$ $scheme://$http_host/docs/en/subgraphs/querying/graph-client/README/ redirect; rewrite ^/docs/en/developing/graph-ts/$ $scheme://$http_host/docs/en/subgraphs/developing/creating/graph-ts/README/ redirect; diff --git a/website/next.config.js b/website/next.config.js index 8c295caf4440..4b77ba1d0a6f 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -67,39 +67,25 @@ const withNextra = nextra({ '---3': { type: 'separator', }, - 'token-api': { - type: 'children', - title: t('global.navigation.tokenApi'), - }, - '---4': { - type: 'separator', - }, - hypergraph: { - type: 'children', - title: t('global.navigation.hypergraph'), - }, - '---5': { - type: 'separator', - }, 'ai-suite': { type: 'children', title: t('global.navigation.ai-suite'), }, - '---6': { + '---4': { type: 'separator', }, indexing: { type: 'children', title: t('global.navigation.indexing'), }, - '---7': { + '---5': { type: 'separator', }, 'graph-horizon': { type: 'children', title: t('global.navigation.graph-horizon'), }, - '---8': { + '---6': { type: 'separator', }, resources: { diff --git a/website/package.json b/website/package.json index c3ffe4651f77..4bef115036d8 100644 --- a/website/package.json +++ b/website/package.json @@ -8,7 +8,7 @@ "predev": "tsup ./src/i18n.ts ./src/mdxPlugins/*.ts --format esm", "build": "rm -rf .next && rm -rf out && next build", "prebuild": "pnpm predev", - "prebuild:ci": "pnpm fetch-remote-docs && pnpm fetch-api-reference && pnpm fix-pages-structure", + "prebuild:ci": "pnpm fetch-remote-docs && pnpm fix-pages-structure", "postbuild": "next-sitemap --config next-sitemap.config.mjs && node scripts/sitemap-ci.js", "typecheck": "tsc", "fetch-remote-docs": "tsx scripts/fetch-remote-docs.ts", diff --git a/website/route-lockfile.txt b/website/route-lockfile.txt index f7b3617ee5a3..22d5fd97619d 100644 --- a/website/route-lockfile.txt +++ b/website/route-lockfile.txt @@ -10,11 +10,6 @@ /en/ai-suite/subgraph-skills/ /en/ai-suite/substreams-mcp/search/ /en/ai-suite/substreams-skills/ -/en/ai-suite/token-api-mcp/claude/ -/en/ai-suite/token-api-mcp/cline/ -/en/ai-suite/token-api-mcp/cursor/ -/en/ai-suite/token-api-mcp/introduction/ -/en/ai-suite/token-api-skills/ /en/archived/arbitrum/arbitrum-faq/ /en/archived/arbitrum/l2-transfer-tools-faq/ /en/archived/arbitrum/l2-transfer-tools-guide/ @@ -23,8 +18,6 @@ /en/graph-horizon/migration-guide/ /en/graph-horizon/overview/ /en/graph-horizon/what-changes/ -/en/hypergraph/faq/ -/en/hypergraph/overview/ /en/indexing/chain-integration-overview/ /en/indexing/new-chain-integration/ /en/indexing/overview/ @@ -106,19 +99,13 @@ /en/substreams/publishing/ /en/substreams/quick-start/ /en/supported-networks/ -/en/supported-networks/apechain-curtis/ -/en/supported-networks/apechain/ /en/supported-networks/arbitrum-nova/ /en/supported-networks/arbitrum-one/ /en/supported-networks/arbitrum-sepolia/ /en/supported-networks/arc-testnet/ -/en/supported-networks/autonomys-chronos/ -/en/supported-networks/autonomys/ /en/supported-networks/avalanche/ /en/supported-networks/base-sepolia/ /en/supported-networks/base/ -/en/supported-networks/berachain-bepolia/ -/en/supported-networks/berachain/ /en/supported-networks/blast-mainnet/ /en/supported-networks/bnb-op/ /en/supported-networks/bnb-svm/ @@ -133,7 +120,6 @@ /en/supported-networks/chapel/ /en/supported-networks/chiliz-testnet/ /en/supported-networks/chiliz/ -/en/supported-networks/cronos/ /en/supported-networks/eos/ /en/supported-networks/etherlink-mainnet/ /en/supported-networks/etherlink-shadownet/ @@ -152,8 +138,6 @@ /en/supported-networks/injective-evm/ /en/supported-networks/injective-mainnet/ /en/supported-networks/injective-testnet/ -/en/supported-networks/ink-sepolia/ -/en/supported-networks/ink/ /en/supported-networks/joc-testnet/ /en/supported-networks/joc/ /en/supported-networks/jungle4/ @@ -167,8 +151,6 @@ /en/supported-networks/mainnet/ /en/supported-networks/matic/ /en/supported-networks/mbase/ -/en/supported-networks/megaeth-timothy/ -/en/supported-networks/megaeth/ /en/supported-networks/monad-testnet/ /en/supported-networks/monad/ /en/supported-networks/moonbeam/ @@ -202,7 +184,6 @@ /en/supported-networks/stable/ /en/supported-networks/starknet-mainnet/ /en/supported-networks/starknet-testnet/ -/en/supported-networks/status-sepolia/ /en/supported-networks/stellar-testnet/ /en/supported-networks/stellar/ /en/supported-networks/tempo-moderato/ @@ -222,74 +203,3 @@ /en/supported-networks/zksync-era-sepolia/ /en/supported-networks/zksync-era/ /en/supported-networks/zora/ -/en/token-api/endpoints/pricing/ -/en/token-api/endpoints/support/ -/en/token-api/evm-dexs/dexes/ -/en/token-api/evm-dexs/pools-ohlc/ -/en/token-api/evm-dexs/pools/ -/en/token-api/evm-dexs/swaps/ -/en/token-api/evm-nfts/collections/ -/en/token-api/evm-nfts/holders/ -/en/token-api/evm-nfts/items/ -/en/token-api/evm-nfts/ownerships/ -/en/token-api/evm-nfts/sales/ -/en/token-api/evm-nfts/transfers/ -/en/token-api/evm-tokens-native/balances-historical-native/ -/en/token-api/evm-tokens-native/balances-native/ -/en/token-api/evm-tokens-native/holders-native/ -/en/token-api/evm-tokens-native/tokens-native/ -/en/token-api/evm-tokens-native/transfers-native/ -/en/token-api/evm-tokens/balances-historical/ -/en/token-api/evm-tokens/balances/ -/en/token-api/evm-tokens/holders/ -/en/token-api/evm-tokens/tokens/ -/en/token-api/evm-tokens/transfers/ -/en/token-api/faq/ -/en/token-api/guides/gpt/ -/en/token-api/guides/polymarket/ -/en/token-api/hyperliquid-markets/activity/ -/en/token-api/hyperliquid-markets/dexes/ -/en/token-api/hyperliquid-markets/liquidations-ohlc/ -/en/token-api/hyperliquid-markets/liquidations/ -/en/token-api/hyperliquid-markets/markets/ -/en/token-api/hyperliquid-markets/ohlc/ -/en/token-api/hyperliquid-markets/oi/ -/en/token-api/hyperliquid-platform/platform/ -/en/token-api/hyperliquid-users/activity/ -/en/token-api/hyperliquid-users/positions/ -/en/token-api/hyperliquid-users/users/ -/en/token-api/hyperliquid-vaults/depositors/ -/en/token-api/hyperliquid-vaults/vaults/ -/en/token-api/monitoring/health/ -/en/token-api/monitoring/networks/ -/en/token-api/monitoring/version/ -/en/token-api/polymarket-markets/activity/ -/en/token-api/polymarket-markets/markets/ -/en/token-api/polymarket-markets/ohlc/ -/en/token-api/polymarket-markets/oi/ -/en/token-api/polymarket-markets/positions/ -/en/token-api/polymarket-platform/platform/ -/en/token-api/polymarket-users/positions/ -/en/token-api/polymarket-users/users/ -/en/token-api/quick-start/ -/en/token-api/svm-dexs/dexes/ -/en/token-api/svm-dexs/pools-ohlc/ -/en/token-api/svm-dexs/pools/ -/en/token-api/svm-dexs/swaps/ -/en/token-api/svm-tokens-native/balances-native/ -/en/token-api/svm-tokens-native/holders-native/ -/en/token-api/svm-tokens-native/tokens-native/ -/en/token-api/svm-tokens-native/transfers-native/ -/en/token-api/svm-tokens/balances/ -/en/token-api/svm-tokens/holders/ -/en/token-api/svm-tokens/owner/ -/en/token-api/svm-tokens/tokens/ -/en/token-api/svm-tokens/transfers/ -/en/token-api/tvm-dexs/dexes/ -/en/token-api/tvm-dexs/pools-ohlc/ -/en/token-api/tvm-dexs/pools/ -/en/token-api/tvm-dexs/swaps/ -/en/token-api/tvm-tokens-native/tokens-native/ -/en/token-api/tvm-tokens-native/transfers-native/ -/en/token-api/tvm-tokens/tokens/ -/en/token-api/tvm-tokens/transfers/ diff --git a/website/src/HomePage.tsx b/website/src/HomePage.tsx index ef88f9444af6..3ded0b7d291b 100644 --- a/website/src/HomePage.tsx +++ b/website/src/HomePage.tsx @@ -1,15 +1,7 @@ import { NetworkType } from '@pinax/graph-networks-registry' import { ButtonOrLink, ExperimentalLink, Tooltip } from '@edgeandnode/gds' -import { - APIToken, - Firehose, - GraphExplorer, - GraphNode, - SocialYouTube, - Subgraph, - Substreams, -} from '@edgeandnode/gds/icons' +import { Firehose, GraphExplorer, GraphNode, SocialYouTube, Subgraph, Substreams } from '@edgeandnode/gds/icons' import { NetworkIcon } from '@edgeandnode/go' import { Card, Heading, TimeIcon } from '@/components' diff --git a/website/src/layout/Layout.tsx b/website/src/layout/Layout.tsx index 3b8c1e91d1d0..93bf4cbf36ea 100644 --- a/website/src/layout/Layout.tsx +++ b/website/src/layout/Layout.tsx @@ -31,12 +31,10 @@ import { useIsomorphicLayoutEffect, } from '@edgeandnode/gds' import { - APIToken, BookOpenText, Files, Horizon, House, - Hypergraph, MagnifyingGlass, RoleIndexer, SidebarSimple, @@ -194,12 +192,6 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps } - if (routeWithoutLocale === '/token-api' || routeWithoutLocale.startsWith('/token-api/')) { - return - } - if (routeWithoutLocale === '/hypergraph' || routeWithoutLocale.startsWith('/hypergraph/')) { - return - } if (routeWithoutLocale === '/ai-suite' || routeWithoutLocale.startsWith('/ai-suite/')) { return } diff --git a/website/src/openApi/tokenApi.json b/website/src/openApi/tokenApi.json index d90cc2f52740..c867fa06cc20 100644 --- a/website/src/openApi/tokenApi.json +++ b/website/src/openApi/tokenApi.json @@ -1,14 +1,14 @@ { "openapi": "3.1.0", "info": { - "title": "Token API", - "description": "Power your apps & AI agents with real-time token data.", - "version": "3.17.0+cb0e400 (2026-05-07)" + "title": "Pinax API", + "description": "Power your apps and AI agents with real-time Token API, prediction market, and perp exchange data.", + "version": "3.19.0+65ad8c6 (2026-05-26)" }, "servers": [ { - "url": "https://token-api.thegraph.com/", - "description": "Token API - Remote" + "url": "https://api.pinax.network/", + "description": "Pinax API - Remote" } ], "tags": [ @@ -208,6 +208,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "decimals": { @@ -1113,6 +1114,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "decimals": { @@ -1810,6 +1812,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "decimals": { @@ -3545,6 +3548,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "decimals": { @@ -4320,6 +4324,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "decimals": { @@ -4919,6 +4924,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "decimals": { @@ -6169,7 +6175,9 @@ "darklake", "dumpfun", "moonshot", - "pancakeswap" + "pancakeswap", + "spl_token_swap", + "okx_dex" ] }, "summary": { @@ -6912,7 +6920,9 @@ "darklake", "dumpfun", "moonshot", - "pancakeswap" + "pancakeswap", + "spl_token_swap", + "okx_dex" ] }, "description": "Protocol name" @@ -7104,6 +7114,16 @@ "description": "Filter by mint address", "example": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn" }, + "input_decimals": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, "output_mint": { "type": "string", "format": "svm-address", @@ -7111,6 +7131,16 @@ "description": "Filter by mint address", "example": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn" }, + "output_decimals": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, "transactions": { "type": "number" }, @@ -7130,7 +7160,9 @@ "amm_name", "amm_pool", "input_mint", + "input_decimals", "output_mint", + "output_decimals", "transactions", "network" ] @@ -7201,7 +7233,9 @@ "amm_name": "Raydium Liquidity Pool V4", "amm_pool": "Dqb7bL7MZkuDgHrZZphRMRViJnepHxf9odx3RRwmifur", "input_mint": "9bJKq2eLbLFKbcD9zYBNTrQ5Pua7hXMeivu7Fk3iWWoQ", + "input_decimals": 6, "output_mint": "Fm34vVNQYoEkenNjCeM8MVP8mBV5EGLwA86WFHwyMcz4", + "output_decimals": 9, "transactions": 43062555, "network": "solana" } @@ -7703,7 +7737,9 @@ "darklake", "dumpfun", "moonshot", - "pancakeswap" + "pancakeswap", + "spl_token_swap", + "okx_dex" ] }, "description": "Protocol name" @@ -8916,6 +8952,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "network": { @@ -9623,6 +9660,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "name": { @@ -10261,8 +10299,12 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, + "is_contract": { + "type": "boolean" + }, "name": { "anyOf": [ { @@ -10317,6 +10359,7 @@ "contract", "amount", "value", + "is_contract", "name", "symbol", "decimals", @@ -10389,6 +10432,7 @@ "contract": "0xdac17f958d2ee523a2206206994597c13d831ec7", "amount": "20000000000000000", "value": 20000000000, + "is_contract": false, "name": "Tether USD", "symbol": "USDT", "decimals": 6, @@ -12095,6 +12139,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "network": { @@ -12761,6 +12806,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "name": { @@ -13327,8 +13373,12 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, + "is_contract": { + "type": "boolean" + }, "name": { "anyOf": [ { @@ -13382,6 +13432,7 @@ "address", "amount", "value", + "is_contract", "name", "symbol", "decimals", @@ -13453,6 +13504,7 @@ "address": "0x00000000219ab540356cbb839cbe05303d7705fa", "amount": "78761803578844096172899779", "value": 78761803.5788441, + "is_contract": true, "name": "Ethereum", "symbol": "ETH", "decimals": 18, @@ -21416,7 +21468,7 @@ "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" }, "amount": { - "type": "number" + "type": "string" }, "network": { "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", @@ -21524,7 +21576,7 @@ "token_standard": "ERC721", "from": "0x355062b5d0e324815290b96370e87607a71d613d", "to": "0x7ccde43632b3287fda060719d802b2c4cb6f769b", - "amount": 1, + "amount": "1", "network": "mainnet" } ] @@ -22222,6 +22274,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "name": { @@ -23519,6 +23572,7 @@ "type": "string" }, "value": { + "description": "Decimal-scaled token amount (= amount / 10^decimals). Not a USD value.", "type": "number" }, "name": { @@ -27554,7 +27608,7 @@ "properties": { "dex": { "type": "string", - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set.", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", "examples": [ "perps", "spot", @@ -28010,7 +28064,7 @@ "get": { "operationId": "getV1HyperliquidMarkets", "summary": "Market Lookup", - "description": "Returns the latest snapshot per market: last trade price, 24h change versus the prior-day close, 24h volume (split by side), trade and unique-user counts, and the most recent open interest and funding rate observed at the last funding snapshot.\n\nFilters compose additively — pass `coin`, `dex`, `base_token`, and/or `quote_token` to narrow the scope. A mismatched combination (e.g. `coin=cash:TSLA&dex=xyz`) returns empty. Omit all for a full listing sorted by 24h volume.\n\n`base_token` and `quote_token` are spot-discovery filters: `?base_token=HYPE` returns every spot pair where HYPE sits on the base side (HYPE/USDC, HYPE/USDT0, …). Use the `coin` from the result as the identifier on the rest of the `/v1/hyperliquid/*` endpoints.", + "description": "Returns the latest snapshot per market: last trade price, 24h change versus the prior-day close, 24h volume (split by side), trade and unique-user counts, and the most recent open interest and funding rate observed at the last funding snapshot.\n\nFilters compose additively — pass `coin`, `dex`, `base_token`, and/or `quote_token` to narrow the scope. A mismatched combination (e.g. `coin=cash:TSLA&dex=xyz`) returns empty. Omit all for a full listing sorted by 24h volume.\n\n`base_token` and `quote_token` are discovery filters across spot and perp markets: `?base_token=HYPE` returns every market with HYPE on the base side. Use the `coin` from the result as the identifier on the rest of the `/v1/hyperliquid/*` endpoints.", "tags": [ "Hyperliquid Markets" ], @@ -28205,8 +28259,8 @@ "coin": "BTC", "market_name": "BTC", "dex": "perps", - "base_token": null, - "quote_token": null, + "base_token": "BTC", + "quote_token": "USDC", "price": 75944, "price_24h": 76765, "price_24h_change": -0.010695, @@ -28574,57 +28628,148 @@ "schema": { "type": "string", "example": "BTC", - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + } + } + ] }, - "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`)." + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "dex", "schema": { "type": "string", - "examples": [ - "perps", - "spot", - "xyz", - "cash", - "km", - "hyna", - "flx", - "vntl", - "para" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + } + } + ] }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "base_token", "schema": { "type": "string", - "examples": [ - "HYPE", - "USDC", - "PURR" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Token symbol (e.g. `HYPE`, `USDC`, `BTC`). Use to discover markets with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`.", + "examples": [ + "HYPE", + "USDC", + "BTC" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Token symbol (e.g. `HYPE`, `USDC`, `BTC`). Use to discover markets with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`.", + "examples": [ + "HYPE", + "USDC", + "BTC" + ], + "minLength": 1 + } + } + ] }, - "description": "Spot token symbol (e.g. `HYPE`, `USDC`). Use to discover all spot pairs with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`." + "description": "Token symbol (e.g. `HYPE`, `USDC`, `BTC`). Use to discover markets with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "quote_token", "schema": { "type": "string", - "examples": [ - "HYPE", - "USDC", - "PURR" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Token symbol (e.g. `HYPE`, `USDC`, `BTC`). Use to discover markets with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`.", + "examples": [ + "HYPE", + "USDC", + "BTC" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Token symbol (e.g. `HYPE`, `USDC`, `BTC`). Use to discover markets with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`.", + "examples": [ + "HYPE", + "USDC", + "BTC" + ], + "minLength": 1 + } + } + ] }, - "description": "Spot token symbol (e.g. `HYPE`, `USDC`). Use to discover all spot pairs with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`." + "description": "Token symbol (e.g. `HYPE`, `USDC`, `BTC`). Use to discover markets with this token on a given side via `/v1/hyperliquid/markets?base_token=...` or `?quote_token=...`.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -29222,7 +29367,7 @@ ], "minLength": 1 }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set." }, { "in": "query", @@ -29366,11 +29511,6 @@ "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 - }, - "unique_users": { - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 } }, "required": [ @@ -29389,8 +29529,7 @@ "total_funding", "positive_funding", "negative_funding", - "funding_events", - "unique_users" + "funding_events" ] } }, @@ -29467,8 +29606,7 @@ "total_funding": -0.001199, "positive_funding": 16482.55, "negative_funding": -16482.55, - "funding_events": 30415, - "unique_users": 30415 + "funding_events": 30415 } ] } @@ -29807,30 +29945,77 @@ "schema": { "type": "string", "example": "BTC", - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + } + } + ] }, "required": true, - "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`)." + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "dex", "schema": { "type": "string", - "examples": [ - "perps", - "spot", - "xyz", - "cash", - "km", - "hyna", - "flx", - "vntl", - "para" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + } + } + ] }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -30433,29 +30618,76 @@ "schema": { "type": "string", "example": "BTC", - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + } + } + ] }, - "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`)." + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "dex", "schema": { "type": "string", - "examples": [ - "perps", - "spot", - "xyz", - "cash", - "km", - "hyna", - "flx", - "vntl", - "para" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + } + } + ] }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -30464,9 +30696,31 @@ "type": "string", "format": "evm-address", "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + } + } + ] }, - "description": "Filter by address" + "description": "Filter by address
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -31021,29 +31275,76 @@ "schema": { "type": "string", "example": "BTC", - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + } + } + ] }, - "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`)." + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "dex", "schema": { "type": "string", - "examples": [ - "perps", - "spot", - "xyz", - "cash", - "km", - "hyna", - "flx", - "vntl", - "para" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + } + } + ] }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -31052,9 +31353,31 @@ "type": "string", "format": "evm-address", "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + } + } + ] }, - "description": "Filter by address" + "description": "Filter by address
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -31707,7 +32030,7 @@ ], "minLength": 1 }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set." }, { "in": "query", @@ -32342,9 +32665,31 @@ "type": "string", "format": "evm-address", "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + } + } + ] }, - "description": "Filter by address" + "description": "Filter by address
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -32382,29 +32727,76 @@ "schema": { "type": "string", "example": "BTC", - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + } + } + ] }, - "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`)." + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "dex", "schema": { "type": "string", - "examples": [ - "perps", - "spot", - "xyz", - "cash", - "km", - "hyna", - "flx", - "vntl", - "para" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + } + } + ] }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -32895,10 +33287,32 @@ "type": "string", "format": "evm-address", "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + } + } + ] }, "required": true, - "description": "Filter by address" + "description": "Filter by address
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -32906,29 +33320,76 @@ "schema": { "type": "string", "example": "BTC", - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).", + "example": "BTC", + "minLength": 1 + } + } + ] }, - "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`)." + "description": "Hyperliquid coin identifier. Core perps have no prefix (`BTC`, `HYPE`); spot pairs use `@N` (`@107`); builder DEXs prefix the symbol with the DEX name (`xyz:SILVER`).
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "dex", "schema": { "type": "string", - "examples": [ - "perps", - "spot", - "xyz", - "cash", - "km", - "hyna", - "flx", - "vntl", - "para" - ], - "minLength": 1 + "anyOf": [ + { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.", + "examples": [ + "perps", + "spot", + "xyz", + "cash", + "km", + "hyna", + "flx", + "vntl", + "para" + ], + "minLength": 1 + } + } + ] }, - "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (e.g. `xyz`, `cash`). New builder DEXs are added on Hyperliquid permissionlessly — call `/v1/hyperliquid/dexes` for the live set." + "description": "DEX identifier. `perps` for core perps, `spot` for `@N` spot pairs, or a builder DEX name (`xyz`, `cash`, …). Call `/v1/hyperliquid/dexes` for the live set.
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -34075,9 +34536,31 @@ "type": "string", "format": "evm-address", "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + } + } + ] }, - "description": "Filter by address" + "description": "Filter by address
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -34596,10 +35079,32 @@ "type": "string", "format": "evm-address", "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + } + } + ] }, "required": true, - "description": "Filter by address" + "description": "Filter by address
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -35731,32 +36236,100 @@ "name": "condition_id", "schema": { "type": "string", - "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16" - } + "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16", + "anyOf": [ + { + "type": "string", + "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "market_slug", "schema": { "type": "string", - "example": "will-bitcoin-reach-150k-in-january-2026" - } + "example": "will-bitcoin-reach-150k-in-january-2026", + "anyOf": [ + { + "type": "string", + "example": "will-bitcoin-reach-150k-in-january-2026" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "will-bitcoin-reach-150k-in-january-2026" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "token_id", "schema": { "type": "string", - "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922" - } + "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922", + "anyOf": [ + { + "type": "string", + "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "event_slug", "schema": { "type": "string", - "example": "will-bitcoin-reach-150k-in-january-2026" - } + "example": "will-bitcoin-reach-150k-in-january-2026", + "anyOf": [ + { + "type": "string", + "example": "will-bitcoin-reach-150k-in-january-2026" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "will-bitcoin-reach-150k-in-january-2026" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -35866,9 +36439,18 @@ "total_fees": { "type": "number" }, + "total_refunds": { + "type": "number" + }, + "net_fees": { + "type": "number" + }, "fee_count": { "type": "number" }, + "effective_fee_rate_gross": { + "type": "number" + }, "effective_fee_rate": { "type": "number" }, @@ -35934,7 +36516,10 @@ "unique_makers", "unique_takers", "total_fees", + "total_refunds", + "net_fees", "fee_count", + "effective_fee_rate_gross", "effective_fee_rate", "market" ] @@ -36010,7 +36595,10 @@ "unique_makers": 592, "unique_takers": 121, "total_fees": 0, + "total_refunds": 0, + "net_fees": 0, "fee_count": 0, + "effective_fee_rate_gross": 0, "effective_fee_rate": 0, "market": { "condition_id": "0x6331a779482df72d904c3c1e12b6409ff836bc06f8c97945cba9b25ada2c605c", @@ -38307,9 +38895,18 @@ "total_fees": { "type": "number" }, + "total_refunds": { + "type": "number" + }, + "net_fees": { + "type": "number" + }, "fee_count": { "type": "number" }, + "effective_fee_rate_gross": { + "type": "number" + }, "effective_fee_rate": { "type": "number" } @@ -38329,7 +38926,10 @@ "merge_count", "oi_transactions", "total_fees", + "total_refunds", + "net_fees", "fee_count", + "effective_fee_rate_gross", "effective_fee_rate" ] } @@ -38392,22 +38992,25 @@ "value": { "data": [ { - "timestamp": "2026-03-31 00:00:00", - "volume": 147283399.07, - "buy_volume": 34189099.46, - "sell_volume": 113094299.61, - "trades": 3605384, - "buys": 710957, - "sells": 2894427, - "net_open_interest": 161877323.01, - "split_amount": 216206160.44, - "merge_amount": 54328837.42, - "split_count": 4901011, - "merge_count": 280342, - "oi_transactions": 5181353, - "total_fees": 18905201.68, - "fee_count": 8604367, - "effective_fee_rate": 0.069 + "timestamp": "2026-04-15 00:00:00", + "volume": 148067185.09, + "buy_volume": 39470527.47, + "sell_volume": 108596657.62, + "trades": 3065040, + "buys": 638547, + "sells": 2426493, + "net_open_interest": 161012348.11, + "split_amount": 222905687.23, + "merge_amount": 61893339.12, + "split_count": 4045998, + "merge_count": 338837, + "oi_transactions": 4384835, + "total_fees": 20602487.78, + "total_refunds": 17060492.91, + "net_fees": 3541994.86, + "fee_count": 7360794, + "effective_fee_rate_gross": 0.139, + "effective_fee_rate": 0.024 } ] } @@ -39287,8 +39890,27 @@ "schema": { "type": "string", "format": "evm-address", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$" - } + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -39902,33 +40524,103 @@ "schema": { "type": "string", "format": "evm-address", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$" + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "anyOf": [ + { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "format": "evm-address", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$" + } + } + ] }, - "required": true + "required": true, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "token_id", "schema": { "type": "string", - "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922" - } + "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922", + "anyOf": [ + { + "type": "string", + "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "53342136288932702007624506186417846874594504126387502748453102780630218207922" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "condition_id", "schema": { "type": "string", - "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16" - } + "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16", + "anyOf": [ + { + "type": "string", + "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "0x9708334534b504e2025a5a6af92f8600808c10be577e5066f920c40625fbec16" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", "name": "market_slug", "schema": { "type": "string", - "example": "will-bitcoin-reach-150k-in-january-2026" - } + "example": "will-bitcoin-reach-150k-in-january-2026", + "anyOf": [ + { + "type": "string", + "example": "will-bitcoin-reach-150k-in-january-2026" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "example": "will-bitcoin-reach-150k-in-january-2026" + } + } + ] + }, + "description": "undefined
Single value or array of values* (separate multiple values with `,`)
*Plan restricted." }, { "in": "query", @@ -40406,10 +41098,10 @@ "examples": { "example": { "value": { - "version": "3.17.0", - "commit": "cb0e400", - "date": "2026-05-07", - "repo": "pinax-network/token-api" + "version": "3.19.0", + "commit": "65ad8c6", + "date": "2026-05-26", + "repo": "pinax-network/pinax-api" } } } @@ -41242,11 +41934,11 @@ ] } }, - "/SKILLS.md": { + "/SKILL.md": { "get": { "operationId": "getSkillsMarkdown", - "summary": "Agent Skills Reference", - "description": "Returns the public Markdown reference for AI agents integrating with Token API.", + "summary": "Pinax API Skill", + "description": "Returns the public Markdown reference for AI agents integrating with Pinax API.", "tags": [ "Documentation" ], @@ -41258,7 +41950,7 @@ "text/markdown; charset=UTF-8": { "schema": { "type": "string", - "example": "---\nname: Token API\ndescription: Real-time token, balance, transfer, holder, DEX, NFT, Polymarket, and Hyperliquid data across EVM, SVM, and TVM networks.\n---\n\n# Token API\n\n> Quick reference for AI agents using Token API. The authoritative machine-readable contract is `GET /openapi`.\n\n..." + "example": "---\nname: pinax-api\ndescription: Query Pinax API datasets including Token API, prediction markets, and perp exchange data.\n---\n\n# Pinax API\n\n> Quick reference for AI agents using Pinax API. The authoritative machine-readable contract is `GET /openapi`.\n\n..." } } } @@ -41270,7 +41962,7 @@ "get": { "operationId": "getLlmsText", "summary": "LLM Documentation Index", - "description": "Returns the public llms.txt documentation index for AI tools discovering Token API.", + "description": "Returns the public llms.txt documentation index for AI tools discovering Pinax API.", "tags": [ "Documentation" ], @@ -41282,7 +41974,44 @@ "text/markdown; charset=UTF-8": { "schema": { "type": "string", - "example": "# Token API\n\n> Real-time token, balance, transfer, holder, DEX, NFT, Polymarket, and Hyperliquid data across EVM, SVM, and TVM networks.\n\n..." + "example": "# Pinax API\n\n> Real-time Token API, prediction market, and perp exchange data.\n\n..." + } + } + } + } + } + } + }, + "/.well-known/x402": { + "get": { + "operationId": "getX402Discovery", + "summary": "x402 Discovery", + "description": "Returns the public x402 discovery document. Payment enforcement, verification, settlement, and metering are handled by the proxy layer.", + "tags": [ + "Documentation" + ], + "security": [], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json; charset=UTF-8": { + "schema": { + "type": "object", + "example": { + "x402Version": 2, + "name": "Pinax API", + "resourceServer": "https://api.pinax.network", + "payment": { + "enforcement": "proxy" + }, + "discovery": { + "openapi": "https://api.pinax.network/openapi", + "llms": "https://api.pinax.network/llms.txt", + "skill": "https://api.pinax.network/SKILL.md" + }, + "datasets": [] + } } } } @@ -41294,7 +42023,7 @@ "get": { "operationId": "getOpenapiSpec", "summary": "OpenAPI Specification", - "description": "Returns the public OpenAPI specification for Token API.", + "description": "Returns the public OpenAPI specification for Pinax API.", "tags": [ "Documentation" ], diff --git a/website/src/pages/en/index.json b/website/src/pages/en/index.json index 3a049522aaea..90a6f89e270a 100644 --- a/website/src/pages/en/index.json +++ b/website/src/pages/en/index.json @@ -97,10 +97,6 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenApi": { - "title": "The Graph's Token API", - "description": "Query token data and leverage native MCP support." - }, "graphExplorer": { "title": "Graph Explorer", "description": "Find and query existing blockchain data." diff --git a/website/src/supportedNetworks/NetworkDetailsPage.tsx b/website/src/supportedNetworks/NetworkDetailsPage.tsx index 3dcf79803a8b..76f3db9f0e6c 100644 --- a/website/src/supportedNetworks/NetworkDetailsPage.tsx +++ b/website/src/supportedNetworks/NetworkDetailsPage.tsx @@ -4,13 +4,7 @@ import { NetworkIcon } from '@edgeandnode/go' import { Card, TimeIcon } from '@/components' import { useI18n } from '@/i18n' -import { - evmNoTokenAPICards, - evmSubgraphsOnlyCards, - evmWithTokenAPICards, - nonEvmNoTokenAPICards, - nonEvmWithTokenAPICards, -} from './ResourceCards' +import { evmCards, evmSubgraphsOnlyCards, nonEvmCards } from './ResourceCards' import { type SupportedNetwork } from './utils' export default function NetworkDetailsPage({ network }: { network: SupportedNetwork }) { @@ -19,17 +13,11 @@ export default function NetworkDetailsPage({ network }: { network: SupportedNetw if (network.evm) { if (network.subgraphsSupportLevel !== 'none' && network.substreamsSupportLevel === 'none') { return evmSubgraphsOnlyCards - } else if (network.tokenApiSupportLevel !== 'none') { - return evmWithTokenAPICards } else { - return evmNoTokenAPICards + return evmCards } } else { - if (network.tokenApiSupportLevel !== 'none') { - return nonEvmWithTokenAPICards - } else { - return nonEvmNoTokenAPICards - } + return nonEvmCards } })() diff --git a/website/src/supportedNetworks/ResourceCards.tsx b/website/src/supportedNetworks/ResourceCards.tsx index 6b0ecec4ee28..908706d468fb 100644 --- a/website/src/supportedNetworks/ResourceCards.tsx +++ b/website/src/supportedNetworks/ResourceCards.tsx @@ -1,11 +1,4 @@ -import { - APIToken, - GraphExplorer, - MoneyWavy, - Subgraph, - Substreams, - SubstreamsPoweredSubgraph, -} from '@edgeandnode/gds/icons' +import { GraphExplorer, MoneyWavy, Subgraph, Substreams } from '@edgeandnode/gds/icons' type Resource = { href: string @@ -15,45 +8,7 @@ type Resource = { icon?: React.ReactNode } -// EVM + Subgraphs, Substreams and Token API -export const evmWithTokenAPICards = [ - { - href: 'https://thegraph.com/docs/en/subgraphs/quick-start/', - titleKey: 'index.networkGuides.evm.subgraphQuickStart.title' as const, - descriptionKey: 'index.networkGuides.evm.subgraphQuickStart.description' as const, - minutes: 10, - icon: , - }, - { - href: 'https://docs.substreams.dev/', - titleKey: 'index.networkGuides.evm.substreamsQuickStart.title' as const, - descriptionKey: 'index.networkGuides.evm.substreamsQuickStart.description' as const, - minutes: 15, - icon: , - }, - { - href: 'https://thegraph.com/docs/en/token-api/quick-start/', - titleKey: 'index.networkGuides.evm.tokenApi.title' as const, - descriptionKey: 'index.networkGuides.evm.tokenApi.description' as const, - minutes: 8, - icon: , - }, - { - href: 'https://thegraph.com/docs/en/subgraphs/explorer/', - titleKey: 'index.networkGuides.evm.graphExplorer.title' as const, - descriptionKey: 'index.networkGuides.evm.graphExplorer.description' as const, - minutes: 12, - }, - { - href: 'https://substreams.dev/', - titleKey: 'index.networkGuides.evm.substreamsDev.title' as const, - descriptionKey: 'index.networkGuides.evm.substreamsDev.description' as const, - minutes: 5, - }, -] satisfies Resource[] - -// EVM without Token API -export const evmNoTokenAPICards = [ +export const evmCards = [ { href: 'https://thegraph.com/docs/en/subgraphs/quick-start/', titleKey: 'index.networkGuides.evm.subgraphQuickStart.title' as const, @@ -89,7 +44,6 @@ export const evmNoTokenAPICards = [ }, ] -// EVM only Subgraphs export const evmSubgraphsOnlyCards = [ { href: 'https://thegraph.com/docs/en/subgraphs/quick-start/', @@ -126,45 +80,7 @@ export const evmSubgraphsOnlyCards = [ }, ] -// Non-EVM + Token API -export const nonEvmWithTokenAPICards = [ - { - href: 'https://docs.substreams.dev/', - titleKey: 'index.networkGuides.nonEvm.officialDocs.title' as const, - descriptionKey: 'index.networkGuides.nonEvm.officialDocs.description' as const, - minutes: 15, - icon: , - }, - { - href: 'https://thegraph.com/docs/en/sps/introduction/', - titleKey: 'index.networkGuides.nonEvm.spsIntro.title' as const, - descriptionKey: 'index.networkGuides.nonEvm.spsIntro.description' as const, - minutes: 8, - icon: , - }, - { - href: 'https://substreams.dev/', - titleKey: 'index.networkGuides.nonEvm.substreamsDev.title' as const, - descriptionKey: 'index.networkGuides.nonEvm.substreamsDev.description' as const, - minutes: 10, - icon: , - }, - { - href: 'https://github.com/streamingfast/substreams-starter', - titleKey: 'index.networkGuides.nonEvm.substreamsStarter.title' as const, - descriptionKey: 'index.networkGuides.nonEvm.substreamsStarter.description' as const, - minutes: 5, - }, - { - href: 'https://github.com/streamingfast/substreams', - titleKey: 'index.networkGuides.nonEvm.substreamsRepo.title' as const, - descriptionKey: 'index.networkGuides.nonEvm.substreamsRepo.description' as const, - minutes: 7, - }, -] - -// Non-EVM without Token API -export const nonEvmNoTokenAPICards = [ +export const nonEvmCards = [ { href: 'https://thegraph.com/docs/en/substreams/quick-start/', titleKey: 'index.networkGuides.evm.substreamsQuickStart.title' as const, diff --git a/website/src/supportedNetworks/utils.ts b/website/src/supportedNetworks/utils.ts index ddd1a870a20c..f016b16a111a 100644 --- a/website/src/supportedNetworks/utils.ts +++ b/website/src/supportedNetworks/utils.ts @@ -32,13 +32,7 @@ export async function getSupportedNetworks() { const [subgraphsSupportLevel, subgraphsProvider] = getSubgraphsSupportLevelAndProvider(network) const substreamsSupportLevel = getSubstreamsSupportLevel(network) const firehoseSupportLevel = getFirehoseSupportLevel(network) - const tokenApiSupportLevel = getTokenApiSupportLevel(network) - if ( - subgraphsSupportLevel === 'none' && - substreamsSupportLevel === 'none' && - firehoseSupportLevel === 'none' && - tokenApiSupportLevel === 'none' - ) { + if (subgraphsSupportLevel === 'none' && substreamsSupportLevel === 'none' && firehoseSupportLevel === 'none') { return [] } return [ @@ -50,7 +44,6 @@ export async function getSupportedNetworks() { subgraphsProvider, substreamsSupportLevel, firehoseSupportLevel, - tokenApiSupportLevel, }, ] }) @@ -96,12 +89,6 @@ function getFirehoseSupportLevel(network: Network): 'none' | 'basic' | 'full' { return 'none' } -function getTokenApiSupportLevel(network: Network): 'none' | 'full' { - const providerCount = network.services.tokenApi?.length || 0 - if (providerCount >= 1) return 'full' - return 'none' -} - export type SupportedNetwork = Awaited>[number] export async function getSupportedNetworksStaticProps() {