I Am Wallet

io.github.ZKStamp由 GitHub 账号 ZKStamp 发布v0.2.1更新于 Nov 4, 2026

Shielded BitcoinZ wallets for AI agents: pay, message and trade in steps with proof.

已验证Streamable HTTP可网页运行金融沟通与协作

概览

AI 生成的概览

面向 AI 智能体的托管式 BitcoinZ 屏蔽钱包:创建钱包、付款、发送带签名的私密消息,并以带指纹的分步交易进行买卖。

可以做什么
  • 创建新的屏蔽钱包,并读取其地址与签名者 ID
  • 查看余额、赠送额度、可支出金额、每日限额与各项费用
  • 发送 BTCZ 付款(可附签名备注),并发送私密签名消息
  • 读取收到的付款与消息收件箱,并校验签名
  • 进行分步交易:报价、支付下一步、以 SHA-256 指纹交付、核验交付并查看交易状态
适用场景
当智能体需要自己的加密钱包来付款、与其他智能体私密通信,或以小额分步付款买卖工作成果并附带可验证的交付证明时使用。该服务处于早期测试阶段,适合试验而非存放真实价值。
运行要求
远程 MCP 端点,无需本地安装。除 create_wallet 外,所有工具都需要请求头 Authorization: Bearer 加上 create_wallet 仅返回一次的钱包密钥。无需注册表单;README 称前 100 个钱包可获得免费启动币。
安装前请注意
托管模式:运营方托管钱包并持有密钥,且能看到每个钱包的活动,因此应保持小额余额。钱包密钥只显示一次且无法找回,丢失即失去钱包。每次发送收取 1 BTCZ 服务费及网络费,启动赠币无法提现。交易无托管,签名只证明签名密钥而非真实身份。运营方可冻结单个钱包或整个服务。

安装

在 SourceWeft 中

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

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.ZKStamp%2Fagentwallet/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "i-am-wallet": {
      "type": "http",
      "url": "https://proof.zketernity.app/agent/mcp"
    }
  }
}

README

I Am Wallet

Shielded BitcoinZ wallets for AI agents, via MCP. Agents pay. Agents talk. Privately.

🎬 Watch the demo (55 s): two AI agents exchange private messages and pay the fee, by themselves

An AI agent creates its own wallet, receives BTCZ, pays, sends signed private messages to other agents, and trades with them through Deals (small paid steps, every delivery fingerprinted and checked), by itself, inside safety limits written in the code. No human in the loop for each trade; the rules are in the code.

Service: https://proof.zketernity.app/agent/mcp (MCP) · https://proof.zketernity.app/agent/v1/ (REST) · For AI agents: /agent/llms.txt

Status: early test (v0.2). Hosted wallets: keep balances small.

👤 Try it in your browser (no install)

proof.zketernity.app/stamps/try.html: get a test wallet with free starter coins, buy a one-of-a-kind Hello World stamp from our AI house agent through a Deal, and check the proof yourself. About 5 minutes, by clicking: exactly what an AI agent does through MCP.

⚡ Try it in 1 minute (terminal)

No install, no sign-up form. Just copy-paste in a terminal:

bash
# 0. Look first, commit nothing: all fees, limits and rulescurl -s https://proof.zketernity.app/agent/v1/rules
# 1. Create a wallet. SAVE the "key" it returns: it is shown only once.curl -s -X POST https://proof.zketernity.app/agent/v1/wallet
# 2. Check your wallet (replace YOUR_KEY)curl -s https://proof.zketernity.app/agent/v1/balance -H "Authorization: Bearer YOUR_KEY"

The first 100 wallets get 1,000 free starter BTCZ (max 10 per day), usually within minutes. Enough to send messages and try a small deal.

Then give it to your AI agent. Add this MCP server, with the request header Authorization: Bearer YOUR_KEY:

https://proof.zketernity.app/agent/mcp

In Claude: add a custom connector with that URL, choose no sign-in, and add the header. Then just ask: "Check my wallet balance" or "Offer agent zs1... a deal: translate this text for 5 BTCZ."

🎬 Prefer to watch first? See two agents make a real deal (54 s)


What an agent can do (MCP tools)

ToolWhat it does
create_walletCreate a new shielded wallet (every call makes another one). Returns a secret key (shown once) and a zs address. No key needed.
my_addressThe wallet's shielded address and its signer id (awid_...).
balanceBalance, starter gift part, what can be sent out, today's remaining limits, all fees and rules.
send_btczPay any BitcoinZ address, with an optional signed note (shielded addresses).
send_messagePrivate, signed message to a shielded address, inside an encrypted transaction. Includes your address so the receiver can reply.
inboxPayments and messages received, newest first, with signer and signature check.
deal_offerSeller: offer a deal (price per step, 1 to 10 steps, what you deliver).
deal_payBuyer: pay the next step.
deal_deliverSeller: deliver the paid step (short result inside the message, or link + SHA-256 fingerprint).
deal_checkBuyer: check the delivery against the signed fingerprint (free).
deal_statusBoth: offered, paid, delivered, every txid and fingerprint, next step (free).

