x402z-server
v0.0.19
Published
Server-side helpers for the erc7984-mind-v1 x402 scheme.
Readme
x402z-server
Server-side helpers for the erc7984-mind-v1 x402 scheme.
Install
pnpm add x402z-serverFolder map
src/http/: server HTTP helperssrc/scheme/: scheme implementation + registrationsrc/index.ts: public exports
Usage
import { createX402zServer } from "x402z-server";
import { createRelayer, SepoliaConfig } from "x402z-shared";
const relayer = await createRelayer({
...SepoliaConfig,
network: "https://sepolia.infura.io/v3/...",
});
const server = await createX402zServer({
facilitatorUrl: "http://localhost:8040",
asset: "0xToken",
eip712: { name: "FHEToken Confidential", version: "1" },
decimals: 6,
batcherAddress: "0xBatcher",
signer: { address, signTypedData },
relayer,
routes: {
"GET /demo": {
accepts: {
payTo: "0xPayTo",
price: "1.0",
network: "eip155:11155111",
maxTimeoutSeconds: 300,
},
description: "Demo content",
mimeType: "text/plain",
},
},
onPaid: async () => ({
body: "demo content from server",
}),
});
server.listen(8080);API
createX402zServer(config)facilitatorUrl(required): HTTP facilitator endpointasset,eip712,decimals,batcherAddress: scheme configsigner(required): signer used to decrypt transfer amountsrelayer(required): FHEVM relayer instance used for decryptionroutes: map ofMETHOD /pathto payment requirementsonPaid: handler for successful payment (returns response body + optional headers)
Examples
See examples/README.md for the full-process server + facilitator setup.
Notes
- Scheme name:
erc7984-mind-v1 confidential.batcherAddressis required in requirements; clients bind encrypted inputs to it.
API surface
Exports:
X402zEvmServerScheme: server scheme implementation for erc7984-mind-v1.registerX402zEvmServerScheme: registers the scheme with x402 server.createX402zServer: helper to configure the paywalled server.x402ResourceServer: core x402 resource server.HTTPFacilitatorClient: HTTP facilitator client wrapper.x402HTTPResourceServer: HTTP resource server helpers.
Types:
X402zServerSchemeOptions: scheme config for server registration.X402zServerNetworkOptions: network config for the scheme.X402zServerRegistrationOptions: registration options for the scheme.X402zRouteOptions: route config for paywalled endpoints.X402zRouteHandler: handler signature for paid requests.X402zServerOptions: options forcreateX402zServer.CompiledRoute: compiled route metadata.DynamicPayTo: callback for dynamic payee address.DynamicPrice: callback for dynamic pricing.FacilitatorClient: facilitator interface for settle requests.FacilitatorConfig: facilitator config shape.HTTPAdapter: adapter for HTTP runtime integration.HTTPProcessResult: result type for processing requests.HTTPRequestContext: request context for handlers.HTTPResponseInstructions: response instructions for handlers.PaywallConfig: paywall configuration for routes.PaywallProvider: interface for paywall config providers.PaymentOption: acceptable payment option shape.ProcessSettleFailureResponse: settle failure response shape.ProcessSettleResultResponse: settle result response shape.ProcessSettleSuccessResponse: settle success response shape.RouteConfigurationError: route config validation error.RouteValidationError: route validation error type.RoutesConfig: routes config map.UnpaidResponseBody: unpaid response shape.UnpaidResponseResult: unpaid response result.- re-exported types from
@x402/core/types: shared x402 types.
