The swap and marketplace skills already produce complete unsigned transaction data immediately before a configured wallet signs it. The repository also ships a production x402 buyer (@opensea/tool-sdk paidFetch). Would you consider an optional Base-only preflight at that boundary?
Exact insertion points
opensea-swaps/SKILL.md: after a quote returns transactionSubmissionData, before the wallet execution step.
opensea-marketplace/references/seaport.md::buyNFT: after fulfillment calldata is encoded, before wallet.sendTransaction.
For chainId == 8453, the skill could call:
const result = await paidFetch(
"https://jarvis-orderflow-router.yl124915300.workers.dev/v1/outcomes/tx-execution-preflight",
{
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
chain: "base",
from: buyerAddress,
to: tx.to,
value: tx.value,
calldata: tx.data,
}),
maxAmount: "8000",
},
);
This is a third-party x402 endpoint priced at $0.008 USDC. It returns a machine-readable PAY, REVIEW, or REJECT outcome with reason codes after point-in-time balance, allowance, nonce, contract-target, eth_call, and gas checks.
Suggested behavior:
- Strictly opt-in and Base-only; no behavior change for other chains.
PAY: continue to the existing wallet execution step.
REVIEW: present reasons and require explicit confirmation.
REJECT: stop before the wallet signs unless the user explicitly overrides.
- Keep the current transaction review/confirmation requirements; this adds evidence and does not replace user approval.
- Document that results are point-in-time and do not guarantee settlement.
Why this may be used rather than merely supported
The current flows execute aggregator or Seaport calldata and already warn callers to verify fulfillment data before signing. The marketplace reference also identifies missing ERC-20 balance/allowance as a common simulation failure. At these two insertion points, the agent has the complete {from,to,value,calldata} and an x402-capable wallet adapter in the same project, so no new payment infrastructure or endpoint discovery is required.
Because this repository is a read-only mirror of an internal monorepo, I am opening a design/feature request rather than assuming an external PR is mergeable. If useful, I can follow up with a small documentation diff scoped to one Base swap path for maintainers to recreate internally.
The swap and marketplace skills already produce complete unsigned transaction data immediately before a configured wallet signs it. The repository also ships a production x402 buyer (
@opensea/tool-sdkpaidFetch). Would you consider an optional Base-only preflight at that boundary?Exact insertion points
opensea-swaps/SKILL.md: after a quote returnstransactionSubmissionData, before the wallet execution step.opensea-marketplace/references/seaport.md::buyNFT: after fulfillment calldata is encoded, beforewallet.sendTransaction.For
chainId == 8453, the skill could call:This is a third-party x402 endpoint priced at $0.008 USDC. It returns a machine-readable
PAY,REVIEW, orREJECToutcome with reason codes after point-in-time balance, allowance, nonce, contract-target,eth_call, and gas checks.Suggested behavior:
PAY: continue to the existing wallet execution step.REVIEW: present reasons and require explicit confirmation.REJECT: stop before the wallet signs unless the user explicitly overrides.Why this may be used rather than merely supported
The current flows execute aggregator or Seaport calldata and already warn callers to verify fulfillment data before signing. The marketplace reference also identifies missing ERC-20 balance/allowance as a common simulation failure. At these two insertion points, the agent has the complete
{from,to,value,calldata}and an x402-capable wallet adapter in the same project, so no new payment infrastructure or endpoint discovery is required.Because this repository is a read-only mirror of an internal monorepo, I am opening a design/feature request rather than assuming an external PR is mergeable. If useful, I can follow up with a small documentation diff scoped to one Base swap path for maintainers to recreate internally.