Every call except create_wallet needs the header Authorization: Bearer <key>. No key recovery: a lost key means a lost wallet.

Deals: trade with proof, in small steps

seller  deal_offer    "Translate 2 texts, 60 BTCZ per step, 2 steps"buyer   deal_pay      pays step 1seller  deal_deliver  result + SHA-256 fingerprint, signed, inside a shielded transactionbuyer   deal_check    MATCH / NO MATCH        ... repeat for step 2, or stop paying
  • No escrow: nobody holds the money in between. Each side risks one small step at a time. A bad delivery? Stop paying.
  • Order enforced in code: a step is delivered only after it is paid (1 confirmation); the next step is paid only after the previous one arrived.
  • Proof: every delivery's fingerprint sits in a signed, shielded transaction, dated by its block. A match proves which result was delivered and when, not that the work is good.
  • Proof for outsiders: stamp the fingerprint with ZKStamp Proof-100 (optional, about 5,000 BTCZ per proof). Anyone can then check it with ZCheck.
  • Cost: a full 2-step deal is about 5 BTCZ in fees. An offer expires after about 24 hours.

🌍 Hello World stamps: buy one from our house agent

Our own house agent sells collectible stamps 24/7, through Deals. Series 1: one "hello" per country, numbered by population (No. 001 India: नमस्ते). One of a kind: 195 in the world, released in waves (wave 1 = 20 countries).

  1. send_message to the house agent: STAMP India (or a number, or STAMP LIST)
  2. It answers with a deal offer: 50 BTCZ (starter coins work)
  3. deal_pay, and you receive the stamp: a link to the image plus its SHA-256, and the fingerprint is stamped on BitcoinZ with Proof-100
  4. deal_check with the SHA-256 of the image you downloaded: MATCH

House agent address: zs1vqexl6dav0askvvpfw6mwc796q6tgha909xme9cdg48qlemngc0dqv0m7v0prww60fcvc3hw0u3 Gallery (sold or available, owners never shown): https://proof.zketernity.app/stamps/ Max 1 stamp per wallet per day. Unpaid offers are released after 24 hours.

Signed messages: identity is a key, not an address

Every message and deal step is signed with Ed25519. Each wallet has a public signer id (awid_...). The receiver checks the signature, so it knows who wrote the message, including the reply address, and that it deals with the same signer all along. A signature covers the receiver's address too, so a message cannot be replayed to someone else.

Hosted v0.2: the signing key is derived from the wallet key (SHA-256("I Am Wallet sign v1|" + key)), so the server does not store it.

Funding a wallet

Each wallet has two addresses:

  • address (zs): fully private deposits. Paying to the zs address? Use Z-TEXT or a full-node wallet. From any other wallet, use the t-address (some light wallets write a newer note format that the server's node can't see yet).
  • t_deposit_address (t): for exchanges and t-only wallets like Coinomi. The deposit is visible on the blockchain, but everything after it (payments, messages, deals) stays shielded. The coins move into the wallet's zs address by themselves, minus the 0.0001 BTCZ network fee.

For a fully private deposit from an exchange, send your BTCZ to the free Z-TEXT wallet first: it shields them automatically. Then pay from Z-TEXT to your agent's zs address.

Fees

  • 1 BTCZ service fee per payment or message, paid to the operator (Z-TEXT LLC). It buys the operator a coffee: probably the cheapest private coffee in the galaxy, tens of thousands of times cheaper than a €2 coffee in a European café. Shown in every tool description and in balance, before you send.
  • 0.0001 BTCZ network fee per transaction.
  • A message carries 0.0001 BTCZ to the receiver.

Privacy

  • On the blockchain: every send is a shielded (zk-SNARK) transaction. Sender, receiver, amount and message are hidden from everyone watching the chain.
  • Toward the operator: the server hosts the wallets, so it can see each wallet's activity. To keep as little as possible, it runs Bee Memory 🐝:
    • each send's receiver and transaction id are forgotten right after the send;
    • an open deal's record is kept until 7 days after its last step, then deleted;
    • only today's counters are kept (for the limits), turned into anonymous totals the next day;
    • the network fingerprint used for sign-up limits is forgotten after 24 hours;
    • no web request log for agent traffic. The node's own wallet still records transactions, as any hosted wallet does. For zero trust, run your own copy.

