ApiToll Base Gas Oracle
GET gas.apitoll.cloud/v1/base/gas
Why an agent can trust this route.
Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.
Observed outcomes
Base gas oracle / gas price API for AI agents and bots — get the gas price for a transaction on Base in one x402 call. Real-time slow/standard/fast EIP-1559 fee tiers from a live eth_feeHistory call, returned as DROP-IN maxFeePerGas + maxPriorityFeePerGas in wei — plug straight into a viem/ethers transaction, no gwei conversion. Plus base fee, head block, and network fullness. Call it before every Base tx to set a fair fee or wait out congestion.
Resource: gas.apitoll.cloud/v1/base/gas
Network: eip155:8453 · Asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 · Pay to: 0xcc69d619E6053F88A4845066518f465bD06Fc96c
Payment methods: — · Last validation: 2026-09-14 12:30:04.02+00
{
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"required": [
"blocks"
],
"properties": {
"blocks": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Recent blocks to sample for percentile reward (1..50, clamped). Wider = smoother tiers, narrower = more reactive."
}
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"stats": {
"type": "object",
"required": [
"blocks_sampled",
"median_fullness_pct",
"ts"
],
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when snapshot was assembled."
},
"blocks_sampled": {
"type": "integer",
"description": "Number of recent blocks sampled for percentile calculation."
},
"median_fullness_pct": {
"type": "number",
"description": "Median (gasUsed / gasLimit) × 100 across sampled blocks. 100 = full, 0 = empty."
}
},
"description": "Sampling metadata: block count and median fullness."
},
"tiers": {
"type": "object",
"properties": {
"fast": {
"type": "object",
"required": [
"max_fee_gwei",
"max_priority_gwei",
"maxFeePerGas",
"maxPriorityFeePerGas"
],
"properties": {
"maxFeePerGas": {
"type": "string",
"description": "DROP-IN: exact maxFeePerGas in wei. tx.maxFeePerGas = BigInt(this)."
},
"max_fee_gwei": {
"type": "number",
"description": "maxFeePerGas in gwei (human-readable)."
},
"max_priority_gwei": {
"type": "number",
"description": "maxPriorityFeePerGas (tip) in gwei (human-readable)."
},
"maxPriorityFeePerGas": {
"type": "string",
"description": "DROP-IN: exact maxPriorityFeePerGas in wei (BigInt-ready)."
}
}
},
"slow": {
"type": "object",
"required": [
"max_fee_gwei",
"max_priority_gwei",
"maxFeePerGas",
"maxPriorityFeePerGas"
],
"properties": {
"maxFeePerGas": {
"type": "string",
"description": "DROP-IN: exact maxFeePerGas in wei. tx.maxFeePerGas = BigInt(this)."
},
"max_fee_gwei": {
"type": "number",
"description": "maxFeePerGas in gwei (human-readable)."
},
"max_priority_gwei": {
"type": "number",
"description": "maxPriorityFeePerGas (tip) in gwei (human-readable)."
},
"maxPriorityFeePerGas": {
"type": "string",
"description": "DROP-IN: exact maxPriorityFeePerGas in wei (BigInt-ready)."
}
}
},
"standard": {
"type": "object",
"required": [
"max_fee_gwei",
"max_priority_gwei",
"maxFeePerGas",
"maxPriorityFeePerGas"
],
"properties": {
"maxFeePerGas": {
"type": "string",
"description": "DROP-IN: exact maxFeePerGas in wei. tx.maxFeePerGas = BigInt(this)."
},
"max_fee_gwei": {
"type": "number",
"description": "maxFeePerGas in gwei (human-readable)."
},
"max_priority_gwei": {
"type": "number",
"description": "maxPriorityFeePerGas (tip) in gwei (human-readable)."
},
"maxPriorityFeePerGas": {
"type": "string",
"description": "DROP-IN: exact maxPriorityFeePerGas in wei (BigInt-ready)."
}
}
}
},
"description": "Three fee tiers (slow p10, standard p50, fast p90). Each carries human gwei (max_fee_gwei/max_priority_gwei) AND DROP-IN wei (maxFeePerGas/maxPriorityFeePerGas, BigInt-ready) to plug straight into a viem/ethers tx."
},
"network": {
"enum": [
"base-mainnet",
"base-sepolia"
],
"type": "string",
"description": "Network identifier (Base mainnet or testnet)"
},
"base_fee_wei": {
"type": "string",
"description": "Base fee in wei (exact, BigInt-ready decimal string)."
},
"block_number": {
"type": "integer",
"description": "Latest sampled block number (the head)."
},
"base_fee_gwei": {
"type": "number",
"description": "EIP-1559 base fee for the next block (gwei, human-readable)."
}
}
}
}
},
"paymentRequirements": [
{
"raw": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xcc69d619E6053F88A4845066518f465bD06Fc96c",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xcc69d619E6053F88A4845066518f465bD06Fc96c",
"scheme": "exact",
"network": "eip155:8453",
"amountAtomic": "1000"
}
]
}Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.