@okxweb3/x402-evm
v0.1.0
Published
x402 Payment Protocol EVM Implementation
Readme
@okxweb3/x402-evm
EVM implementation of the x402 payment protocol for X Layer. Supports EIP-3009 transferWithAuthorization and aggregated deferred payment schemes.
Installation
npm install @okxweb3/x402-evmSupported Chain
| Chain | CAIP-2 ID | Default Stablecoin | Transfer Method |
| --- | --- | --- | --- |
| X Layer | eip155:196 | USDT0 | EIP-3009 |
Supported Schemes
- exact — Standard payment. The exact amount is transferred on-chain via EIP-3009
transferWithAuthorization. - aggr_deferred — Aggregated deferred payment using session keys. The facilitator batches multiple payments on-chain for high-throughput scenarios.
Exports
Main entry (@okxweb3/x402-evm)
ExactEvmScheme— Client-side Exact scheme (EIP-3009)AggrDeferredEvmClientScheme/AggrDeferredEvmServerScheme— Aggregated deferred payment schemetoClientEvmSigner(account)/toFacilitatorEvmSigner(wallet)— Convert viem objects to x402 signers- Type guards:
isEIP3009Payload
Subpath exports
| Path | Description |
| --- | --- |
| @okxweb3/x402-evm/exact/server | Server-side Exact scheme (builds payment requirements) |
| @okxweb3/x402-evm/exact/facilitator | Facilitator Exact scheme (verifies & settles payments) |
| @okxweb3/x402-evm/deferred/client | Deferred payment client scheme |
| @okxweb3/x402-evm/deferred/server | Deferred payment server scheme |
Usage
Client-side (signing payments)
import { x402Client } from "@okxweb3/x402-core/client";
import { ExactEvmScheme, toClientEvmSigner } from "@okxweb3/x402-evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount("0x...");
const signer = toClientEvmSigner(account);
const client = new x402Client()
.register("eip155:196", new ExactEvmScheme(signer));Server-side (building payment requirements)
import { ExactEvmScheme } from "@okxweb3/x402-evm/exact/server";
const evmServer = new ExactEvmScheme();Facilitator (verifying & settling payments)
import { ExactEvmScheme } from "@okxweb3/x402-evm/exact/facilitator";
import { toFacilitatorEvmSigner } from "@okxweb3/x402-evm";
const facilitator = new ExactEvmScheme(toFacilitatorEvmSigner(walletClient));Asset Transfer Method
Tokens on X Layer use EIP-3009 (transferWithAuthorization), which provides gasless, single-signature token transfers. The default stablecoin is USDT0.
Related Packages
@okxweb3/x402-core— Core protocol types and client
