@lynoxdotio/x402-express
v0.8.1
Published
x402 Payment Protocol
Readme
@lynoxdotio/x402-express
Express middleware integration for the x402 Payment Protocol. This package allows you to easily add paywall functionality to your Express.js applications using the x402 protocol.
Installation
npm install @lynoxdotio/x402-expressQuick Start
import express from "express";
import { paymentMiddleware, Network } from "@lynoxdotio/x402-express";
const app = express();
// Configure the payment middleware
app.use(
paymentMiddleware("0xYourAddress", {
"/protected-route": {
price: "$0.10",
network: "arc-testnet",
config: {
description: "Access to premium content",
},
},
}),
);
// Implement your route
app.get("/protected-route", (req, res) => {
res.json({ message: "This content is behind a paywall" });
});
app.listen(3000);Configuration
The paymentMiddleware function accepts three parameters:
payTo: Your receiving address (0x${string})routes: Route configurations for protected endpointsfacilitator: (Optional) Configuration for the x402 facilitator servicepaywall: (Optional) Configuration for the built-in paywall
See the Middleware Options section below for detailed configuration options.
Middleware Options
The middleware supports various configuration options:
Route Configuration
type RoutesConfig = Record<string, Price | RouteConfig>;
interface RouteConfig {
price: Price; // Price in USD or token amount
network: Network; // ""arc-testnet"
config?: PaymentMiddlewareConfig;
}Payment Configuration
interface PaymentMiddlewareConfig {
description?: string; // Description of the payment
mimeType?: string; // MIME type of the resource
maxTimeoutSeconds?: number; // Maximum time for payment (default: 60)
outputSchema?: Record<string, any>; // JSON schema for the response
customPaywallHtml?: string; // Custom HTML for the paywall
resource?: string; // Resource URL (defaults to request URL)
}Facilitator Configuration
type FacilitatorConfig = {
url: string; // URL of the x402 facilitator service
createAuthHeaders?: CreateHeaders; // Optional function to create authentication headers
};Paywall Configuration
For more on paywall configuration options, refer to the paywall README.
type PaywallConfig = {
cdpClientKey?: string; // Your CDP Client API Key
appName?: string; // Name displayed in the paywall wallet selection modal
appLogo?: string; // Logo for the paywall wallet selection modal
sessionTokenEndpoint?: string; // API endpoint for Coinbase Onramp session authentication
};