{"id":46867896,"url":"https://github.com/TKtokyo/token-intel-api","last_synced_at":"2026-03-24T21:00:54.802Z","repository":{"id":340839308,"uuid":"1167597138","full_name":"TKtokyo/token-intel-api","owner":"TKtokyo","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-26T13:28:29.000Z","size":56,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-27T00:47:27.619Z","etag":null,"topics":["cloudflare-workers","goplus","hono","token-security","x402","x402-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TKtokyo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T13:24:29.000Z","updated_at":"2026-02-26T14:38:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TKtokyo/token-intel-api","commit_stats":null,"previous_names":["tktokyo/token-intel-api"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/TKtokyo/token-intel-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKtokyo%2Ftoken-intel-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKtokyo%2Ftoken-intel-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKtokyo%2Ftoken-intel-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKtokyo%2Ftoken-intel-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TKtokyo","download_url":"https://codeload.github.com/TKtokyo/token-intel-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TKtokyo%2Ftoken-intel-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30905699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-24T08:58:18.477Z","status":"ssl_error","status_checked_at":"2026-03-24T08:57:59.595Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare-workers","goplus","hono","token-security","x402","x402-api"],"created_at":"2026-03-10T19:00:20.187Z","updated_at":"2026-03-24T21:00:54.786Z","avatar_url":"https://github.com/TKtokyo.png","language":"TypeScript","funding_links":[],"categories":["🌟 Ecosystem Projects"],"sub_categories":["Tools \u0026 Services"],"readme":"# Token Intelligence API\n\nx402-powered paid API that returns security analysis, deterministic risk scores, and natural language summaries for any EVM token.\n\n**Live (testnet):** `https://token-intel-api.tatsu77.workers.dev`\n\n## How It Works\n\n```\nClient → GET /api/v1/token/{chainId}/{address}\n       ← 402 Payment Required (USDC via x402)\n       → Payment header + retry\n       ← 200 { token, security, risk_score, summary, ... }\n```\n\nOne HTTP request, one microtransaction ($0.005 USDC), one structured response.\n\n## API\n\n### `GET /api/v1/token/{chainId}/{address}`\n\n**Payment:** $0.005 USDC via x402 protocol (Base Sepolia testnet)\n\n**Path parameters:**\n| Parameter | Description |\n|---|---|\n| `chainId` | `1` (Ethereum) or `8453` (Base) |\n| `address` | ERC-20 token contract address |\n\n**Response (200):**\n\n```json\n{\n  \"token\": {\n    \"name\": \"Pepe\",\n    \"symbol\": \"PEPE\",\n    \"chain_id\": \"1\",\n    \"address\": \"0x6982508145454ce325ddbe47a25d4ec3d2311933\",\n    \"total_supply\": \"420690000000000000000000000000000\"\n  },\n  \"security\": {\n    \"is_honeypot\": false,\n    \"is_open_source\": true,\n    \"is_proxy\": false,\n    \"is_mintable\": false,\n    \"hidden_owner\": false,\n    \"selfdestruct\": false,\n    \"external_call\": false,\n    \"buy_tax\": \"0\",\n    \"sell_tax\": \"0\"\n  },\n  \"holders\": {\n    \"holder_count\": 320000,\n    \"top10_percentage\": \"0.0\",\n    \"creator_percentage\": \"0.0\",\n    \"lp_holder_count\": 500\n  },\n  \"liquidity\": {\n    \"is_in_dex\": true,\n    \"dex\": [\n      { \"name\": \"UniswapV2\", \"liquidity\": \"13000000\", \"pair\": \"0x...\" }\n    ],\n    \"lp_total_supply\": \"...\",\n    \"is_lp_locked\": false\n  },\n  \"risk_score\": 85,\n  \"risk_level\": \"LOW\",\n  \"summary\": \"LOW risk. Contract is open source, verified. Top 10 holders control 0.0%. $13.0M in UniswapV2 pool.\",\n  \"cached\": false,\n  \"data_age_seconds\": 0\n}\n```\n\n**Error responses:**\n\n| Status | Error | Description |\n|---|---|---|\n| 400 | `invalid_address` | Invalid contract address format |\n| 402 | Payment Required | x402 payment needed |\n| 404 | `token_not_found` | No data for this token |\n| 429 | `upstream_throttled` | GoPlus rate limited (retry in 30s) |\n| 503 | `upstream_unavailable` | GoPlus API down |\n\n### `GET /health`\n\nReturns `{ \"status\": \"ok\", \"version\": \"0.1.0\" }`. No payment required.\n\n## Risk Scoring\n\nDeterministic 100-point scale:\n\n| Severity | Deduction | Flags |\n|---|---|---|\n| CRITICAL | Score = 0 | Honeypot |\n| SEVERE | -30 each | Mintable, hidden owner, ownership reclaimable, self-destruct |\n| HIGH | -20 each | Tax \u003e 10%, proxy contract |\n| MODERATE | -10 each | Not open source, external calls, blacklist function |\n| LOW | -5 each | Holder count \u003c 100 |\n\nRisk levels: **CRITICAL** (0-25) / **HIGH** (26-50) / **MODERATE** (51-75) / **LOW** (76-100)\n\n## Quick Start (Client)\n\n```typescript\nimport { wrapFetchWithPayment } from \"@x402/fetch\";\nimport { x402Client } from \"@x402/core/client\";\nimport { registerExactEvmScheme } from \"@x402/evm/exact/client\";\nimport { toClientEvmSigner } from \"@x402/evm\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { createPublicClient, http } from \"viem\";\nimport { baseSepolia } from \"viem/chains\";\n\nconst account = privateKeyToAccount(\"0xYOUR_PRIVATE_KEY\");\nconst publicClient = createPublicClient({ chain: baseSepolia, transport: http() });\nconst signer = toClientEvmSigner(account, publicClient);\n\nconst client = new x402Client();\nregisterExactEvmScheme(client, { signer });\nconst fetchWithPay = wrapFetchWithPayment(fetch, client);\n\nconst res = await fetchWithPay(\n  \"https://token-intel-api.tatsu77.workers.dev/api/v1/token/1/0x6982508145454Ce325dDbE47a25d4ec3d2311933\"\n);\nconst data = await res.json();\nconsole.log(data.risk_score, data.risk_level, data.summary);\n```\n\n**Prerequisites:** Test USDC on Base Sepolia from [Circle Faucet](https://faucet.circle.com).\n\n## Development\n\n```bash\n# Install\nnpm install\n\n# Local dev (uses .dev.vars for secrets)\nnpm run dev\n\n# Run E2E tests\nPRIVATE_KEY=0x... npx tsx test/client.ts\n\n# Deploy (testnet)\nnpx wrangler deploy\n\n# Deploy (mainnet, requires CDP keys)\nnpx wrangler deploy --env production\n```\n\n### Environment Variables\n\n| Variable | Where | Description |\n|---|---|---|\n| `PAY_TO_ADDRESS` | Wrangler secret | EOA address to receive USDC |\n| `GOPLUS_API_KEY` | Wrangler secret | GoPlus API key |\n| `CDP_API_KEY_ID` | Wrangler secret (production) | Coinbase Developer Platform key ID |\n| `CDP_API_KEY_SECRET` | Wrangler secret (production) | CDP key secret |\n\n## Architecture\n\n```\nCloudflare Workers (Hono)\n  ├── x402 Payment Middleware (@x402/hono)\n  ├── Bazaar Discovery Extension (@x402/extensions/bazaar)\n  ├── Cache Layer (Cloudflare KV, 5min TTL)\n  ├── GoPlus Security API (upstream data)\n  ├── Deterministic Risk Scoring (rule-based)\n  └── Template Summary Generator (GPU-free)\n```\n\n## Tech Stack\n\n- **Runtime:** Cloudflare Workers\n- **Framework:** Hono\n- **Payment:** x402 protocol (USDC on Base)\n- **Data:** GoPlus Security API\n- **Cache:** Cloudflare KV\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTKtokyo%2Ftoken-intel-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTKtokyo%2Ftoken-intel-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTKtokyo%2Ftoken-intel-api/lists"}