{"standard":"AMH","version":"0 (draft)","issued_by":"AstraNL (KvK 88449335)","what":"Mandate Handshake for platform MCP servers: verify an agent's mandate before a consequential action; seal the outcome after.","why":"MCP has no principal-authorization or post-execution evidence layer.","custody":"none - AstraNL never executes, pays or holds funds","fee":0,"flow":["POST /api/amh/register {name, mcp_url, contact} -> platform_id + api_key","POST /api/amh/mandate {agent_id, principal, max_commit_cents, valid_until, ...} -> mandate_id (principal side)","POST /api/amh/verify {mandate_id, action, amount_cents, currency, payload_hash} header X-AMH-Key -> ok + verify_ref","POST /api/amh/seal {verify_ref, outcome, external_ref, evidence, settlement_ref} -> attestation_id","GET  /api/amh/status/{verify_ref}","GET  /api/attest/verify/{attestation_id} (keyless public verifier)"],"actions":["booking.cancel","booking.create","custom","order.cancel","order.modify","order.place","payment.authorize","service.start"],"outcomes":["cancelled","confirmed","delivered","failed","placed","refused"],"clients":{"python":"https://astranl.com/amh/amh_client.py (stdlib only, decorator amh.guard)","node":"https://astranl.com/amh/amh.mjs (Node>=18, zero deps, amh.guard for MCP tool handlers)","note":"copy the file into your server; not yet published to PyPI/npm"},"related":["https://astranl.com/api/aweri","https://astranl.com/api/attest/schemas","https://astranl.com/mcp/tools.json"],"stats":{"platforms":7,"handshakes":6464,"verified_ok":6461,"sealed":14,"honesty":"counts include steward self-tests if any; zero external adopters is valid data"}}