LogicNodes docs

Routes

MethodPathWhat it doesPrice
GET/gasprices/blockpricesGas price estimates for 14 EVM chains, Blocknative-compatiblefree
GET/v2/gasGas API v2: any EVM chain, multi-block horizon, confidence levels, USD cost (two-exchange cross-check), inputs echoed, receipt. Params: chain, confidenceLevels, blocks, usdfree
GET/v2/gas/historyBase fee and tip percentiles over the last 1-720 hours (one sample per minute, 30-day retention)free
GET/v2/gas/accuracyHow the tip quoted at each confidence level compared with what blocks then containedfree
GET/docs/gas-methodExactly how the estimates are computed, reproducible from the responsefree
GET/a2a/healthService health and per-chain data freshnessfree
GET/healthzDeep health for monitors: 200 only when every critical dependency is finefree
GET/statusHuman-readable status page (JSON at /status.json)free
POST/mcpMCP server (Streamable HTTP): get_gas_prices, list_supported_chainsfree
POST/a2aA2A JSON-RPC: message/sendfree
GET/premium/snapshotAll-chains gas snapshot: Gas price estimates for every supported chain in a single call.x402
GET/premium/curveExtended confidence curve: A dense gas-price curve (20 confidence points, 5-99%) for one chain, beyond the free tier's 12-level cap.x402
GET/premium/forecastNext-blocks fee forecast: Deterministic worst/best-case base-fee bound for the next 1-10 blocks (EIP-1559's 12.5%-per-block cap), not a statistical prediction.x402
GET/v1/toolsList the 81 tools with their JSON Schemasfree
POST/paid/v1/tools/{name}Pay-per-call version of the priced tools ($0.001-$0.005 USDC via x402). Errors are never chargedx402
POST/v1/tools/{name}Call a tool (JSON body = tool input). Same tools over MCP at /mcp/v2free

Quickstarts

Gas prices (free, no key)

curl
curl "https://logicnodes.io/gasprices/blockprices?chainid=8453"
TypeScript
const res = await fetch("https://logicnodes.io/gasprices/blockprices?chainid=8453");
const gas = await res.json();
console.log(gas.blockPrices[0].estimatedPrices[0]); // 99% confidence, gwei
Python
import requests
gas = requests.get("https://logicnodes.io/gasprices/blockprices", params={"chainid": 8453}, timeout=10).json()
print(gas["blockPrices"][0]["estimatedPrices"][0])  # 99% confidence, gwei

Gas API v2 (multi-block, USD, history)

curl
curl "https://logicnodes.io/v2/gas?chain=eip155:8453&confidenceLevels=99,90&blocks=3"
TypeScript
const r = await fetch("https://logicnodes.io/v2/gas?chain=eip155:8453&blocks=3");
const { ok, value, provenance, receipt } = await r.json();
console.log(value.estimates[0], value.usd.costs[0]);
Python
import requests
r = requests.get("https://logicnodes.io/v2/gas", params={"chain": "eip155:8453", "blocks": 3}, timeout=10).json()
print(r["value"]["estimates"][0], r["value"]["usd"]["status"])

MCP: connect an agent

curl
curl -s https://logicnodes.io/mcp -H "content-type: application/json" -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
TypeScript
// any MCP client; the server is stateless Streamable HTTP
{ "mcpServers": { "logicnodes": { "url": "https://logicnodes.io/mcp" } } }
Python
# MCP Python SDK (pip install mcp)
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

async with streamablehttp_client("https://logicnodes.io/mcp") as (r, w, _):
    async with ClientSession(r, w) as s:
        await s.initialize()
        print(await s.list_tools())

Multi-chain and Aptos tools (REST)

curl
curl -s https://logicnodes.io/v1/tools/aptos_asset_resolve -H "content-type: application/json" -d '{"query":"USDC"}'
TypeScript
const r = await fetch("https://logicnodes.io/v1/tools/gas_estimate", {
  method: "POST", headers: { "content-type": "application/json" },
  body: JSON.stringify({ chain: "aptos:1" }),
});
const { ok, value, error, provenance, receipt } = await r.json();
Python
import requests
r = requests.post("https://logicnodes.io/v1/tools/gas_estimate", json={"chain": "aptos:1"}, timeout=15).json()
print(r["ok"], r.get("value") or r["error"])

Paid endpoints with x402 (when payments are live)

curl
# 1. unpaid call returns HTTP 402 and a base64 "Payment-Required" header describing price, asset, network and payTo
curl -i https://logicnodes.io/premium/snapshot
TypeScript
import { x402Client } from "@x402/core/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";

const client = registerExactEvmScheme(new x402Client(), { signer: yourViemAccount });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://logicnodes.io/premium/snapshot");
Python
# Plain HTTP flow any language can implement:
# 1) GET the URL -> 402 + Payment-Required header (base64 JSON: accepts[] with network, asset, amount, payTo)
# 2) sign a payment for one of the accepts[] entries with your wallet
# 3) retry the GET with the signed payload in the payment header; success returns 200 + Payment-Response
# See https://x402.org for client libraries.

Tools

NameWhat it does
chain_infoChain info
gas_estimateGas / fee estimate
address_validateValidate an address
token_amount_convertConvert token amounts
tx_statusTransaction status
aptos_address_validateValidate an Aptos address
aptos_name_resolveResolve an Aptos name (.apt)
aptos_asset_resolveResolve an Aptos asset
aptos_amount_convertConvert an Aptos amount
aptos_balance_getAptos balances at a ledger version
aptos_fee_estimateAptos fee estimate
aptos_tx_simulateSimulate an Aptos transaction
aptos_tx_decodeDecode an Aptos entry-function call
aptos_tx_statusAptos transaction status
aptos_viewCall an Aptos view function
decimal_calcExact decimal arithmetic
table_calcExact math over a table (sums, averages, per-group totals) — no hallucinated numbers
verify_answerCheck numbers before you send them (correct / wrong + the right value)
quote_checkDoes the source really say this? (quote and citation check)
text_factsExact counts, limits and differences for text
reconcileReconcile two lists (bank vs ledger, invoices vs payments): matched, mismatched, missing
json_checkIs this JSON valid and does it match the schema? (exact errors with paths)
invoice_checkCompute or check an invoice exactly (lines, discounts, tax, shipping, total)
timesheet_calcHours, overtime and pay from clock-in/out entries (exact)
list_opsExact list operations: dedupe, sort, union, intersection, difference, compare
contact_normalizeClean and dedupe emails and phone numbers (E.164)
find_free_slotsMeeting times that work for everyone (time zones and DST handled)
date_seriesRecurring dates: every 2nd Tuesday, last business day of the month, every 2 weeks
table_joinJoin two tables on a key (VLOOKUP done exactly)
pii_redactFind and redact personal data and secrets in text before it is logged or shared
id_checkValidate identifiers by their check digits (IBAN, routing number, barcode, ISBN, VIN, NPI, EIN)
table_profileProfile a spreadsheet: what every column holds and what is wrong with it
holiday_calendarPublic holidays by rule: US federal, England and Wales bank holidays (with observed dates)
fx_rateCurrency conversion at official ECB reference rates (dated, never guessed)
slippage_boundsSlippage bounds in base units
swap_price_impactConstant-product swap output and price impact
money_calcCurrency-aware money math
interest_calcSimple and compound interest
loan_calcLevel-payment loan
unit_convertExact unit conversion
address_format_checkCross-chain address format check
time_convertTime zone conversion
business_daysBusiness-day arithmetic
evm_balanceEVM balances at one block
evm_nonceEVM account nonce
evm_blockEVM block summary
evm_tx_receiptEVM transaction receipt
evm_token_metadataERC-20 token metadata
evm_allowanceERC-20 allowance
evm_contract_typeClassify an EVM address
evm_logsEVM event logs (bounded)
evm_calldata_decodeDecode calldata with your ABI
evm_log_decodeDecode an event log with your ABI
payment_verifyVerify a token payment from a receipt
random_from_blockVerifiable randomness from a finalized block
erc8004_agentERC-8004 agent identity
erc8004_reputationERC-8004 reputation evidence
evm_spend_reportWallet token spend report (CSV)
x402_settlement_verifyDid this agent really pay me? (x402 settlement check)
token_priceToken price in USD (two exchanges must agree)
ens_resolveENS name to address, or address to ENS name
tx_safety_checkIs this transaction safe to sign? (simulate + risk check)
sanctions_checkSanctions screening for a crypto address
counterparty_checkCan I trust this counterparty? (sanctions, history, identity, verified deals)
wallet_watch_createWatch a wallet for 30 days (signed webhooks)
wallet_watch_statusStatus and recent events of a wallet watch
wallet_watch_cancelCancel a wallet watch
audit_log_createCreate a tamper-evident audit log
audit_log_appendAppend an entry to an audit log
audit_log_exportExport an audit log with its integrity check
deal_dispute_reviewAdvisory ruling on a notarized deal (dispute review)
operator_verify_startStart verifying the domain behind an agent
operator_verify_checkCheck and issue the verified-operator badge
agent_register_preparePrepare an agent's ERC-8004 registration (free)
agent_register_publishHost the agent's files and build its ERC-8004 registration transaction
x402_service_searchFind a paid API for a task (ranked x402 services)
x402_provider_reportEverything measured about one x402 provider
x402_monitor_createMonitor an x402 provider for 30 days (signed webhooks)
x402_monitor_statusStatus and recent alerts of a provider monitor
x402_monitor_cancelCancel a provider monitor
x402_provider_claimClaim your provider listing (free)

Schemas: /v1/tools. Aptos guide: /aptos.

Supported EVM chains

ChainchainidNative
Ethereum1ETH
Base8453ETH
Arbitrum One42161ETH
OP Mainnet10ETH
Polygon PoS137POL
BNB Chain56BNB
Avalanche C-Chain43114AVAX
Linea59144ETH
Scroll534352ETH
zkSync Era324ETH
Gnosis100xDAI
Blast81457ETH
Mantle5000MNT
Celo42220CELO

https://logicnodes.io