# Support Gateway

Optional contribution to Gateway Information Group. No product, report, access, ranking, priority or service is purchased. Never tip without wallet-owner authorization.

Availability: accepting tip quotes. No Gateway minimum or maximum. USDC supports positive amounts in 0.000001-unit increments. Token uint256 representation, balance and provider acceptance still apply.

POST https://gateway-wallet-payments.jerryrnapier.workers.dev/api/agent/v1/tips with JSON {"amount":"1.00"}.

Generate a random 32-byte capability as 64 lowercase hex characters; use Authorization: Bearer and retain privately. Idempotency-Key 16–128 alphanumeric, underscore or hyphen. Never send keys or recovery words.

POST /api/agent/v1/tips only reserves a quote. POST its paymentUrl without a signature for the exact x402 v2 challenge. Sign only after checking amount, recipient, network and explicit owner authorization; submit once using PAYMENT-SIGNATURE.

Retain capability, idempotency key and returned quote/job. On uncertain payment poll the same statusUrl; never create another payment to recover. Settled receipts remain accessible when new tips are disabled.

Confirmation requires independent finalized-chain evidence, not provider acceptance. Until then poll status without resubmitting. Retrieve resultUrl with the same capability. This is a private contribution receipt, not a report or tax receipt. Receipt retention 30 days.

Shared service admission limits apply, including 20 payment attempts per day and 5 per IP per day. Respect Retry-After. These limit request frequency, not tip amounts. Discovery never signs, settles or generates.

## Operator records

After finalized confirmation, save the private JSON result for your operator. It records the beneficiary, exact USDC amount, development purpose, network, transaction reference and no recurring commitment. Browser checkout offers Save receipt as JSON. Records are unsigned; no Offer & Receipt extension or charitable tax receipt is claimed. Earlier stored receipts retain their original format.

## Integration

OpenAPI: https://gateway-wallet-payments.jerryrnapier.workers.dev/openapi.json

Dependency-free helper: https://gateway-wallet-payments.jerryrnapier.workers.dev/agent/gateway-client.mjs

Use createGatewayClient().tip with an explicit owner budget and policy.allowVoluntaryTip=true. Persist newSession() privately before signing. Implement signPayment with your compatible x402 v2 wallet adapter. The helper never holds wallet keys or grants spending permission.

## Quote-only example

This creates an unpaid quote, not a transfer. Generate the capability locally; do not copy example credentials.

```js
const capability = crypto.getRandomValues(new Uint8Array(32));
const token = Array.from(capability, b => b.toString(16).padStart(2, "0")).join("");
const quote = await fetch("https://gateway-wallet-payments.jerryrnapier.workers.dev/api/agent/v1/tips", {
  method: "POST", redirect: "error",
  headers: {"Content-Type": "application/json", Authorization: "Bearer " + token, "Idempotency-Key": crypto.randomUUID()},
  body: JSON.stringify({amount: "1.00"})
});
if (!quote.ok) throw new Error("Quote unavailable: " + quote.status);
// Save token and returned receipt privately. No wallet was called.
```

## Error handling

400 invalid decimal or unsupported input; 401 missing/invalid capability; 404 inaccessible receipt; 409 changed idempotent request; 410 expired quote; 429 rate limit; 503 unavailable/recovery not ready. Never treat any error as permission to create a replacement payment after signing.

## MCP and runnable examples

Connect a Streamable HTTP client to https://gateway-wallet-payments.jerryrnapier.workers.dev/agent-tools. Tools: get_tip_terms (free), prepare_tip_quote (unpaid only), get_tip_receipt (private status or result). No signing or payment-submission tool is exposed. Generate a private 32-byte capability locally and persist it before quoting; configure Authorization: Bearer as a private client header, never a tool argument. A wallet adapter remains necessary to sign through the separate payment client. Generic clients without configurable headers can read terms but cannot access private quotes.

JavaScript and Python examples: https://gateway-wallet-payments.jerryrnapier.workers.dev/agent/examples/README.md. Default mode creates only an unpaid quote. Payment requires explicit owner policy and a configured signing adapter.

## Optional Bot Garden

After finalized confirmation, separately opt in to one anonymous flower at https://gateway-wallet-payments.jerryrnapier.workers.dev/api/agent/v1/garden. POST with the original private Bearer capability and JSON {jobId,publish:true}; DELETE with {jobId} withdraws. One anonymous flower per confirmed tip. No wallet, name or amount published. Keep the capability to withdraw after receipt expiry. GET is public and free. Garden counts represent opted-in contributions, not unique people or AI identities.

Funding brief: https://gatewayinformationgroup.com/tip/funding.json

Operator guide: https://gatewayinformationgroup.com/tip/operator-guide.md

Free checklist: https://gatewayinformationgroup.com/tip/checklist.md

## Discovery scope

This is a durable quote-first workflow. Public descriptions do not expose customer payment URLs or credentials. Bazaar/x402scan indexing and generic one-call payment wrappers are not claimed. No cookies, account signup or browser interaction are required for the API.
