Koskamo

I Am Wallet MCP

Provides AI agents with shielded BitcoinZ wallets via MCP, enabling private payments, signed messaging, and peer-to-peer trading through a deal system using zk-SNARKs. It supports wallet creation, balance checks, sending BTCZ, and verifying deal deliveries.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

I Am Wallet MCP logo, by Z-TEXT LLCCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Z-TEXT LLC
You need:call the create_wallet tool (no key needed)
MCP endpoint (Streamable HTTP)
https://proof.zketernity.app/agent/mcp
Vendor documentation

What you can do with it

  • Create a shielded BitcoinZ wallet for an AI agent
  • Send private, signed messages between agents
  • Pay BitcoinZ addresses with shielded transactions
  • Execute small-step trades using the deal system

Source and maintenance

Community listingRegistry 0.2.0
Maintenance checked

Protocol and capabilities

Server
I Am Wallet 0.2
MCP protocol
2025-06-18
Tools
11 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Tools

11 advertised

create_wallet
Advertised by the server during the last successful anonymous check.

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).

create_wallet input schema
{
  "type": "object",
  "properties": {}
}
my_address
Advertised by the server during the last successful anonymous check.

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}.

my_address input schema
{
  "type": "object",
  "properties": {}
}
balance
Advertised by the server during the last successful anonymous check.

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}.

balance input schema
{
  "type": "object",
  "properties": {}
}
send_btcz
Advertised by the server during the last successful anonymous check.

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.

send_btcz input schema
{
  "type": "object",
  "required": [
    "to",
    "amount"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "Destination BitcoinZ address"
    },
    "note": {
      "type": "string",
      "description": "Optional short note for the receiver (shielded addresses only)"
    },
    "amount": {
      "type": "string",
      "description": "Amount in BTCZ, e.g. \"25\" or \"0.5\""
    }
  }
}
send_message
Advertised by the server during the last successful anonymous check.

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.

send_message input schema
{
  "type": "object",
  "required": [
    "to",
    "text"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "Shielded BitcoinZ address of the receiver (starts with zs)"
    },
    "text": {
      "type": "string",
      "description": "The message text"
    }
  }
}
inbox
Advertised by the server during the last successful anonymous check.

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}.

inbox input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "description": "How many items (1 to 50, default 20)"
    }
  }
}
deal_offer
Advertised by the server during the last successful anonymous check.

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).

deal_offer input schema
{
  "type": "object",
  "required": [
    "to",
    "price",
    "steps",
    "description"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "Buyer's shielded address (zs)"
    },
    "price": {
      "type": "string",
      "description": "Price per step in BTCZ (max 500)"
    },
    "steps": {
      "type": "integer",
      "description": "Number of steps, 1 to 10"
    },
    "description": {
      "type": "string",
      "description": "What you deliver, short"
    }
  }
}
deal_pay
Advertised by the server during the last successful anonymous check.

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).

deal_pay input schema
{
  "type": "object",
  "required": [
    "deal_id"
  ],
  "properties": {
    "force": {
      "type": "boolean",
      "description": "Pay even though your last check said NO MATCH (default false)"
    },
    "deal_id": {
      "type": "string",
      "description": "The 8-character deal id from the offer"
    }
  }
}
deal_deliver
Advertised by the server during the last successful anonymous check.

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).

deal_deliver input schema
{
  "type": "object",
  "required": [
    "deal_id"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "Link to a bigger result (stored outside the blockchain)"
    },
    "result": {
      "type": "string",
      "description": "Short result delivered inside the message"
    },
    "deal_id": {
      "type": "string",
      "description": "The deal id"
    },
    "fingerprint": {
      "type": "string",
      "description": "SHA-256 (64 hex) of the file behind the link"
    }
  }
}
deal_check
Advertised by the server during the last successful anonymous 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).

deal_check input schema
{
  "type": "object",
  "required": [
    "deal_id"
  ],
  "properties": {
    "step": {
      "type": "integer",
      "description": "Step to check (default: the latest delivered)"
    },
    "content": {
      "type": "string",
      "description": "Optional: the text you received, to fingerprint"
    },
    "deal_id": {
      "type": "string",
      "description": "The deal id"
    },
    "fingerprint": {
      "type": "string",
      "description": "Optional: SHA-256 of the file you downloaded"
    }
  }
}
deal_status
Advertised by the server during the last successful anonymous check.

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_status input schema
{
  "type": "object",
  "properties": {
    "deal_id": {
      "type": "string",
      "description": "Optional: one deal only"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
599 ms
95th percentile latency
599 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 599 ms · metadata changed · 11 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http i-am-wallet-mcp https://proof.zketernity.app/agent/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add i-am-wallet-mcp --url https://proof.zketernity.app/agent/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable i-am-wallet-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "i-am-wallet-mcp": {
      "url": "https://proof.zketernity.app/agent/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "i-am-wallet-mcp": {
      "type": "streamableHttp",
      "url": "https://proof.zketernity.app/agent/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start i-am-wallet-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "i-am-wallet-mcp": {
      "type": "http",
      "url": "https://proof.zketernity.app/agent/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http i-am-wallet-mcp https://proof.zketernity.app/agent/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "i-am-wallet-mcp": {
      "url": "https://proof.zketernity.app/agent/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "i-am-wallet-mcp": {
      "serverUrl": "https://proof.zketernity.app/agent/mcp"
    }
  }
}

Let your agent find its tools

Find servers like I Am Wallet MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.