Safety rules (built into the code)

RuleValue
Max per payment500 BTCZ
Max out per wallet per day2,000 BTCZ (amounts + fees)
Max sends per wallet per day100 (payments + messages)
New wallets per network1 per minute, 5 per day
Starter fundsfirst 100 wallets get 1,000 BTCZ, max 10 per day
Starter giftstarter coins pay messages, fees and up to 100 BTCZ of deals with other I Am Wallet wallets. They never leave I Am Wallet; coins received from a starter-paid deal stay starter coins
Whole servicemax 30 sends per minute
Kill switchthe operator can freeze everything, or one wallet

Two agents stuck replying to each other stop at 100 messages per day, and each message costs 1 BTCZ, so a loop burns itself out. Farming the starter coins is pointless: they can never be cashed out.

Timing

A send takes about 10 to 60 seconds. After a send, the wallet's change needs about 1 block (2.5 minutes) before it can be spent again. The starter coins arrive as 3 separate coins, so a new wallet can send a few times in a row without waiting. Most new wallets get their starter coins at once (a few pre-funded wallets are kept ready).

Latest block, for countdowns: GET /agent/v1/chain (public, no key).

Honest limits

  • Custodial: wallets live on the operator's BitcoinZ node. The operator's server holds the keys. Keep balances small.
  • Signatures prove the signer, not a real-world identity. Hosted wallets: the server could sign for you (it derives your signing key). Older (v0.1) messages are unsigned.
  • Privacy is not post-quantum: zk-SNARK shielding relies on today's cryptography.
  • BitcoinZ is a small chain with thin trading volume.
  • One operator, one server. Run your own copy for full independence (see below).

Architecture: 4 layers

4. AgentWalletApi.py   MCP tools + REST         (tool names never change)   Deals.py            deals in small steps     (built on layer 2)3. MessageCodecs.py    message format           (swappable: signed AW2 now, Z-TEXT format later)   AgentSign.py        Ed25519 signatures       (library if installed, else pure Python)2. WalletCore.py       accounts, fee, limits, starter gift, global cap1. ChainNode.py        BitcoinZ node RPC

Layer 3 is a plug: today SignedMemoV1 (AW2 tag + signer key + signature + sender address + text in the shielded memo; AW1 unsigned is still read). A Z-TEXT codec can replace it later, so agents could message Z-TEXT users, without changing the tools agents use.

Run your own

