issue_receipt
Sign an artifact with an Ed25519 receipt. Returns the receipt JSON: artifact hash, agent, task, amount and a signature anyone can verify offline.
task必填agent必填key_pathamount_ggartifact_b64artifact_nameartifact_pathartifact_text
io.github.ecstatica由 GitHub 帳號 ecstatica 發布v1.1.0更新於 Oct 30, 2026
Ed25519 receipts over work artifacts: issue and verify offline, no account, no chain, no network.
簽發與驗證 Ed25519 收據,把代理、任務和檔案綁在一起,任何人都能離線確認產物未被更動。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.ecstatica%2Fggbank-receipt/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"receipt-sign-an-agent-s-work-verify-it-o": {
"type": "http",
"url": "https://receipt.whirlwindcorp.com/mcp"
}
}
}Sign the work your agent did. Let anyone verify it offline.
A receipt binds an agent, a task and a file with an Ed25519 signature. Verification needs no account, no chain, no network and no permission from us. Change one character of the file or one field of the receipt, and verification fails.
This is the smallest useful thing in the agent economy: the payment rails arrived before the proof rails. x402 passed 138 million payments while most agent jobs remain unfunded and unevaluated by anyone independent.
No dependency beyond cryptography. Python 3.10+.
Send the receipt with the file. The buyer runs one command and knows the file is the one that agent produced and has not changed since.
Proves: this key signed this artifact hash with these fields at this time, and nothing has changed since.
Does not prove: that the work is good, or that the key belongs to a particular human. Quality is a separate judgement; identity is a separate claim.
mcp_server.py speaks JSON-RPC over stdio — the protocol Claude Code, Cursor, Codex, Hermes and most agent
frameworks already speak. Two tools: issue_receipt, verify_receipt. No network, no dependencies beyond
cryptography.
Verified round trip: issue_receipt → verify_receipt returns ok: true; change the amount and it returns
ok: false, reason: "signature: InvalidSignature".
Canonical JSON (sorted keys, no whitespace) is signed, so the signed bytes are reproducible in any language. Money fields are decimal strings, never floats.
MIT.
來源:README.md,提交 a0266f2
Sign an artifact with an Ed25519 receipt. Returns the receipt JSON: artifact hash, agent, task, amount and a signature anyone can verify offline.
task必填agent必填key_pathamount_ggartifact_b64artifact_nameartifact_pathartifact_textVerify a receipt offline: signature, every field, and optionally the artifact hash. Returns ok=false with the failing reason when anything has changed.
receipt必填artifact_b64artifact_pathartifact_text已滿足適用檢查項的 90%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
請在儲存庫或註冊中心條目中宣告授權條款。
git clone https://github.com/ecstatica/ggbank-receiptcd ggbank-receiptpython3 -m pip install --user cryptography# 1. your agent's key (Ed25519, private key mode 0600)python3 receipt.py keygen --out ~/.agent.key
# 2. sign a receipt over the artifact the agent deliveredpython3 receipt.py issue \ --key ~/.agent.key \ --artifact report.pdf \ --task q-1042 \ --agent VOID-9 \ --amount 25 \ --out q-1042.receipt.json
# 3. anyone can verify it, offlinepython3 receipt.py verify --receipt q-1042.receipt.json --artifact report.pdfOK signature valid · issuer QRs56MmYfzwtOAih…OK artifact matches 04002a7e5527bbad… deliver · VOID-9 · task q-1042 · 25.0 GG · 2026-10-25T11:56:24Z{"mcpServers": {"receipt": {"command": "python3", "args": ["/abs/path/mcp_server.py"]}}}{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"issue_receipt", "arguments":{"artifact_path":"/tmp/report.pdf","agent":"VOID-9","task":"q-1042","amount_gg":25}}}→ {"ok": true, "receipt": {...}}{ "spec": "ggbank.receipt/1", "verb": "deliver", "agent": "VOID-9", "task": "q-1042", "artifact": {"name": "report.pdf", "sha256": "04002a7e…", "bytes": 18422}, "amount_gg": "25.000000", "fee_gg": "0.125000", "issued_at": "2026-10-25T11:56:24Z", "issuer": "<base64 public key>", "nonce": "…", "signature": "<base64>"}python3 receipt.py verify --receipt tampered.json # FAIL signature: InvalidSignaturepython3 receipt.py verify --receipt good.json --artifact edited.pdf # FAIL artifact: hash mismatch