pub struct X402V2PaymentPayload {
pub accepted: X402V2PaymentRequirements,
pub extensions: Map<String, Value>,
pub payload: X402v2PaymentPayloadPayload,
pub resource: Option<X402ResourceInfo>,
pub x402_version: X402Version,
}Expand description
The x402 v2 protocol payment payload. Uses CAIP-2 network identifiers. The accepted field carries the full payment requirements; scheme and network are not top-level fields (they are on the nested accepted object).
JSON schema
{
"title": "x402V2PaymentPayload",
"description": "The x402 v2 protocol payment payload. Uses CAIP-2 network identifiers. The `accepted` field carries the full payment requirements; `scheme` and `network` are not top-level fields (they are on the nested `accepted` object).",
"examples": [
{
"accepted": {
"amount": "1000",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:84532",
"payTo": "0x122F8Fcaf2152420445Aa424E1D8C0306935B5c9",
"scheme": "exact"
},
"payload": {
"authorization": {
"from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"nonce": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"to": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"validAfter": "1716150000",
"validBefore": "1716150000",
"value": "1000000000000000000"
},
"signature": "0xf3746613c2d920b5fdabc0856f2aeb2d4f88ee6037b8cc5d04a71a4462f134801234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b"
},
"resource": {
"description": "Premium API access for data analysis.",
"mimeType": "application/json",
"url": "https://api.example.com/premium/resource/123"
},
"x402Version": 2
}
],
"type": "object",
"required": [
"accepted",
"payload",
"x402Version"
],
"properties": {
"accepted": {
"$ref": "#/components/schemas/x402V2PaymentRequirements"
},
"extensions": {
"description": "Optional protocol extensions.",
"examples": [
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"type": "http"
}
},
"schema": {}
}
}
],
"type": "object",
"additionalProperties": true
},
"payload": {
"description": "The payload of the payment depending on the x402Version, scheme, and network. Discriminated by scheme-specific fields: exact-EVM/upto-EVM payloads carry a `signature`; exact-Solana carries a `transaction`; batch-settlement carries a `type` discriminator. See `x402BatchSettlementEvmPayload` for the documented batch-settlement variants.",
"examples": [
{
"authorization": {
"from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"nonce": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"to": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"validAfter": "1716150000",
"validBefore": "1716150000",
"value": "1000000000000000000"
},
"signature": "0xf3746613c2d920b5fdabc0856f2aeb2d4f88ee6037b8cc5d04a71a4462f134801234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b"
}
],
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/x402ExactEvmPayload"
},
{
"$ref": "#/components/schemas/x402ExactEvmPermit2Payload"
},
{
"$ref": "#/components/schemas/x402ExactSolanaPayload"
},
{
"$ref": "#/components/schemas/x402UptoEvmPermit2Payload"
},
{
"$ref": "#/components/schemas/x402BatchSettlementEvmPayload"
}
]
},
"resource": {
"$ref": "#/components/schemas/x402ResourceInfo"
},
"x402Version": {
"description": "The x402 protocol version. Must be `2` for this payload shape.",
"allOf": [
{
"$ref": "#/components/schemas/X402Version"
}
]
}
}
}Fields§
§accepted: X402V2PaymentRequirements§extensions: Map<String, Value>Optional protocol extensions.
payload: X402v2PaymentPayloadPayloadThe payload of the payment depending on the x402Version, scheme, and network. Discriminated by scheme-specific fields: exact-EVM/upto-EVM payloads carry a signature; exact-Solana carries a transaction; batch-settlement carries a type discriminator. See x402BatchSettlementEvmPayload for the documented batch-settlement variants.
resource: Option<X402ResourceInfo>§x402_version: X402VersionThe x402 protocol version. Must be 2 for this payload shape.
Implementations§
Source§impl X402V2PaymentPayload
impl X402V2PaymentPayload
pub fn builder() -> X402V2PaymentPayload
Trait Implementations§
Source§impl Clone for X402V2PaymentPayload
impl Clone for X402V2PaymentPayload
Source§fn clone(&self) -> X402V2PaymentPayload
fn clone(&self) -> X402V2PaymentPayload
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for X402V2PaymentPayload
impl Debug for X402V2PaymentPayload
Source§impl<'de> Deserialize<'de> for X402V2PaymentPayload
impl<'de> Deserialize<'de> for X402V2PaymentPayload
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&X402V2PaymentPayload> for X402V2PaymentPayload
impl From<&X402V2PaymentPayload> for X402V2PaymentPayload
Source§fn from(value: &X402V2PaymentPayload) -> Self
fn from(value: &X402V2PaymentPayload) -> Self
Converts to this type from the input type.
Source§impl From<X402V2PaymentPayload> for X402PaymentPayload
impl From<X402V2PaymentPayload> for X402PaymentPayload
Source§fn from(value: X402V2PaymentPayload) -> Self
fn from(value: X402V2PaymentPayload) -> Self
Converts to this type from the input type.
Source§impl From<X402V2PaymentPayload> for X402V2PaymentPayload
impl From<X402V2PaymentPayload> for X402V2PaymentPayload
Source§fn from(value: X402V2PaymentPayload) -> Self
fn from(value: X402V2PaymentPayload) -> Self
Converts to this type from the input type.
Source§impl Serialize for X402V2PaymentPayload
impl Serialize for X402V2PaymentPayload
Source§impl TryFrom<X402V2PaymentPayload> for X402V2PaymentPayload
impl TryFrom<X402V2PaymentPayload> for X402V2PaymentPayload
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
Source§fn try_from(value: X402V2PaymentPayload) -> Result<Self, ConversionError>
fn try_from(value: X402V2PaymentPayload) -> Result<Self, ConversionError>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for X402V2PaymentPayload
impl RefUnwindSafe for X402V2PaymentPayload
impl Send for X402V2PaymentPayload
impl Sync for X402V2PaymentPayload
impl Unpin for X402V2PaymentPayload
impl UnsafeUnpin for X402V2PaymentPayload
impl UnwindSafe for X402V2PaymentPayload
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more