logicnodes-io Payments and verification API
The Payments and verification API from logicnodes-io — 4 operation(s) for payments and verification.
The Payments and verification API from logicnodes-io — 4 operation(s) for payments and verification.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/logicnodes-io:logicnodes-io-payments-and-verification-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: LogicNodes Payments and verification API
version: 1.0.0
description: 'Blockchain and finance tools AI agents can trust: exact answers or typed errors, never a plausible guess. 40+ tools for EVM chains and Aptos (balances, token amounts, transaction status and receipts, contract and calldata decoding, payment verification, gas on 14 chains), exact finance math, and ERC-8004 agent reputation. Every answer carries a receipt timestamped into Bitcoin. Free tier; pay per call in USDC via x402 on 13 networks, no API key.'
x-guidance: 'How to use LogicNodes: 1) GET /v1/tools lists every tool with its JSON Schema. 2) POST /v1/tools/<name> with a JSON body, e.g. POST /v1/tools/evm_balance {"chain":"eip155:8453","address":"0x..."} or POST /v1/tools/token_amount_convert {"chain":"eip155:8453","asset":"<token address>","amount":"1.5","direction":"toBase"}. 3) Read "ok": true with "value", or "ok": false with a typed error: INVALID_INPUT (fix the field named), AMBIGUOUS_INPUT (pick one of the options listed and call again), NOT_FOUND, UPSTREAM_ERROR (retry). Chains are CAIP-2 ids (eip155:8453 Base, eip155:1 Ethereum, aptos:1); names like "base" are refused. Amounts are decimal strings, never floats. Pricing: free tools are unlimited; priced tools are free for 25 calls per day per IP, then the same URL returns 402 with x402 terms (USDC on Base, Solana, Polygon, Arbitrum and more: /v1/payments/methods); pay and retry. A failed call is never charged. MCP: /mcp/v2. Full guide: /agent-guide.'
contact:
email: denneyconner5@gmail.com
servers:
- url: https://logicnodes.io
tags:
- name: Payments and verification
paths:
/paid/v1/tools/payment_verify:
post:
summary: Verify a token payment from a receipt ($0.002 per call)
description: Given a transaction hash, lists the ERC-20 transfers in its receipt and, if you give expectations (payee, asset, amount, payer), says whether a successful transaction contains a matching transfer. Use it to check an x402 or other USDC payment. A match proves tokens moved; it does not prove what the payment was for.
operationId: paid_payment_verify
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
chain:
type: string
description: EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
hash:
type: string
payTo:
type: string
description: 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
asset:
type: string
description: 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
amount:
description: base units
type: string
pattern: ^(0|[1-9][0-9]{0,77})$
payer:
type: string
description: 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
required:
- chain
- hash
additionalProperties: false
example:
chain: eip155:8453
hash: '0x600accdbbdaca7bcabef7f9e6a0777d0d22b5fd8188585db0c0d77ee2e7d34d9'
payTo: '0x78845031f7bCA8fB9F3Ac0cc86678Ef8cE33Ea0e'
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
amount: '1000'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'400':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'402':
description: 'Payment Required: terms are in the base64 PAYMENT-REQUIRED response header'
'404':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'422':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'501':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'502':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'503':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
tags:
- Payments and verification
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.002'
protocols:
- x402: {}
x-logicnodes:
asset: USDC
scheme: exact
methods: https://logicnodes.io/v1/payments/methods
terms: base64 PAYMENT-REQUIRED response header
/paid/v1/tools/random_from_block:
post:
summary: Verifiable randomness from a finalized block ($0.002 per call)
description: Deterministic, publicly recomputable random integers derived from a FINALIZED block hash and a salt. Refuses a block that is not yet final. Not secret and not for cases where the salt can be chosen after seeing the block.
operationId: paid_random_from_block
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
chain:
type: string
description: EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
block:
type: string
salt:
type: string
minLength: 1
maxLength: 200
count:
type: integer
minimum: 1
maximum: 100
max:
type: integer
minimum: 2
maximum: 1000000
required:
- chain
- block
- salt
- count
- max
additionalProperties: false
example:
chain: eip155:8453
block: '52952713'
salt: demo
count: 3
max: 6
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'400':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'402':
description: 'Payment Required: terms are in the base64 PAYMENT-REQUIRED response header'
'404':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'422':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'501':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'502':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'503':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
tags:
- Payments and verification
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.002'
protocols:
- x402: {}
x-logicnodes:
asset: USDC
scheme: exact
methods: https://logicnodes.io/v1/payments/methods
terms: base64 PAYMENT-REQUIRED response header
/paid/v1/tools/evm_spend_report:
post:
summary: Wallet token spend report (CSV) ($0.005 per call)
description: Every transfer of one ERC-20 token out of (or into) a wallet across a block range of up to 20,000 blocks, with exact amounts, per-counterparty totals, per-UTC-day totals, and an accounting CSV. Reads public chain data only. The range is queried in full 2000-block pieces and the report refuses (rather than truncates) when more than 2000 transfers match.
operationId: paid_evm_spend_report
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
chain:
type: string
wallet:
type: string
token:
type: string
fromBlock:
type: string
toBlock:
type: string
direction:
type: string
enum:
- out
- in
required:
- chain
- wallet
- token
- fromBlock
- toBlock
additionalProperties: false
example:
chain: eip155:8453
wallet: '0x78845031f7bCA8fB9F3Ac0cc86678Ef8cE33Ea0e'
token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
fromBlock: '52952700'
toBlock: '52952720'
direction: in
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'400':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'402':
description: 'Payment Required: terms are in the base64 PAYMENT-REQUIRED response header'
'404':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'422':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'501':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'502':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'503':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
tags:
- Payments and verification
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.005'
protocols:
- x402: {}
x-logicnodes:
asset: USDC
scheme: exact
methods: https://logicnodes.io/v1/payments/methods
terms: base64 PAYMENT-REQUIRED response header
/paid/v1/tools/x402_settlement_verify:
post:
summary: Did this agent really pay me? (x402 settlement check) ($0.002 per call)
description: 'For sellers taking x402 or other stablecoin payments: give the network, the settlement transaction (EVM hash or Solana signature) and your payout address, and optionally the asset, minimum amount (base units) and payer. Reads the chain itself and answers verdict "paid", "not_paid" (failed, or no matching transfer to you) or "unknown" (not found yet), with every token transfer it saw. Networks: eip155:84532, eip155:8453, eip155:1, eip155:137, eip155:42161, eip155:10, eip155:43114, eip155:1329, eip155:130, eip155:146, eip155:480, eip155:5042, eip155:999, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1. A match proves tokens reached you; it does not prove what they were for.'
operationId: paid_x402_settlement_verify
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
network:
type: string
description: 'CAIP-2 id, one of: eip155:84532, eip155:8453, eip155:1, eip155:137, eip155:42161, eip155:10, eip155:43114, eip155:1329, eip155:130, eip155:146, eip155:480, eip155:5042, eip155:999, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1'
tx:
type: string
description: EVM transaction hash (0x + 64 hex) or Solana transaction signature (base58)
payTo:
type: string
description: your payout address (EVM 0x... or Solana base58)
asset:
description: token contract (EVM) or mint (Solana) you expect; omit to accept any token
type: string
amount:
description: 'minimum amount in base units (USDC: 1 USD = 1000000)'
type: string
pattern: ^(0|[1-9][0-9]{0,77})$
payer:
description: the address you expect the payment from
type: string
required:
- network
- tx
- payTo
additionalProperties: false
example:
network: eip155:8453
tx: '0x600accdbbdaca7bcabef7f9e6a0777d0d22b5fd8188585db0c0d77ee2e7d34d9'
payTo: '0x78845031f7bCA8fB9F3Ac0cc86678Ef8cE33Ea0e'
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
amount: '1000'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'400':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'402':
description: 'Payment Required: terms are in the base64 PAYMENT-REQUIRED response header'
'404':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'422':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'501':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'502':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'503':
description: Error. Same ToolResponse shape with ok:false and a typed error.code
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
tags:
- Payments and verification
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.002'
protocols:
- x402: {}
x-logicnodes:
asset: USDC
scheme: exact
methods: https://logicnodes.io/v1/payments/methods
terms: base64 PAYMENT-REQUIRED response header
components:
schemas:
ToolResponse:
type: object
properties:
tool:
type: string
ok:
type: boolean
value:
description: present when ok
error:
type: object
properties:
code:
type: string
enum:
- INVALID_INPUT
- AMBIGUOUS_INPUT
- UNSUPPORTED_CHAIN
- UNSUPPORTED_CAPABILITY
- NOT_FOUND
- STALE_DATA
- NO_DATA
- UPSTREAM_ERROR
message:
type: string
field:
type: string
options:
type: array
items: {}
required:
- code
- message
provenance:
type: object
description: source, CAIP-2 chain, ledger position, fetchedAt
receipt:
type: object
properties:
version:
type: integer
algorithm:
type: string
tool:
type: string
digest:
type: string
required:
- tool
- ok
- receipt