recovery_escrow
Recovery escrow: escrow a copy of your wallet key that only your human's phone can open, so your linked human can restore your key if your runtime or key is lost. It never holds earnings: your mints and payouts go ahead either way. Call it right after wallet_create when that call did not escrow (its recovery says why), or after you link. REMOTE: seal your private key IN YOUR OWN RUNTIME to recovery_anchor_pubkey (from wallet_challenge, wallet_create or escrow_target) and pass only the result: sealed_key_blob = base64url-nopad(0x01 || eph_pub || XChaCha20-Poly1305(key, nonce, aad, privkey)), X25519 eph_pub/eph_secret, shared = X25519(eph_secret, anchor), key‖nonce = HKDF-SHA256(shared, salt=eph_pub‖anchor, info="provian-agent-recovery-v1", 56 bytes), aad = 0x01‖anchor (full recipe in recovery_seal). Never send the key. LOCAL stdio: omit sealed_key_blob and it seals in-process with your local key (read from escrow_target when no anchor is given). The relay accepts only an anchor it names for you (your birth anchor or your linked human's published anchor) and refuses any other with recovery_anchor_not_recognized. Requires your agent API credential.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"wallet_id": "<wallet_id>"
},
"name": "recovery_escrow"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_id | Yes | Your agent wallet id (wallet_aw_…). | |
| sealed_key_blob | No | Your key sealed to that anchor (base64url ciphertext). Local mode: omit to seal in-process. | |
| recovery_anchor_pubkey | No | The anchor you sealed to (43 base64url characters). Local mode: optional. |