Installation
pnpm add @stellar-x402/core @stellar-x402/express
Middleware Options
export interface ExpressX402Options {
price: string; // e.g. "0.01"
asset: string; // SAC address or token code
recipient: string; // Merchant Stellar public key (G...)
network?: 'stellar:pubnet' | 'stellar:testnet' | 'stellar:futurenet';
validitySeconds?: number; // Default: 300
facilitatorUrl?: string; // Optional relayer URL
}
Basic Example
import express from 'express';
import { stellarX402Middleware } from '@stellar-x402/express';
const app = express();
app.use(
'/api/v1/market-data',
stellarX402Middleware({
price: '0.005',
asset: 'CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC',
recipient: 'GCALKSGAZRJLSUEJT3M5W6LN4R7XQOLIRCOS6ZA6EDZVTZDBIIPPFKJ6',
network: 'stellar:testnet',
})
);
app.get('/api/v1/market-data', (req, res) => {
// Access verified payment context
const payment = (req as any).x402Payment;
res.json({
payer: payment.payer,
data: 'Live orderbook depth',
});
});
app.listen(3000);