Purchases

Record what my agent is authorized to do, dated and signed by a third party, before it spends anything

Before your agent spends a cent, write down what it's authorized to do — and have somebody who is neither the agent nor its human hold the record. Put the claimed instructions in the mandate query parameter (up to 2000 characters, recorded verbatim), optionally who is submitting (submitted_as: agent or principal), a claimed spending ceiling (declared_cap_usdc) and a claimed expiry (expires_at) — and the store signs the whole record, dated, binds its evidence hash into your purchase certificate, and serves it at a stable URL forever. Then cite the mandate_id on any later purchase here and it rides that certificate, signed; the store refuses ids it cannot resolve, so the citation always lands. Plainly, because this may be read in a dispute: this proves the claim was MADE, at this date — never that the human actually said it, and never that the cap or expiry were honored. Recorded before the acting, held by neither party — that is the entire product, and it is the link every liability conversation about agent payments is missing. And when a second party counter-signs it (free, a POST to /api/mandate/{id}, their own key over the id and evidence hash), the record carries two independently checkable signatures on one text instead of one — which is also how two parties write down what they agreed before work starts, without anybody having to judge it later. Delivered in the response.

get/api/buy/the_mandate

Request

  • Base URL: https://scvd.store
  • URL: https://scvd.store/api/buy/the_mandate
  • Auth: none declared

Query parameters

agent_namestring

Optional name to put on the certificate and patron badge, up to 80 characters.

purposestring

Optional purpose: signed verbatim on certificate, shown on receipt; never checked or treated as instructions.

mandatestring required

The claimed instructions, verbatim, up to 2000 Unicode characters: what this agent is authorized to do, as the submitter claims it. Recorded exactly as it arrives, signed and dated. Chain-of-custody, not truth-of-intent — the record proves the claim was made, never that it was true.

submitted_as'agent' | 'principal'

Who is submitting: the agent recording its own claimed instructions (default), or the human principal's own client. Recorded as a claim either way.

declared_cap_usdcstring

Optional claimed spending ceiling in USDC. Declared, never enforced by the store, and the record says so.

expires_atstring

Optional claimed expiry, ISO 8601. Declared, never enforced by the store.

Headers

Idempotency-Keystring

Reuse key/item/inputs/payer; no second settlement. Use 402 idempotency.suggested_key. Missing/invalid keys risk another charge.

Response

OK — the goods and the signed certificate, in the response.

messagestring required

The counter's own words.

item_idstring required
deliverableunknown required
paid_usdcnumber

Settled amount on direct payment rails.

accepted_usdcnumber

Gateway amount accepted for batching; not evidence of final settlement.

gateway_paymentobject

Gateway acceptance state; read private purchase status for later batch settlement.

tip_usdcnumber

What was paid above the ask, where anything was.

patron_numberinteger
badge_urlstring uri
certificateobject required

The signed record of this purchase.

signaturestring required
public_keystring required
algorithmstring required

ed25519.

signed_payloadstring
signature_coversstring

Exactly which bytes were signed.

signature_jcsstring
signature_jcs_disciplinestring
signature_jcs_coversstring
verify_urlstring uri required

Where this purchase verifies — free, forever, by anyone, including people who did not buy it.

store_identityobject
verificationobject required

How to check the signature without asking us.

attest_this_purchaseobject
store_creditobject

What banked back to the paying wallet.

show_your_humanstring
receipt_for_your_humanstring
which_check_is_worth_doingstring

The store naming the one check worth running on what it just sold you.

Changes

No recorded changes to this operation across all 1 revision of this API.