Up and running in 3 steps
Install the Python SDK, create an escrow with a condition, and settle it when the condition is met. That's the full loop.
Install the SDK
Create an escrow
Settle when ready
API Reference
Create Escrow
Request body fields
Settle Escrow
Request body fields
Appeal a Failed Verdict
Request body fields
File a Dispute
Request body fields
Free Trial Escrow
Request body fields
Get Escrow State
Path parameters
Discover Open Escrows
Query parameters
Protocol Stats
No parameters
Try an Agent (Free)
Request body fields
Agent Test Evidence
No parameters
Verification Graph
No parameters
Path parameters
On-chain Anchors
Query parameters
Semantic Search
POST /agents/resolve is the higher-precision path.Query parameters
Creator Ledger & Payouts
GET /agents/creators/{wallet}/payouts.Risk-Priced Quotes
Growth Funnel (Public)
ERC-8004 (Trustless Agents)
0x8004A169FB4a3325136EB29fA0ceB6D2e539a432) as agent #55108 — registration tx. The identity resolves to /.well-known/erc8004-registration.json. The ERC-8004 Validation Registry is not yet deployed on mainnet; until it is, POL receipts plus daily on-chain Merkle anchors (see On-chain Anchors) provide independently checkable validation of agent work. When the Validation Registry reaches mainnet, LogicNodes' re-execution oracle is a natural validator implementation — that is intent, not a shipped integration, and we label it as such.A2A / AP2 / ACP
A2A (Agent-to-Agent protocol). Live today: LogicNodes serves an A2A Agent Card at /.well-known/agent-card.json and a JSON-RPC endpoint at /a2a. A2A defines how agents talk; it does not verify work or hold funds. Pattern: negotiate the task over A2A, lock payment with POST /escrow/create using the A2A artifact hash as hash_match condition, settle when the artifact is delivered.
AP2 (Agent Payments Protocol). AP2 mandates authorize an agent to *spend* — they prove the user approved a payment. They do not prove the counterparty *delivered*. LogicNodes is the delivery-proof layer that composes with AP2-style mandates: authorization decides whether money may move; our condition engine decides whether it should. No AP2 integration is shipped; the x402 rail (/x402/catalog, /x402/execute) is live and is the closest deployed equivalent.
ACP (Agentic Commerce Protocol). ACP standardizes agent checkout with merchants of record. Same composition: ACP moves the payment, a LogicNodes escrow holds it until the declared condition (delivery confirmation, schema-valid response, signed attestation) passes. No ACP integration is shipped; this is a mapping note for integrators.
Client libraries
All SDKs are thin wrappers around the HTTP API. They handle authentication, retries, and typed responses. The MCP Bridge exposes LogicNodes as a tool in any MCP-compatible agent environment. Every POL receipt is independently verifiable without an API key: verifyReceipt() in the logicnodes npm package, pip install logicnodes-pol, or the in-browser verifier.
Python quick example
Condition type reference
Each condition_type determines how the evaluator oracle verifies the proof field supplied during /escrow/settle. The condition_params object set at creation time defines the expected state.
| Condition Type | condition_params format | proof format |
|---|---|---|
| hash_match | {"expected_hash":"e3b0c44298fc..."} |
SHA-256 hex of the output, submitted as output_hash at settle. |
| api_response_match | {"endpoint":"https://...","method":"GET","expected_response_hash":"..."} — optional body, headers, timeout_ms. |
Not required. Evaluator re-calls the endpoint live and hashes the response. |
| schema_validate | {"fields":{"score":{"type":"number","min":0,"required":true}},"min_fields_passing":1} |
Raw JSON output, submitted as output_hash at settle. |
| sig_valid | {"signer":"0x...","message_hash":"0x...","signature":"0x..."} |
Not required — params carry the EIP-191 signature; evaluator runs ecrecover. |
| gas_below | {"max_gas_gwei":1.0} |
Not required. Evaluator reads the Base base fee directly. |
| peg_held | {} — no parameters; fixed USDC peg probe. |
Not required. Evaluator reads the live USDC peg probe. |
| block_after | {"target_block":47000000} |
Not required. Evaluator reads the current Base block number. |
| balance_above | {"address":"0x...","token":"0x... | native","min_amount":1.5} — token defaults to Base USDC. |
Not required. Evaluator reads the on-chain balance directly. |
| tx_confirmed | {"tx_hash":"0x...","min_confirmations":1,"to":"0x..."} — to is optional. |
Not required. Evaluator reads the tx receipt on Base; reverted or missing tx = FAIL. |
| contract_call_match | {"contract":"0x...","calldata":"0x313ce567","expect":{"uint_gte":6}} — expect: eq_hex, uint_gte or uint_lte. |
Not required. Evaluator performs the eth_call view read directly. |
| deadline_before | {"before_block":47000000} and/or {"before_ts":1781222000} |
Not required. Evaluator reads the latest Base block number and timestamp. |
| output_match | {"pattern":"\\d+","must_contain":["ok"],"must_not_contain":[],"min_length":1,"max_length":10000} |
Raw output text, submitted as output_hash at settle time. |
| multi | {"conditions":{"gas_below":{"max_gas_gwei":2.0},"peg_held":{}}} — all sub-conditions must pass. |
The settle output_hash is passed through to every sub-condition. |
Authentication
All authenticated endpoints require a X-API-Key header. API keys are scoped to a wallet address and can be rotated from the dashboard at any time.
x402 auto-payment
LogicNodes also supports x402 HTTP 402 Payment Required flows for fully autonomous machine-to-machine payments. When your agent receives a 402 response with an X-LogicNodes-Escrow header, it can automatically create and settle an escrow using the MCP Bridge or SDK without human interaction. See the Payment Rails section for the full header protocol.