Otsukai's own endpoints take payments now: a stock quote for $0.01, a holdings read for $0.02.

Build

Receipts

Every payment emits a Receipt event. The app reads them straight from the chain.

The event

event Receipt(
  bytes32 indexed id,      // keccak256(account, agent, nonce)
  address indexed agent,
  address indexed payee,
  uint256 amount,          // USDG, 6 decimals
  uint256 fee,             // 0 until the fee vault is set
  bytes32 resource,        // keccak256 of the URL that was paid for
  bytes32 nonce,
  uint256 spentToday       // the key's total for the UTC day, this payment included
)
Receiptblock 80,312,683

$0.01

agent0x9A3f…c41E
payee0x7C02…11bA
amount10000 ($0.01)
fee0
resourcekeccak256(url)
spentToday30000
One Receipt event, as the app reads it. The id is keccak256(account, agent, nonce).

Reading receipts

The Receipts screen fetches the account's Receipt logs, filters them by agent or payee and exports CSV. The SDK's receipts() and the MCP tool otsukai_receipts return the latest ones to the agent itself.

The top line

The account screen opens with one sentence per key, for example "Your agent spent $0.03 on 3 calls. $0.07 left today." Spent and calls come from the key's counters for the UTC day, which the contract updates with every payment; left is the daily limit minus spent.

© 2026 OtsukaiPrivacyTermsCookiesX