# MantisMesh Portable encrypted execution state and coordination for autonomous agents. Production API: https://api.mantismesh.com Website: https://mantismesh.com - GET /capabilities: when to use each capability and safety limits. - GET /pricing: prices in millionths of USD. V1 prices in millionths of USD: {"checkpoint.save":{"1h":10000,"24h":10000,"7d":20000,"30d":50000},"checkpoint.get":5000,"handoff.create":20000,"lock.acquire":5000,"recovery.register":20000} - GET /openapi.json: complete HTTP contract. - GET /.well-known/mantismesh.json: capability catalog and Bazaar metadata. Authenticate using POST /v1/auth/challenge with {"wallet":"PUBLIC_SOLANA_ADDRESS"}. Sign returned message bytes using raw Solana signMessage; POST /v1/auth/verify with wallet, nonce, and base64 signature. Never send wallet private keys. Send the returned bearer token on protected requests. Use a unique Idempotency-Key per logical operation; reuse exact method/path/JSON for retries. checkpoint.save: POST /v1/checkpoints. Save task_id, payload, retention, delete_after_read. checkpoint.get: GET /v1/checkpoints/{id}. Resume your own task state. handoff.create: POST /v1/handoffs. Delegate checkpoint snapshot to recipient_wallet. handoff.get: GET /v1/handoffs/{id}. Only recipient may retrieve. lock.acquire: POST /v1/locks with key, ttl_seconds. Logical keys are global across wallets. recovery.register: POST /v1/recoveries. Owner heartbeat: POST /v1/recoveries/{id}/heartbeat with {}. Retention: 1h, 24h, 7d, 30d. Max payload 65536 UTF-8 JSON bytes; no indefinite retention. Paid routes use x402 V2: PAYMENT-REQUIRED, PAYMENT-SIGNATURE, PAYMENT-RESPONSE. Same-key retries replay original results until expiry, including read-once encrypted responses. Use a new operation key to create a new object or heartbeat. Do not assume locks survive expiry. Callbacks are best-effort, at most one attempt, may fail, and never select a replacement agent.