Obolus

io.github.inviti8由 GitHub 账号 inviti8 发布v0.2.3更新于 Oct 24, 2026

Disposable Algorand wallet for AI agents. Pay x402 resources in USDC, no human provisioning.

概览

AI 生成的概览

为 AI 代理提供一个一次性 Algorand 钱包,使其无需人工准备即可用 USDC 支付 x402 资源。

可以做什么
Obolus 是 x402 付费资源的买方钱包。它提供三个工具:x402_fetch 抓取 URL,若对方返回 402 则签名并从短期会话账户付款,然后返回响应正文;wallet_status 报告余额、当前会话、当日支出和各项上限;wallet_funding_info 说明人工如何向金库充值。付款来自由金库注资的会话账户,因此会话只能花掉自己持有的金额。
适用场景
当代理需要自主购买受 x402 保护的内容或服务时使用,例如付费 API 调用、存证或文件处理,并且希望支出由链上强制的会话余额而非提示词来限制。它面向必须在无人介入下完成付款的代理。
运行要求
以 stdio 启动的本地进程,通常通过 uvx obolus mcp 或已安装的 obolus-mcp 命令运行;需要 uv 或 pipx 等 Python 工具。环境变量:OBOLUS_NETWORK(默认 'testnet',或 'mainnet')和 OBOLUS_DATA_DIR(存放金库密钥和会话账本的位置)。充值需要向金库发送 ALGO,并在选择加入该资产后发送 USDC。未声明账户或 API 密钥。
安装前请注意
主网会花真钱且从不被禁用,尽管默认是测试网。OBOLUS_DATA_DIR 中的种子是取回资金的唯一途径;将其指向新目录会创建新钱包,请备份该目录。支出限制位于 config.toml(session_balance_micro、per_call_micro、daily_micro、allowlist),这才是真正的边界,因为授权是按工具而非按笔付款。除非设置 [files] root,否则文件访问关闭;开启后 x402_fetch 可把文件发送到付费端点并写回响应。已结算的付款只能证明结算本身。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Obolus,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Obolus]

Obolus

An MCP server that gives an AI agent a disposable Algorand wallet, so it can pay for x402 resources without a human provisioning anything.

The name is the coin paid to the ferryman for passage: small denomination, one purpose, spent and gone.

agent → x402_fetch(url) → 402 → sign → pay → body

x402 has over a thousand listed resources and almost no buyers — a handful of wallets account for nearly all volume, and they are scripted loops rather than agents. The rail exists; nothing can reach it. Obolus is the buyer-side piece: account setup, opt-in, signing and sweeping handled invisibly, so an agent just spends.


Install

Claude Code — the plugin

/plugin marketplace add inviti8/Obolus/plugin install obolus@heavymeta

Wires up the MCP server and adds /obolus:fund-wallet, which knows the bootstrap order and why it cannot be rearranged. Nothing to install first beyond uv — the server is launched with uvx obolus mcp.

Everything else

bash
uv tool install obolus

uv tool install rather than uvx for the CLI: uvx re-resolves on every invocation, measured at 200–400 ms over an installed console script. That is nothing once per session, which is all the MCP server costs — it is why the plugin above uses uvx — but it is the wrong trade for a command called in a loop. pipx install obolus works too.

Add it to Claude Code by hand
bash
claude mcp add obolus -e OBOLUS_NETWORK=testnet -- obolus-mcp
Add it to any other MCP client
json
{  "mcpServers": {    "obolus": {      "command": "obolus-mcp",      "env": { "OBOLUS_NETWORK": "testnet" }    }  }}

It starts on testnet. Mainnet is never disabled — Obolus is meant to make real payments — but it is never what you get by forgetting to choose.


Fund it

A new vault holds nothing, and the order is forced by the chain:

bash
obolus vault          # says which of the three steps you are onobolus vault qr       # scannable codes for the two things you can send
#StepWho
1Send ≥ 0.21 ALGO to the vaultyou
2Opt the vault into USDC (obolus vault optin)Obolus
3Send USDCyou

Step 3 before step 2 fails. An Algorand account cannot receive an asset it has not opted into — the transfer is rejected outright, it does not sit pending. That is why the QR codes encode the asset id and not just the address, and why wallet_funding_info tells you which step you are on every time rather than only on error.

The QR codes carry no amount. You type that into your own wallet, where you see it before confirming.


Use it

Three tools, deliberately:

ToolWhat it does
x402_fetchFetch a URL, paying if it answers 402. Returns the body.
wallet_statusBalances, the active session, spending today, the caps.
wallet_funding_infoHow to put money in. For the human, not the agent.

There is no tool for any particular merchant. Everything is reached through x402_fetch, because the moment a wallet grows first-class verbs for one seller it stops being a wallet.


What bounds a loss

The session balance, enforced by the chain. Payments come from a short-lived session account funded from your vault, never from the vault itself. A session cannot spend what it does not hold, and that is true regardless of what any code here does.

Everything else is in-process and configurable in config.toml inside your data directory:

toml
[caps]session_balance_micro = 5000000   # $5 per sessionper_call_micro        = 500000    # $0.50 per calldaily_micro           = 2000000   # $2 a day, resets 00:00 UTCallowlist             = []        # payTo addresses or hostnames; empty = any
[session]idle_timeout_seconds  = 600       # close and sweep back after this
[files]# root = "/path/you/choose"       # off unless set - see Safety

Some refusals are not caps and have no config key: paying an address we control, a non-https resource on mainnet, an asset the wallet does not hold, and any challenge that is not a well-formed x402 v2 402.


Safety

Your seed is the only way back to your money. It lives in your data directory. Pointing OBOLUS_DATA_DIR at a new location creates a new wallet; it does not move the old one. Back the directory up.

File access is off by default. x402_fetch can send a file to a paid endpoint and write the response back, which is how you get an image signed or a document processed. Both are disabled unless you set [files] root, and confined to that directory when you do. This is deliberate: moving bytes off your machine is not something a spend cap can bound.

Approval is per tool, not per payment. Most MCP clients ask once and remember. That means the caps above are your real spending boundary, not the prompt — see DESIGN.md §7.1, which documents what was measured rather than what was assumed.

A settled payment proves settlement and nothing else — not that the resource was correct, honest, or worth its price.


Documentation

  • CLAUDE.md — orientation, and the x402 facts that cost real debugging time to learn.
  • DESIGN.md — architecture, the security model, and the limitations stated plainly.
  • IMPLEMENTATION_PLAN.md — build order and what each phase actually proved.

Status

Working on mainnet. On 2026-08-13 and 08-14 an agent used Obolus over MCP to buy three resources from a live merchant with real USDC — a notarisation at $0.05, a second at $0.05, and a C2PA signature over a 13 MB TIFF at $0.15. Each payment came from a disposable session account that was derived, funded, spent and swept closed; two sessions, both reconciled, nothing stranded. All three settlements landed with fee: 0, sponsored by the facilitator, as designed.

What that demonstrates is the rail, end to end: an agent with no human in the loop held a key, answered a 402, and got the bytes. It does not say the resources were worth their price — settlement proves settlement and nothing more.

Testnet remains the default and the place to develop. Mainnet is guarded, never disabled.

来源:README.md,提交 c338cb2

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.3最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分