Agentic commerce needs more than a wallet address. An agent needs to discover what it is allowed to do, simulate an action, pay for a service, and receive an auditable result without receiving a human operator’s private key.
The public RP1 stack
Discoverable intents
The AI module exposes capability and account queries plus intent-shaped operations that can wrap bank transfers, DEX swaps, lending, staking, stablecoin actions, oracle reads, and UTA flows. The capability query is the source of truth for what a network instance exposes; an agent should not assume that every action is enabled everywhere.
The safe execution pattern is:
- Query capabilities and account state.
- Build an intent with explicit asset, amount, recipient, and minimum-output constraints.
- Simulate or validate the intent.
- Ask a wallet or signer to approve the exact transaction.
- Observe the committed result and retain the receipt.
Native MPP charges
RP1 V1 implements a narrow, native Machine Payments Protocol-style charge rail:
service creates charge
↓
gateway reads PaymentChallenge
↓
gateway returns an off-chain HTTP 402 challenge
↓
agent pays MsgPayCharge
↓
RP1 transfers native coins atomically
↓
gateway verifies the charge and returns the service responseThe on-chain part carries the charge ID, native amount and denom, recipient, chain ID, RP1 prefix, expiry, and optional body digest. HTTP 402 response handling, gateway credential parsing, webhooks, Stripe PaymentIntents, and MCP transport stay off-chain. This is a deliberate boundary, not an incomplete Stripe integration.
Scripted and delegated workflows
Velocity provides a script and intent-oriented boundary for supported Wasm and bridge-related operations, including a Solidity-facing precompile. Vaults V1 provides deterministic share accounting and asynchronous redemption without granting arbitrary agent execution permissions. Together these surfaces can support future policy-controlled automation, but V1 does not connect vault capital directly to DEX, lending, leverage, cross-chain execution, or arbitrary contracts.
What an agent should never do
- Assume a capability exists because a module exists in the source tree.
- Treat an HTTP 402 response as proof of on-chain payment.
- Reuse a charge after expiry, cancellation, or payment.
- Send a transaction without binding amount, denom, recipient, chain ID, and charge ID.
- Hold a user’s mnemonic or private key in a hosted tool server.
- Mark a payment complete before matching the committed receipt.