A signed, timestamped read from Base mainnet: whether a transaction landed and in which bl
A signed, timestamped read from Base mainnet: whether a transaction landed and in which block, an address's ETH and USDC balance, or the current block height and gas price. Use the tx query when you paid over x402, received settlement_pending, and need it resolved — the transaction is in a block with status 1, or it is not. Read through a commercial node, not the public RPC. Verify with soren.com/oracle-key.json
10000 (raw units)
price
2
calls / 30d
1
unique payers
2026-08-26
updated
Provider
soren.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xaDc3A47EFbD82Ed724a0E9A3D08D5A1A8e6586fd",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 120
},
{
"scheme": "exact",
"network": "base",
"payTo": "0xaDc3A47EFbD82Ed724a0E9A3D08D5A1A8e6586fd",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 120
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"address": "0xaDc3A47EFbD82Ed724a0E9A3D08D5A1A8e6586fd",
"hash": "0x731e0553663993c778025a6df7ce5a7e8b0b8f0b2a2ced3782802c54d230b757",
"q": "tx"
},
"type": "http"
},
"output": {
"example": {
"provenance": {
"observed_at": "<ISO-8601 UTC>",
"signature": {
"algorithm": "Ed25519",
"value": "<base64>"
},
"upstream_sha256": "<hex>"
},
"source": {
"name": "Base mainnet (via Coinbase Developer Platform Node)"
},
"value": {
"block_number": "<int>",
"confirmed": true,
"found": true,
"gas_used": "<int>",
"query": "tx",
"status": "success"
}
},
"type": "json"
}
},
"routeTemplate": "/v1/oracle/onchain",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"address": {
"description": "With q=balance, the address to read.",
"examples": [
"0xaDc3A47EFbD82Ed724a0E9A3D08D5A1A8e6586fd"
],
"type": "string"
},
"hash": {
"description": "With q=tx, the 32-byte transaction hash.",
"examples": [
"0x731e0553663993c778025a6df7ce5a7e8b0b8f0b2a2ced3782802c54d230b757"
],
"type": "string"
},
"q": {
"description": "tx, balance or block.",
"examples": [
"tx"
],
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
}
}
}
}
}Use it
curl
curl "https://soren.com/v1/oracle/onchain" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://soren.com/v1/oracle/onchain");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://soren.com/v1/oracle/onchain")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/9083.json, and this resource appears in /discovery/resources and /discovery/search.