Key Custody

Co-sign and relay a prepared 2-of-3 Safe transfer

safe_tx_hash must be a transfer this Safe prepared (and not yet submitted) and device_signature D's signature over it. Needs X-Passkey-Token from a passkey assertion bound to action tss_sign and the SafeTx hash (lowercase hex, no 0x). The vault reads the destination, amount and nonce from the prepared row, recomputes the hash, re-runs the sanctions screen on the destination, checks D's signature and the on-chain nonce, records the send in the spend ledger at its value (so it counts toward daily caps), adds V's signature last, and relays: the owner's server-custody Ethereum treasury wallet (not an owner) pays gas, deploying the Safe through the pinned factory first if needed, then submitting execTransaction. 400 when that wallet lacks gas on the chain; 409 if the nonce moved or the transaction was already submitted. Audited multisig_safe.executed; fires wallet.transfer.sent.

post/v1/treasury/multisig-safes/{safe_id}/execute

Request

  • Base URL: https://api.1claw.co
  • URL: https://api.1claw.co/v1/treasury/multisig-safes/{safe_id}/execute
  • Auth: HTTP bearer

Headers

X-Passkey-Tokenstring required

Request body

safe_tx_hashstring required

Hex SafeTx hash from prepare.

device_signaturestring required

Hex 65-byte recoverable ECDSA signature (r ‖ s ‖ v, low-S, v 0/1 or 27/28) by D over the SafeTx hash.

Response

Relayed

chainstring required
safe_addressstring required
tostring required
value_weistring required
safe_tx_hashstring required
deploy_tx_hashstring nullable

The factory deployment, when this send deployed the Safe.

tx_hashstring required

The relayed execTransaction.

custody'client_multisig' required
relayerstring required

The gas payer (the owner's Ethereum treasury wallet).

Changes

No recorded changes to this operation across all 2 revisions of this API.