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 分