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 9 Oct 2026, 11:27 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.04 / 1.00 USDC

  • market-research0.10 / 10.00 USDC

  • archive-research0.00 / 0.005 USDC

Balance8.91 USDC

Activity

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

Agent activity3 paid · 1 awaiting settlement · 4 refused · 0.03 USDC spent
  1. Refused 0.97 USDC

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

    verify ↗
  2. Refused 0.01 USDC

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

    verify ↗
  3. Refused 0.01 USDC

    Payee isn't on the allowed list · to unlisted address 0x063f…bc1C

    verify ↗
  4. Refused 1.50 USDC

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

    verify ↗
  5. Authorized 0.01 USDC, awaiting settlement

    to Yunshu demo quote API · task market-research

    verify ↗
  6. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  7. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  8. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
Agent activity1 paid · 2 released · 0.01 USDC spent
  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 ↗
Operator changes2 rule changes
  1. Daily budget: 1.00 → 1.00 USDC

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

    verify ↗
Agent activity1 refused
  1. Refused 0.01 USDC

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

    verify ↗
Operator changes2 rule changes
  1. Daily budget: 1.00 → 1.00 USDC

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

    verify ↗
Agent activity1 paid · 0.01 USDC spent
  1. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
Older activity (7)
Operator changesresumed
  1. Agent resumed by the operator

    verify ↗
Agent activity1 refused
  1. Refused 0.01 USDC

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

    verify ↗
Operator changes2 rule changes · paused
  1. Agent paused by the operator

    verify ↗
  2. Daily budget: 1.00 → 1.00 USDC

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

    verify ↗
Agent activity1 refused
  1. Refused 0.01 USDC

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

    verify ↗
Operator changes2 rule changes
  1. Daily budget: 1.00 → 1.00 USDC

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

    verify ↗
Agent activity4 paid · 2 awaiting settlement · 4 refused · 0.04 USDC spent
  1. Refused 0.95 USDC

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

    verify ↗
  2. Refused 0.01 USDC

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

    verify ↗
  3. Refused 0.01 USDC

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

    verify ↗
  4. Refused 1.50 USDC

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

    verify ↗
  5. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  6. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  7. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  8. Paid 0.01 USDC

    to Yunshu demo quote API · task market-research

    verify ↗
  9. Authorized 0.01 USDC, awaiting settlement

    to Yunshu demo quote API · task market-research

    verify ↗
  10. Authorized 0.01 USDC, awaiting settlement

    to Yunshu demo quote API · task market-research

    verify ↗
Operator changes3 rule changes
  1. Task budget archive-research: 0.00 → 0.005 USDC

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

    verify ↗
  3. 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