pay · git:20261015.d9df5f4 · 2026-10-15 · sha256 daae94e450c447cb

pay git:20261015.d9df5f4A

Immutable. This exact content never changes and is served at /api/v1/blob/daae94e450c447cb.

---
name: pay
description: Pay one external payment requirement within exact parent authority, through a payment method the payer holds, and read the paid resource back.
---

# Pay

`pay` is the buyer contract. `settle` pays the exact requirement once, and
`readback` performs one observation of that durable payment and the resource it
paid for. The default `pay` runner composes both and requires immediate terminal
readback, while durable callers compose `settle` once and re-enter `readback`
through Runx's external-job scheduler.

The payment method is a connector the payer holds. Today that is `wallet/evm`:
an x402 V2 challenge on an HTTPS resource, paid from the payer's EVM wallet in
USDC on Base. Other methods join as connectors when they are implemented.

Runx Hosted owns challenge validation, authority attenuation and reservation,
wallet credentials, payload signing, settlement recovery, finality, and the
private ledger. The connector never sleeps or polls; durable continuation
cadence belongs to Runx scheduling. `pay` never buys a runx paid skill: a
paid skill is bought by running it, and the kernel asks its buyer for that
purchase itself.

## Operator guide

Use this skill for one exact HTTPS resource already named by a hosted wallet
grant. The resource request carries bounded inline control data or artifact
references; large documents and media never travel as oversized graph values.
The hosted payer accepts external x402 V2 only, signs and stages the payload
before the paid POST, and reuses those exact bytes after an uncertain response.

Stop on malformed or expired requirements, amount, currency, payee or resource
drift, incomplete authority, missing approval, or inconsistent paid-resource
readback. Never pass wallet keys, seed phrases, bearer tokens, or facilitator
credentials in skill input. A 2xx response is not finality: a complete readback
needs the transaction confirmed on chain and a 2xx answer from the resource. It
never waits on the resource's own product state.

Use `charge` to take a payment as the seller, `refund` to reverse one, and
`settle-invoice` when an invoice needs validating before it is paid.