Expand description
Core types for the x402 payment protocol.
This crate provides the foundational types used throughout the x402 ecosystem for implementing HTTP 402 Payment Required flows. It is designed to be blockchain-agnostic, with chain-specific implementations provided by separate crates.
§Overview
The x402 protocol enables micropayments over HTTP by leveraging the 402 Payment Required status code. When a client requests a paid resource, the server responds with payment requirements. The client signs a payment authorization, which is verified and settled by a facilitator.
§Modules
chain- Blockchain identifiers and provider abstractions (CAIP-2 chain IDs)config- Server configuration, CLI parsing, RPC config, and environment variable resolutionfacilitator- Core trait for payment verification and settlementnetworks- Registry of well-known blockchain networksproto- Wire format types for protocol messages (V1 and V2)scheme- Payment scheme system for extensible payment methodstimestamp- Unix timestamp utilities for payment authorization windowsutil- Helper types (base64, string literals, money amounts)
§Protocol Versions
The crate supports two protocol versions:
- V1 (
proto::v1): Original protocol using network names (e.g., “base-sepolia”) - V2 (
proto::v2): Enhanced protocol using CAIP-2 chain IDs (e.g., “eip155:84532”)
§Feature Flags
cli- Enables CLI argument parsing via clap for configuration loadingtelemetry- Enables tracing instrumentation for debugging and monitoring
Modules§
- chain
- Blockchain-specific types and providers for x402 payment processing.
- config
- Configuration types for x402 infrastructure.
- facilitator
- Core trait defining the verification and settlement interface for x402 facilitators.
- networks
- Known blockchain networks and CAIP-2 chain ID management.
- proto
- Protocol types for x402 payment messages.
- scheme
- Payment scheme implementations for x402.
- timestamp
- Unix timestamp utilities for x402 payment authorization windows.
- util
- Utility types and functions for x402.
Macros§
- lit_str
- Creates a type that represents a specific string literal.