Solana Network

Solana‑native
SVM x402 facilitator.

Verify and settle x402 payments on Solana. One endpoint, no API keys, plug‑and‑play for any server framework.

Click to copy
Powered by Solana

Features

Everything you need to process x402 payments on Solana.

Solana-Native

Optimized for Solana with support for SPL tokens and Token-2022 standard.

🔒

No API Keys

Point your server to this facilitator URL. No sign-up, no keys, no accounts.

Gasless for Clients

Network fees are handled by the facilitator. Clients just sign and send.

🚀

Plug & Play

Works with any x402-compatible server and client SDK. Drop-in setup.

🛡

Verify & Settle

Full payment lifecycle: signature verification, balance checks, and on-chain settlement.

Fast Finality

Solana's sub-second block times mean near-instant payment confirmation.

Get Started

Three steps to start accepting x402 payments on Solana.

1

Set the facilitator URL

Point your x402 server middleware to this facilitator instance.

2

Configure your price tag

Set the payment amount, your receiving address, and token (e.g. USDC on Solana).

3

Deploy

Your routes are now protected. Clients with an x402-compatible SDK will handle payments automatically.

API Endpoints

The facilitator exposes these endpoints for payment processing.

GET /supported List supported payment schemes, networks, and tokens
GET /health Health check for load balancers and monitoring
POST /verify Verify a payment payload against payment requirements
POST /settle Settle a verified payment on-chain

Usage Example

Protect a route with x402 payments on Solana using Rust.

Server — protect a route
use axum::{Router, routing::get};
use x402_axum::X402Middleware;
use x402_chain_solana::V2SolanaExact;
use x402_types::networks::USDC;

let x402 = X402Middleware::new("");

let app = Router::new().route(
  "/paid-content",
  get(handler).layer(
    x402.with_price_tag(V2SolanaExact::price_tag(
      "YourSolanaAddress",
      USDC::solana().amount(1_000_000), // 1 USDC
    ))
  ),
);
Client — auto-pay on 402
use x402_reqwest::{ReqwestWithPayments, X402Client};
use x402_chain_solana::V2SolanaExactClient;
use reqwest::Client;

let signer = load_solana_keypair()?;
let x402_client = X402Client::new()
  .register(V2SolanaExactClient::new(signer));

let client = Client::new()
  .with_payments(x402_client)
  .build();

let res = client.get("https://example.com/paid-content")
  .send().await?;

Documentation

Full guides and references for integrating x402 on Solana.