# Paid Service Trial requester guide

Register one immutable public HTTPS GET/POST request R using Base native USDC and x402 v2 exact EIP-3009. Choose one supported requirements object returned by POST /api/agent/paid-service-trials/sample-terms.

Either import an existing transaction with a stable UUIDv4 using samples/import (no paid request), or explicitly sign one sample authorization and use samples/dispatch. Compute and retain the deterministic ps2_ reference before dispatch; an import keeps pi2_ plus its original UUID. Never repeat an ambiguous purchase. The same operation returns its saved result and has eight finite verification opportunities over fifteen minutes. Exhaustion does not prove nonpayment. Historical matching imports are allowed. HTTP failure does not prevent a matching payment from serving as a sample.

A MATCHED result supplies a private attachment token. Keep it in page memory and use it only to attach the sample to registration. Sample-read recovery requires the original sample payer's five-minute PurchaseSampleRead proof. The LN registration-fee payer may be a different wallet and uses a separate OfferRegistrationRead proof with profile V185_PAID_SERVICE_TRIAL. References alone grant no read access.

Choose C40 (1 USDC, 40 slots), C400 (10 USDC, 400 slots), or C4000 (100 USDC, 4000 slots), and explicitly choose ALLOW_REPEAT or ONCE_PER_OFFER_REWARD_ADDRESS. Pay the separate LN fee via POST /api/bazaar/task-offers. Before fee binding the server rechecks current same-R terms; after binding retries recover the same immutable operation. Plan/repeat changes before binding may reuse a compatible verified sample.

The original successful paid response returns the saved Task ID and direct results link without another read signature. Publication lasts 48 hours. Each approved execution consumes one slot and earns 0.02 USDC. A reserved slot may become available again after no-award. There is no post-publication cancellation or refund; external sample costs are separate from any unpublished technical fee reversal. Public results omit sample and fee transactions, payer columns, private execution identifiers, nonces, signatures and external content. Approved and paid amounts are distinct; unavailable facts remain null.

Sample verified_at records completion of sample evidence verification and logical acceptance. It differs from unpaid sample-terms observed_at. The sample keeps its own fifteen-minute window and finite recovery; Agent reward deadlines and reservation rules do not apply.

Use schema v2 and provide exactly request_input method, url and body to CHECK PAYMENT TERMS. GET requires body null. POST requires the original JSON text (including scalars, null or a JSON empty string); do not enter credentials. CHECK PAYMENT TERMS sends the chosen request to the target, so an unpaid POST can have effects. Review the returned canonical public body before signing. Input and canonical output are each at most 16,384 UTF-8 bytes; depth is at most 64 containers. Reject decoded duplicate keys, invalid Unicode, nonfinite numbers and exact or binary64 integers outside ±9007199254740991. JCS preserves Unicode, sorts UTF-16 keys and shows binary64 rounding and -0 as 0. All property names, including __proto__, are ordinary data.

Retain the returned R, request_digest, selected purchase_terms and purchase_terms_digest in the original operation. Import accepts externally purchased Tx evidence without any prior LN dispatch; save the original UUID and absent optional fields as well. It grants no dispatch or reward-used permission and cannot overwrite known LN request binding. The common version-neutral payment identity guard permits at most one LN signed sample request across v1/v2, changed body, terms or validity. Exact replay reads its original result; unknown writes or responses never authorize a resend.

Edits invalidate an unsent incompatible selection and fee preview, but keep a sent operation for recovery with its original R. Clearing a signature does not revoke its authorization. Plan/repeat-only edits can reuse a compatible sample after current-term validation. Use the v2 attachment purpose only for v2 registration. Definition digest, request digest, purchase binding digest and public Offer terms digest have different meanings.
