Prerequisites
- SvelteKit configured with
@sveltejs/adapter-node. - A seller wallet address for
payTo. - A buyer wallet with deposited 4Mica collateral.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Use 4Mica with SvelteKit on Node.
@sveltejs/adapter-node.payTo.npm install @sveltejs/adapter-node express @4mica/x402 @x402/fetch viem
pnpm install @sveltejs/adapter-node express @4mica/x402 @x402/fetch viem
yarn add @sveltejs/adapter-node express @4mica/x402 @x402/fetch viem
bun add @sveltejs/adapter-node express @4mica/x402 @x402/fetch viem
PRIVATE_KEY=0xYourPrivateKey
PAY_TO=0xYourSellerAddress
PAY_TO as the seller
address advertised by protected routes.import express from "express";
import { handler } from "./build/handler.js";
import { paymentMiddlewareFromConfig } from "@4mica/x402/server/express";
const server = express();
server.use(express.json());
server.use(
paymentMiddlewareFromConfig(
{
"GET /api/premium-content": {
accepts: {
scheme: "4mica-credit",
price: "$0.10",
network: "eip155:84532",
payTo: process.env.PAY_TO ?? "0xYourAddress",
},
description: "Access to premium SvelteKit content",
},
},
),
);
server.get("/api/premium-content", (req, res) => {
res.json({ message: "Paid content from SvelteKit" });
});
server.use(handler);
server.listen(3000);
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { FourMicaEvmScheme } from "@4mica/x402/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const scheme = await FourMicaEvmScheme.create(account);
export const fetchWithPayment = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:84532", client: scheme }],
});
const response = await fetchWithPayment("http://localhost:3000/api/premium-content");
const data = await response.json();