pub struct X402PaymentRequirements {
pub asset: X402PaymentRequirementsAsset,
pub description: String,
pub extra: Map<String, Value>,
pub max_amount_required: String,
pub max_timeout_seconds: i64,
pub mime_type: String,
pub network: X402PaymentRequirementsNetwork,
pub output_schema: Map<String, Value>,
pub pay_to: X402PaymentRequirementsPayTo,
pub resource: String,
pub scheme: X402PaymentRequirementsScheme,
}
Expand description
The x402 protocol payment requirements that the resource server expects the client’s payment payload to meet.
JSON schema
{
"description": "The x402 protocol payment requirements that the resource server expects the client's payment payload to meet.",
"type": "object",
"required": [
"asset",
"description",
"maxAmountRequired",
"maxTimeoutSeconds",
"mimeType",
"network",
"payTo",
"resource",
"scheme"
],
"properties": {
"asset": {
"description": "The asset to pay with.\n\nFor EVM networks, the asset will be a 0x-prefixed, checksum EVM address.\n\nFor Solana-based networks, the asset will be a base58-encoded Solana address.",
"examples": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"
},
"description": {
"description": "The description of the resource.",
"examples": [
"Premium API access for data analysis"
],
"type": "string"
},
"extra": {
"description": "The optional additional scheme-specific payment info.",
"examples": [
{
"gasLimit": "1000000"
}
],
"type": "object",
"additionalProperties": true
},
"maxAmountRequired": {
"description": "The maximum amount required to pay for the resource in atomic units of the payment asset.",
"examples": [
"1000000"
],
"type": "string"
},
"maxTimeoutSeconds": {
"description": "The maximum time in seconds for the resource server to respond.",
"examples": [
10
],
"type": "integer"
},
"mimeType": {
"description": "The MIME type of the resource response.",
"examples": [
"application/json"
],
"type": "string"
},
"network": {
"description": "The network of the blockchain to send payment on.",
"examples": [
"base"
],
"type": "string",
"enum": [
"base-sepolia",
"base"
]
},
"outputSchema": {
"description": "The optional JSON schema describing the resource output.",
"examples": [
{
"data": "string"
}
],
"type": "object",
"additionalProperties": true
},
"payTo": {
"description": "The destination to pay value to.\n\nFor EVM networks, payTo will be a 0x-prefixed, checksum EVM address.\n\nFor Solana-based networks, payTo will be a base58-encoded Solana address.",
"examples": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"
},
"resource": {
"description": "The URL of the resource to pay for.",
"examples": [
"https://api.example.com/premium/resource/123"
],
"type": "string"
},
"scheme": {
"description": "The scheme of the payment protocol to use. Currently, the only supported scheme is `exact`.",
"examples": [
"exact"
],
"type": "string",
"enum": [
"exact"
]
}
}
}
Fields§
§asset: X402PaymentRequirementsAsset
The asset to pay with.
For EVM networks, the asset will be a 0x-prefixed, checksum EVM address.
For Solana-based networks, the asset will be a base58-encoded Solana address.
description: String
The description of the resource.
extra: Map<String, Value>
The optional additional scheme-specific payment info.
max_amount_required: String
The maximum amount required to pay for the resource in atomic units of the payment asset.
max_timeout_seconds: i64
The maximum time in seconds for the resource server to respond.
mime_type: String
The MIME type of the resource response.
network: X402PaymentRequirementsNetwork
The network of the blockchain to send payment on.
output_schema: Map<String, Value>
The optional JSON schema describing the resource output.
pay_to: X402PaymentRequirementsPayTo
The destination to pay value to.
For EVM networks, payTo will be a 0x-prefixed, checksum EVM address.
For Solana-based networks, payTo will be a base58-encoded Solana address.
resource: String
The URL of the resource to pay for.
scheme: X402PaymentRequirementsScheme
The scheme of the payment protocol to use. Currently, the only supported scheme is exact
.
Implementations§
Source§impl X402PaymentRequirements
impl X402PaymentRequirements
pub fn builder() -> X402PaymentRequirements
Trait Implementations§
Source§impl Clone for X402PaymentRequirements
impl Clone for X402PaymentRequirements
Source§fn clone(&self) -> X402PaymentRequirements
fn clone(&self) -> X402PaymentRequirements
Returns a duplicate of the value. Read more
1.0.0 · 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 X402PaymentRequirements
impl Debug for X402PaymentRequirements
Source§impl<'de> Deserialize<'de> for X402PaymentRequirements
impl<'de> Deserialize<'de> for X402PaymentRequirements
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<&X402PaymentRequirements> for X402PaymentRequirements
impl From<&X402PaymentRequirements> for X402PaymentRequirements
Source§fn from(value: &X402PaymentRequirements) -> Self
fn from(value: &X402PaymentRequirements) -> Self
Converts to this type from the input type.
Source§impl From<X402PaymentRequirements> for X402PaymentRequirements
impl From<X402PaymentRequirements> for X402PaymentRequirements
Source§fn from(value: X402PaymentRequirements) -> Self
fn from(value: X402PaymentRequirements) -> Self
Converts to this type from the input type.
Source§impl Serialize for X402PaymentRequirements
impl Serialize for X402PaymentRequirements
Source§impl TryFrom<X402PaymentRequirements> for X402PaymentRequirements
impl TryFrom<X402PaymentRequirements> for X402PaymentRequirements
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
Source§fn try_from(value: X402PaymentRequirements) -> Result<Self, ConversionError>
fn try_from(value: X402PaymentRequirements) -> Result<Self, ConversionError>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for X402PaymentRequirements
impl RefUnwindSafe for X402PaymentRequirements
impl Send for X402PaymentRequirements
impl Sync for X402PaymentRequirements
impl Unpin for X402PaymentRequirements
impl UnwindSafe for X402PaymentRequirements
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