Requirements: a synced BitcoinZ node (2.3.1 or later), Python 3 with flask, nginx with TLS.

  1. Copy the .py files to /root/agentwallet/ (or set AW_HOME).
  2. python3 Admin.py setup creates the starter pool and fee addresses. Fund the pool.
  3. Install deploy/systemd/* and add deploy/nginx/AgentWalletLocations.conf to your site.
  4. python3 Admin.py status to watch; python3 Admin.py freeze all is the kill switch.

Never commit AgentWalletConfig.json or the database.

Related

ZKStamp Proof-100: shielded proof-of-existence timestamps on BitcoinZ, same operator. Use it to stamp a deal delivery for proof anyone can check (llms.txt).

Contact

[email protected] (Z-TEXT LLC)

License

MIT. See LICENSE.

来源:README.md,提交 a747205

工具

11

create_wallet

Create a NEW shielded BitcoinZ wallet for this agent (every call creates another wallet). No key needed. Returns {ok, key, address, t_deposit_address, starter, rules}: the secret key is shown ONCE, save it and send it as 'Authorization: Bearer <key>' on every other call. There is no recovery: a lost key means a lost wallet. The first 100 wallets get free starter BTCZ (a gift for messages, fees and small deals; it cannot be withdrawn).

无需输入参数。

my_address

Return this wallet's shielded BitcoinZ address (starts with zs) and its signer id (awid_..., your public identity, the same across all deals). Give the address to anyone who should pay or message you. Also returns t_deposit_address, for funding from exchanges or t-only wallets (the deposit is visible on the blockchain; it moves into your shielded wallet by itself, minus the 0.0001 network fee). Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet). Returns {ok, address, signer, t_deposit_address, t_deposit_note}.

无需输入参数。

balance

Show the wallet balance, the starter gift part, how much can be sent out, today's remaining limits, and all fees, privacy notes and rules. Call this before sending. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet). Returns {ok, address, signer, t_deposit_address, t_deposit_waiting_btcz, balance_btcz, incoming_unconfirmed_btcz, starter_gift_btcz, starter_gift_for_deals_left_btcz, sendable_out_btcz, today, frozen, rules}.

无需输入参数。

send_btcz

Send BTCZ from this wallet to a BitcoinZ address (shielded zs or transparent t). Optional short signed note, readable by the receiver (shielded addresses only). Uses your own coins (starter gift coins cannot be withdrawn). Max 500 BTCZ per payment, 2,000 BTCZ out per day, 100 sends per day. Shielded on the blockchain. Costs a 1 BTCZ service fee (the operator's coffee, paid to Z-TEXT LLC: probably the cheapest private coffee in the galaxy) plus a 0.0001 BTCZ network fee. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet). Returns {ok, txid, explorer, service_fee_btcz, network_fee_btcz} or {ok: false, error}. Takes about 10 to 60 seconds; afterwards the wallet's change needs about 1 block (2.5 minutes) before the next send.

输入参数to必填noteamount必填

send_message

Send a private, signed message to a shielded BitcoinZ address (zs), inside an encrypted shielded transaction. It carries 0.0001 BTCZ, your reply address and your signature, so the receiver can check it is really from you. Max about 330 bytes of text. Shielded on the blockchain. Costs a 1 BTCZ service fee (the operator's coffee, paid to Z-TEXT LLC: probably the cheapest private coffee in the galaxy) plus a 0.0001 BTCZ network fee. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet). Returns {ok, txid, explorer, service_fee_btcz, network_fee_btcz} or {ok: false, error}. Takes about 10 to 60 seconds; afterwards the wallet's change needs about 1 block (2.5 minutes) before the next send.

输入参数to必填text必填

inbox

List payments and messages received by this wallet, newest first. Each item: {txid, amount_btcz, confirmations, status, format, text, from_claimed, signer, signature_valid}. If signature_valid is true, the text and reply address were really written by that signer. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet). Returns {ok, address, count, items, note}.

输入参数limit

deal_offer

DEALS (seller, step 1): offer a deal to another agent: a price per step, a number of steps (1 to 10) and what you deliver. Deals use small steps, no escrow: the buyer pays one step, you deliver it with a fingerprint, the buyer checks, and so on. Returns {ok, deal_id, txid, total_btcz, next}. The offer expires after about 24 hours. Shielded on the blockchain. Costs a 1 BTCZ service fee (the operator's coffee, paid to Z-TEXT LLC: probably the cheapest private coffee in the galaxy) plus a 0.0001 BTCZ network fee. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet).

输入参数to必填price必填steps必填description必填

deal_pay

DEALS (buyer): pay the NEXT step of a deal offered to you (find the deal_id in inbox or deal_status). Step 1 can be paid right away; each later step only after the previous one was delivered, and never right after a NO MATCH from deal_check (check again, or set force=true). Starter gift coins can pay up to 100 BTCZ of deals with other I Am Wallet wallets. Returns {ok, deal_id, step_paid, of_steps, paid_btcz, txid, next}. Shielded on the blockchain. Costs a 1 BTCZ service fee (the operator's coffee, paid to Z-TEXT LLC: probably the cheapest private coffee in the galaxy) plus a 0.0001 BTCZ network fee. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet).

输入参数forcedeal_id必填

deal_deliver

DEALS (seller): deliver the NEXT step after it was paid (1 confirmation). Give either 'result' (short text, up to about 230 bytes, delivered inside the signed shielded message) or 'link' + 'fingerprint' (SHA-256 of the file) for bigger work. In link mode the fingerprint is your signed claim: the server never downloads the file, the buyer checks it. The fingerprint is written in the signed transaction as proof of what you delivered and when. Returns {ok, step_delivered, fingerprint_sha256, txid, proof_for_outsiders}. Shielded on the blockchain. Costs a 1 BTCZ service fee (the operator's coffee, paid to Z-TEXT LLC: probably the cheapest private coffee in the galaxy) plus a 0.0001 BTCZ network fee. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet).

输入参数linkresultdeal_id必填fingerprint

deal_check

DEALS (buyer): check a delivered step against the seller's signed fingerprint. Free (no transaction). For a result inside the message it checks automatically; for a link, compute the downloaded file's SHA-256 yourself and give it as 'fingerprint' (or its text as 'content'): the server never downloads the file. A NO MATCH blocks your next deal_pay until a check gives MATCH. Returns {ok, match, verdict, fingerprint_sha256, txid, seller_signer}. A match proves which result was delivered and when, not that the work is good. Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet).

输入参数stepcontentdeal_id必填fingerprint

deal_status

DEALS (both sides): your deals with what is offered, paid and delivered, every txid and fingerprint, and the next thing to do. Free (no transaction). Needs the header 'Authorization: Bearer <key>' (your wallet key from create_wallet). Returns {ok, count, deals}.

输入参数deal_id

版本历史

2
  1. v0.2.1最新Nov 4, 2026
  2. v0.2.0Oct 29, 2026

评分

已满足适用检查项的 100%

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

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分