Yunshu AI

Agent Wallet · Base Sepolia · x402

An agent that pays on its own, and can't overspend

An AI agent gets its own wallet with spending limits written into a smart contract. It pays for API calls by itself. Any payment that breaks a rule is refused before money moves, and every payment and refusal is on a public record anyone can check.

Status: Live on the Base Sepolia test network. Updated 8 Oct 2026, 02:36 UTC; new activity appears here within seconds.

The agent's wallet, live

Read straight from the public blockchain record. Nothing here is mock data. Wallet research-bot-01 contract ↗

Rules

Active
Per payment
1.00 USDC
Per day
1.00 USDC resets 00:00 UTC
Allowed payees
  • Yunshu demo quote API 0xD0cf…E1B6
Task budgets
  • market-research 10.00 USDC
  • archive-research 0.005 USDC

Spending

  • Spent today0.06 / 1.00 USDC

  • market-research0.06 / 10.00 USDC

  • archive-research0.00 / 0.005 USDC

Balance8.94 USDC

Activity

Every payment and refusal, newest first. Each links to its public record on BaseScan.

  1. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  2. Released 0.01 USDC held by an unused authorization

    verify ↗
  3. Released 0.01 USDC held by an unused authorization

    verify ↗
  4. Daily budget: 1.00 → 1.00 USDC

    verify ↗
  5. Per-payment cap: 0.005 → 1.00 USDC

    verify ↗
  6. Refused 0.01 USDC

    Over the per-payment cap · to Yunshu demo quote API · task market-research

    verify ↗
  7. Daily budget: 1.00 → 1.00 USDC

    verify ↗
  8. Per-payment cap: 1.00 → 0.005 USDC

    verify ↗
  9. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  10. Agent resumed by the operator

    verify ↗
  11. Refused 0.01 USDC

    The operator has paused this agent · to Yunshu demo quote API · task market-research

    verify ↗
  12. Agent paused by the operator

    verify ↗
  13. Daily budget: 1.00 → 1.00 USDC

    verify ↗
  14. Per-payment cap: 0.005 → 1.00 USDC

    verify ↗
  15. Refused 0.01 USDC

    Over the per-payment cap · to Yunshu demo quote API · task market-research

    verify ↗
  16. Daily budget: 1.00 → 1.00 USDC

    verify ↗
  17. Per-payment cap: 1.00 → 0.005 USDC

    verify ↗
  18. Refused 0.95 USDC

    Would exceed today's budget · to Yunshu demo quote API

    verify ↗
  19. Refused 0.01 USDC

    Would exceed the task's budget · to Yunshu demo quote API · task archive-research

    verify ↗
  20. Refused 0.01 USDC

    Payee isn't on the allowed list · to unlisted address 0xE5C5…F4B3

    verify ↗
  21. Refused 1.50 USDC

    Over the per-payment cap · to Yunshu demo quote API

    verify ↗
  22. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  23. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  24. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  25. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  26. Authorized 0.01 USDC, awaiting settlement

    to Yunshu demo quote API · task market-research

    verify ↗
  27. Authorized 0.01 USDC, awaiting settlement

    to Yunshu demo quote API · task market-research

    verify ↗
  28. Task budget archive-research: 0.00 → 0.005 USDC

    verify ↗
  29. Task budget market-research: 0.00 → 10.00 USDC

    verify ↗
  30. Payee allowed: Yunshu demo quote API

    verify ↗

How a payment works

  1. 1

    The agent calls a paid API

    The API answers 402 Payment Required with a price, for example 0.01 test USDC, using the open x402 standard.

  2. 2

    The wallet checks the rules

    Before signing, the agent asks its wallet contract to authorise the payment. The contract checks every limit on-chain, where the agent can't get around it.

  3. 3

    Allowed: the payment settles

    The agent signs a standard x402 payment with the wallet as payer. The x402 facilitator settles it in test USDC and the API returns its data.

  4. 4

    Refused: nothing moves

    The contract records the refusal as a public event with its reason. No money moves and the API is never paid.

The rules each agent wallet enforces

The operator sets these. A change applies from the agent's very next payment.

Why a payment can be refused

Every refusal carries exactly one of these reasons, checked in this order.

  1. PAUSEDThe operator has paused this agent.
  2. INVALID_AMOUNTThe amount is zero, or the payment has already expired.
  3. PAYEE_NOT_ALLOWEDThe recipient isn't on the agent's allowed list.
  4. OVER_PER_PAYMENT_CAPThis single payment is above the per-payment cap.
  5. OVER_TASK_BUDGETIt would push the task over its budget.
  6. OVER_DAILY_BUDGETIt would push today's spending over the daily budget.
  7. INSUFFICIENT_FUNDSThe wallet doesn't hold enough USDC.

Built with