| name | algorand-x402-typescript |
| description | Builds x402 HTTP-native payment applications on Algorand using TypeScript. Covers clients (fetch, axios), servers (Express, Hono), facilitators, paywalls, Next.js integration, and the @x402-avm core library. Use when implementing x402 payment flows in TypeScript, creating payment-gated APIs, building x402 facilitators or paywalls, or integrating @x402-avm packages. |
| metadata | {"author":"algorand-devrel"} |
x402 on Algorand - TypeScript
Build x402 HTTP-native payment applications on Algorand with TypeScript. Use the reference files below for detailed guidance on each component.
TypeScript Quick Start
npm install @x402-avm/core @x402-avm/avm algosdk
npm install @x402-avm/express
npm install @x402-avm/hono
npm install @x402-avm/next
npm install @x402-avm/fetch
npm install @x402-avm/axios
Register AVM Scheme
Every component registers the AVM exact scheme unconditionally — no environment variable guards:
import { registerExactAvmScheme } from "@x402-avm/avm/exact/client";
registerExactAvmScheme(client, { signer });
import { registerExactAvmScheme } from "@x402-avm/avm/exact/server";
registerExactAvmScheme(server);
import { registerExactAvmScheme } from "@x402-avm/avm/exact/facilitator";
registerExactAvmScheme(facilitator, { signer, networks: ALGORAND_TESTNET_CAIP2 });
TypeScript algosdk Encoding
TypeScript algosdk works with raw Uint8Array directly — no conversion needed. This matches the @txnlab/use-wallet ecosystem standard. Encoding/decoding to/from base64 happens only at protocol boundaries (PAYMENT-SIGNATURE header serialization).
Reference Guide
Navigate to the appropriate reference based on your task. Each topic has three files:
{name}.md — Step-by-step implementation guide
{name}-reference.md — API details and type signatures
{name}-examples.md — Complete, runnable code samples
Explaining x402 for TypeScript
Understand @x402-avm/* TypeScript package structure, signer interfaces (ClientAvmSigner, FacilitatorAvmSigner), registration patterns, builder patterns, constants, and utilities.
Building Clients
Build HTTP clients with Fetch or Axios that automatically handle 402 payments. Covers wrapFetchWithPayment, wrapAxiosWithPayment, ClientAvmSigner for browser wallets or Node.js private keys.
Building Servers
Build payment-protected servers with Express.js or Hono middleware. Covers route pricing, multi-network support (AVM+EVM+SVM), 402 responses, and dynamic pricing.
Building Next.js Apps
Build fullstack Next.js apps with x402 payment protection using paymentProxy and withX402. Covers App Router integration, middleware-level protection, and per-endpoint control.
Building Facilitators and Bazaar Discovery
Build facilitator services that verify and settle Algorand payments on-chain. Covers FacilitatorAvmSigner, Express.js facilitator servers, and Bazaar discovery extension for API cataloging (bazaarResourceServerExtension, withBazaar, declare_discovery_extension on servers).
Building Paywalls
Build browser paywall UIs with server-side middleware and client-side wallet integration (Pera, Defly, Lute). Covers PaywallBuilder, avmPaywall, multi-network paywalls.
Low-Level SDK Usage
Use @x402-avm/core and @x402-avm/avm packages directly for custom integrations. Covers payment policies, AVM signer interfaces, transaction groups, fee abstraction, and low-level primitives.
TypeScript Package Quick Reference
| Package | Purpose |
|---|
@x402-avm/fetch | Wrap fetch with automatic 402 payment handling |
@x402-avm/axios | Wrap axios with automatic 402 payment handling |
@x402-avm/express | Express.js payment middleware |
@x402-avm/hono | Hono payment middleware |
@x402-avm/next | Next.js payment middleware and route wrappers |
@x402-avm/paywall | Browser paywall UI components |
@x402-avm/core | Core protocol primitives (client, server, facilitator) |
@x402-avm/avm | AVM mechanism (signers, transaction builders, constants) |
How to Use This Skill
- Start here to understand which reference you need
- Read the
{name}.md file for step-by-step implementation guidance
- Consult
{name}-reference.md for API details
- Use
{name}-examples.md for complete, runnable code samples
Source: algorand-devrel/algorand-agent-skills — distributed by TomeVault.