Card snapshot
obol.danieldutoit.net
·
2026-10-13 16:13:09 UTC
·
35672cea901535b4b279901397cbbeeaf3a2612b1aec2de6bd2acf7f1a1755f3
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "Obol",
"description": "Verified blockchain-data lookups, paid per request with USDC on Base.",
"url": "https://obol.danieldutoit.net",
"version": "0.1.0",
"protocolVersion": "0.3.0",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "base-address-snapshot",
"name": "Base address snapshot",
"description": "Return ETH and canonical Base USDC balances at one observed block with two-provider consistency metadata. Costs 0.001 USDC over x402.",
"tags": [
"base",
"usdc",
"balance",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/base/address-snapshot?address=0x..."
]
},
{
"id": "base-network-status",
"name": "Base network status",
"description": "Return a Base block number, hash, and time reconciled after payment against two pre-probed distinct-operator endpoints. Costs 0.001 USDC over x402 and requires no parameters.",
"tags": [
"base",
"network",
"block",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/base/network-status",
"POST https://obol.danieldutoit.net/v1/base/network-status"
]
},
{
"id": "evm-address-snapshot",
"name": "Multi-chain EVM address snapshot",
"description": "After payment, return a native-currency balance reconciled at one common block against two pre-probed distinct-operator endpoints. Costs 0.001 USDC over x402.",
"tags": [
"evm",
"multi-chain",
"balance",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/evm/address-snapshot?chain_id=10&address=0x..."
]
},
{
"id": "sanctions-address-screening",
"name": "Sanctions address screening",
"description": "Check an exact blockchain address against public-source EU, OFAC, and UK wallet observations. Entity names are omitted. Costs 0.005 USDC over x402.",
"tags": [
"sanctions",
"compliance",
"address",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/sanctions/address-screening?address=0x..."
]
},
{
"id": "kraken-candles",
"name": "Kraken candles",
"description": "Return up to 100 newest historical Kraken OHLCV candles for an exact period/base/quote tuple. Costs 0.001 USDC over x402.",
"tags": [
"kraken",
"ohlcv",
"markets",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/markets/kraken/candles?period=60&base=BTC"e=USD&limit=10"
]
},
{
"id": "latest-btc-usd-candle",
"name": "Latest Kraken BTC/USD candle",
"description": "Return the newest Kraken 60-second BTC/USD OHLCV candle. Costs 0.001 USDC over x402 and requires no parameters.",
"tags": [
"kraken",
"btc-usd",
"ohlcv",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/markets/btc-usd/latest-candle"
]
},
{
"id": "latest-eth-usd-candle",
"name": "Latest Kraken ETH/USD candle",
"description": "Return the newest Kraken 60-second ETH/USD OHLCV candle. Costs 0.001 USDC over x402 and requires no parameters.",
"tags": [
"kraken",
"eth-usd",
"ohlcv",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/markets/eth-usd/latest-candle"
]
},
{
"id": "kraken-orderbook-top",
"name": "Kraken top-of-book snapshot",
"description": "Return the best bid, best ask, and spread percentage for one exact historical timestamp/base/quote key. Costs 0.001 USDC over x402.",
"tags": [
"kraken",
"orderbook",
"markets",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/markets/kraken/orderbook-top?timestamp=1788962867&base=BTC"e=USD"
]
},
{
"id": "multi-exchange-orderbook-top",
"name": "Multi-exchange top-of-book snapshot",
"description": "Return one normalized best bid, best ask, and spread percentage snapshot or exact miss for an exact allowlisted exchange/timestamp/base/quote key. Costs 0.001 USDC over x402.",
"tags": [
"exchanges",
"orderbook",
"markets",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/markets/orderbook-top?exchange=COINBASE×tamp=1788962867&base=BTC"e=USD"
]
},
{
"id": "multi-exchange-candles",
"name": "Multi-exchange candles",
"description": "Return up to 100 newest historical OHLCV candles for an exact exchange/period/base/quote tuple. Costs 0.001 USDC over x402.",
"tags": [
"exchanges",
"ohlcv",
"markets",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/markets/candles?exchange=KRAKEN&period=60&base=BTC"e=USD&limit=10"
]
},
{
"id": "bitcoin-address-cluster",
"name": "Bitcoin address cluster",
"description": "Return one heuristic public-chain cluster assignment for an exact Bitcoin address. Costs 0.003 USDC over x402.",
"tags": [
"bitcoin",
"clustering",
"address",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/bitcoin/address-cluster?address=1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp"
]
},
{
"id": "bitcoin-cash-address-cluster",
"name": "Bitcoin Cash address cluster",
"description": "Return one heuristic public-chain cluster assignment for an exact Bitcoin Cash address. Costs 0.003 USDC over x402.",
"tags": [
"bitcoin-cash",
"clustering",
"address",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/bitcoin-cash/address-cluster?address=1BpEi6DfDAUFd7GtittLSdBeYJvcoaVggu"
]
},
{
"id": "dogecoin-address-cluster",
"name": "Dogecoin address cluster",
"description": "Return one heuristic public-chain cluster assignment for an exact Dogecoin address. Costs 0.003 USDC over x402.",
"tags": [
"dogecoin",
"clustering",
"address",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/dogecoin/address-cluster?address=D5EQRCnPMXmRvUoZwC7gu7fYspean3PQ9a"
]
},
{
"id": "litecoin-address-cluster",
"name": "Litecoin address cluster",
"description": "Return one heuristic public-chain cluster assignment for an exact Litecoin Base58Check address. Costs 0.003 USDC over x402.",
"tags": [
"litecoin",
"clustering",
"address",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/litecoin/address-cluster?address=La11a9B6w6dykTnst5MZAy78DfiAmUVL8G"
]
},
{
"id": "cardano-transaction",
"name": "Cardano transaction",
"description": "Return one bounded Cardano mainnet transaction and its block fields for an exact 64-character hexadecimal hash. Costs 0.003 USDC over x402.",
"tags": [
"cardano",
"transaction",
"block",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/cardano/transaction?hash=a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0"
]
},
{
"id": "cardano-stake-rewards",
"name": "Cardano stake rewards",
"description": "Return up to 100 newest Cardano mainnet stake rewards for an exact stake address, reward type, and earned-epoch range of at most 1,000. Costs 0.003 USDC over x402.",
"tags": [
"cardano",
"staking",
"rewards",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/cardano/stake-rewards?stake_address=stake1uyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqg6jacpu&reward_type=member&earned_epoch_min=1000&earned_epoch_max=2000"
]
},
{
"id": "solana-transaction",
"name": "Solana transaction",
"description": "Return one bounded public Solana mainnet transaction for an exact canonical base58 signature and slot. Costs 0.003 USDC over x402.",
"tags": [
"solana",
"transaction",
"slot",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/solana/transaction?signature=1111111111111111111111111111111111111111111111111111111111111111&slot=42"
]
},
{
"id": "xrp-transaction",
"name": "XRP transaction",
"description": "Return one bounded public XRP mainnet transaction for an exact hash, ledger number, and transaction index. Costs 0.003 USDC over x402.",
"tags": [
"xrp",
"transaction",
"ledger",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/xrp/transaction?transaction_hash=a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0&block_number=103400001&tx_index=7"
]
},
{
"id": "ethereum-address-cluster",
"name": "Ethereum address cluster",
"description": "Return up to 10 newest heuristic public-chain cluster assignments for one exact Ethereum address. Clustering is not proof of ownership or identity. Costs 0.003 USDC over x402.",
"tags": [
"ethereum",
"address",
"clustering",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/ethereum/address-cluster?address=0x00000000000062c6e2195ae26dff3b084c5c3938"
]
},
{
"id": "ethereum-complex-flow",
"name": "Ethereum complex flow",
"description": "Return up to 100 newest public aggregate flow observations for one exact Ethereum address pair, asset, and block range of at most 100,000 blocks. Costs 0.003 USDC over x402.",
"tags": [
"ethereum",
"flow",
"aggregate",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/ethereum/complex-flow?from_address=0x0000000000000000000000000000000000000000&to_address=0x0000000000000000000000000000000000000000&asset=0x0030b738bc1de21c93ca066340f74a952881e0a4&block_number_min=17783798&block_number_max=17883798"
]
},
{
"id": "arbitrum-token-transfers",
"name": "Arbitrum token transfers",
"description": "Return up to 100 newest public Arbitrum token transfers for one exact asset and block range of at most 100,000 blocks. Costs 0.003 USDC over x402.",
"tags": [
"arbitrum",
"token",
"transfers",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/arbitrum/token-transfers?asset=0x0030b738bc1de21c93ca066340f74a952881e0a4&block_number_min=17783798&block_number_max=17883798"
]
},
{
"id": "address-labels",
"name": "Hit-conditional address labels",
"description": "Check exact Ethereum, Bitcoin, or Tron addresses against public-source labels. Misses are free; known hits cost 0.001 USDC over x402.",
"tags": [
"ethereum",
"bitcoin",
"tron",
"labels",
"x402"
],
"examples": [
"GET https://obol.danieldutoit.net/v1/address-labels?chain=ethereum&address=0x..."
]
}
]
}