Install nothing. This returns 402 Payment Required — not an error, it is the x402 price tag.
curl -i https://feegate.org/api/supply/asset/case_status
The accepts object lists every billing element: eip155:8453 (Base mainnet), the USDC contract, amount 60000 (6 decimals = $0.06), and the pay-to address. _feegate.how_to_pay in the same response lists all three payment routes — step 3 gives a runnable command for each.
The free tier has a daily quota. Verify the pipeline before you pay anything.
curl https://feegate.org/api/supply/asset/talent_quota
curl "https://feegate.org/free/api/search?dataset=defillama-protocols&q=uniswap&limit=3"
All 6 free public datasets (x402 paid-resource index, MCP server directory, DeFi TVL, exchange markets…) use this API. There is also a free MCP endpoint: https://feegate.org/free/mcp (tools: free_datasets / free_search / free_get).
Base mainnet USDC (contract 0x8335…2913). No ETH needed — signing uses EIP-3009 and gas is sponsored by the facilitator.
$1 = 20 calls ($0.05 GPU market snapshot) or 100 calls ($0.01 RWA headlines). Start as low as 4 cents.
Withdraw USDC on the Base network from any exchange, or use an official bridge.
The official x402 libraries handle the whole loop: receive 402 → sign & pay → retry → get data.
# pip install "mcp<2" "x402==2.25.0" web3
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
from x402.mcp import create_payment_hook
from eth_account import Account
account = Account.from_key("your private key") # just needs Base USDC
MCP_URL = "https://api.feegate.org/mcp/gpu-market"
async with streamablehttp_client(MCP_URL) as (r, w, _):
async with ClientSession(r, w, hooks=[create_payment_hook(account)]) as s:
await s.initialize()
print(await s.call_tool("list_gpu_models", {})) # free
print(await s.call_tool("gpu_price", {"gpu": "H100"})) # $0.05Send $0.06 USDC (Base) from any wallet to the payTo address from the 402 response, then resend with the tx hash:
curl -H "X-Payment-Tx: 0xyour-tx-hash" \\
https://feegate.org/api/supply/asset/case_statusThe server only accepts transfer(address,uint256) events on the USDC contract: pay-to must equal the asset payTo, the amount must cover the price, and status=0x1. The third route is RMB credits: Authorization: Bearer fg_….
| What you see | What it is | What to do |
|---|---|---|
| 402 + accepts JSON | A normal payment challenge (the price tag) | Pay per accepts, then resend the same request |
| 402 + insufficient credits | The fg_ key ran out of credits | Top up credits, or switch to on-chain USDC |
| Timeout / proxy error | A local proxy intercepted the request | Set NO_PROXY and retry |
| MCP _meta error | A hand-written client dropped the parameter | Pass params["_meta"] through untouched |
| isError=true, no charge | Upstream source temporarily unavailable | You are not charged (auto-refunded); retry later |
Full docs /docs · Console /console · Free datasets /free/ · Settlement proof /proof · Machine-readable price list pricing.json