Skip to content

PaymentIntent

Defined in: src/signer/types.ts:58

A decoded EIP-3009 TransferWithAuthorization intent — never a pre-computed digest (A4, “no blind signing”). An adapter recomputes the EIP-712 digest from these fields plus the trusted pinned domain (name/version resolved from a (token, chainId) config, not from advertised wire data), so the policy can evaluate exactly what will be signed.

The nonce is supplied by the caller (the x402 wiring), not generated here — double-pay protection is M5’s deriveAuthorizationNonce + the token contract’s authorizationState, a separate concern from spend policy.

Properties

chainId

readonly chainId: number

Defined in: src/signer/types.ts:62

EIP-712 domain chainId — pins cross-chain replay.


from

readonly from: `0x${string}`

Defined in: src/signer/types.ts:64

EIP-3009 authorizer; MUST equal the signer’s from.


nonce

readonly nonce: `0x${string}`

Defined in: src/signer/types.ts:74

EIP-3009 32-byte nonce (from M5; supplied by the caller).


to

readonly to: `0x${string}`

Defined in: src/signer/types.ts:66

Recipient.


token

readonly token: `0x${string}`

Defined in: src/signer/types.ts:60

EIP-712 verifyingContract — the JPYC/USDC token contract.


validAfter

readonly validAfter: bigint

Defined in: src/signer/types.ts:70

EIP-3009 window start (unix seconds).


validBefore

readonly validBefore: bigint

Defined in: src/signer/types.ts:72

EIP-3009 window end / expiry (unix seconds).


value

readonly value: bigint

Defined in: src/signer/types.ts:68

Amount, token base units.