# With Bun Source: https://armory.sh/accept-payments/bun Accept Armory payments in Bun Accept crypto payments in your Bun HTTP server with the Armory middleware. ## Installation ```bash theme={null} # npm npm install @armory-sh/middleware-bun # yarn yarn add @armory-sh/middleware-bun # pnpm pnpm add @armory-sh/middleware-bun # bun bun add @armory-sh/middleware-bun ``` ## Quick Start ```typescript theme={null} import { createBunMiddleware } from '@armory-sh/middleware-bun'; const middleware = createBunMiddleware({ payTo: '0xYourWalletAddress...', amount: '1.0' }); Bun.serve({ port: 3000, fetch: async (req) => { const result = await middleware(req); // If middleware returns a response, payment failed/required if (result) return result; // Payment verified — handle your request return new Response(JSON.stringify({ data: 'protected content' })); } }); ``` *** ## How It Works The middleware returns: * `null` if payment is valid (your handler proceeds) * A `Response` object if payment is missing/invalid (returned to client) *** ## Settlement Modes Control how payments are settled after verification: ```typescript theme={null} const middleware = createBunMiddleware({ payTo: '0x...', amount: '1.0', settlementMode: 'verify' // | 'settle' | 'async' }); ``` | Mode | Description | | -------- | --------------------------------------------- | | `verify` | Verify only, don't settle (great for testing) | | `settle` | Verify and settle on-chain before responding | | `async` | Return immediately, settle in background | *** ## Configuration ```typescript theme={null} const middleware = createBunMiddleware({ payTo: '0x...', amount: '1.0', settlementMode: 'verify' }); ``` ## Route Configuration For per-route behavior, use `createRouteAwareBunMiddleware`: ```typescript theme={null} import { createRouteAwareBunMiddleware } from '@armory-sh/middleware-bun'; const middleware = createRouteAwareBunMiddleware({ routes: ['/api/basic', '/api/premium/*'], payTo: '0xYourAddress...', amount: '$1.00', network: 'base', perRoute: { '/api/premium/*': { amount: '$5.00' } } }); ``` *** ## Tips Use `settlementMode: 'verify'` during development to skip on-chain settlement while still testing payment verification. The `amount` can be a human-readable string like `"1.0"` — no manual decimal calculation needed. With `settlementMode: 'settle'`, responses will be delayed until the on-chain transaction completes. Use `async` for better UX. *** ## More Information See [`@armory-sh/middleware-bun`](/packages/middleware-bun) for full configuration options. # With Elysia Source: https://armory.sh/accept-payments/elysia Accept Armory payments in Elysia Accept crypto payments in your Elysia API with the Armory middleware plugin. ## Installation ```bash theme={null} # npm npm install @armory-sh/middleware-elysia # yarn yarn add @armory-sh/middleware-elysia # pnpm pnpm add @armory-sh/middleware-elysia # bun bun add @armory-sh/middleware-elysia ``` ## Quick Start ```typescript theme={null} import { Elysia } from 'elysia'; import { paymentMiddleware } from '@armory-sh/middleware-elysia'; const app = new Elysia() .use(paymentMiddleware({ requirements: { to: '0xYourWalletAddress...', amount: 1000000n, // 1 USDC (6 decimals) expiry: Date.now() + 3600 * 1000, chainId: 'eip155:8453', assetId: 'eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' } })) .get('/api/data', ({ store }) => { return { message: 'Payment successful!' }; }) .listen(3000); ``` *** ## Accessing Payment Info Payment information is stored in the Elysia store: ```typescript theme={null} app.get('/api/premium', ({ store }) => { const payment = store.payment; return { message: `Hello ${payment.payerAddress}`, paid: payment.payload.amount }; }); ``` *** ## With Schema Validation Combine payment middleware with Elysia's schema validation: ```typescript theme={null} import { t } from 'elysia'; app.post( '/api/purchase', ({ store, body }) => { const { itemId, quantity } = body; const { payerAddress } = store.payment; // Process purchase for verified payer return { purchased: true, for: payerAddress }; }, { body: t.Object({ itemId: t.String(), quantity: t.Optional(t.Number()), }), } ); ``` *** ## Type Safety For full TypeScript support, type your Elysia instance: ```typescript theme={null} import type { PaymentContext } from '@armory-sh/middleware-elysia'; const app = new Elysia<{ store: PaymentContext }>() .use(paymentMiddleware({ ... })) .get('/api/data', ({ store }) => { // store.payment is fully typed console.log(store.payment.payerAddress); }); ``` ## Route Configuration For per-route requirements, use `routeAwarePaymentMiddleware`: ```typescript theme={null} import { routeAwarePaymentMiddleware } from '@armory-sh/middleware-elysia'; app.use(routeAwarePaymentMiddleware({ '/api/basic': { requirements: basicRequirements }, '/api/premium': { requirements: premiumRequirements }, })); ``` *** ## Tips USDC on Base uses 6 decimals. 1 USDC = `1000000n` as a bigint. Elysia's store is shared across all middleware. Payment info is available in any route after the middleware runs. *** ## More Information See [`@armory-sh/middleware-elysia`](/packages/middleware-elysia) for full configuration options. # With Express Source: https://armory.sh/accept-payments/express Accept Armory payments in Express Accept crypto payments in your Express API with the Armory middleware. ## Installation ```bash theme={null} # npm npm install @armory-sh/middleware-express # yarn yarn add @armory-sh/middleware-express # pnpm pnpm add @armory-sh/middleware-express # bun bun add @armory-sh/middleware-express ``` ## Quick Start ```typescript theme={null} import express from 'express'; import { paymentMiddleware } from '@armory-sh/middleware-express'; const app = express(); // Protect all routes with payment app.use(paymentMiddleware({ requirements: { to: '0xYourWalletAddress...', amount: 1000000n, // 1 USDC (6 decimals) expiry: Date.now() + 3600 * 1000, chainId: 'eip155:8453', assetId: 'eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' } })); app.get('/api/data', (req, res) => { res.json({ message: 'Payment successful!' }); }); app.listen(3000); ``` *** ## Accessing Payment Info The middleware attaches payment information to every request: ```typescript theme={null} app.get('/api/user', (req, res) => { const { payerAddress, payload, version } = req.payment; res.json({ message: `Hello ${payerAddress}`, paid: payload.amount }); }); ``` *** ## Protecting Specific Routes You can apply the middleware to specific routes only: ```typescript theme={null} // Public route — no payment required app.get('/api/public', (req, res) => { res.json({ message: 'Anyone can access this' }); }); // Protected route — payment required app.get('/api/premium', paymentMiddleware({ /* config */ }), (req, res) => { res.json({ message: 'Paid content' }); } ); ``` ## Route Configuration For per-route pricing or requirements, use `routeAwarePaymentMiddleware`: ```typescript theme={null} import { routeAwarePaymentMiddleware } from '@armory-sh/middleware-express'; app.use('/api', routeAwarePaymentMiddleware({ '/api/basic': { requirements: basicRequirements }, '/api/premium': { requirements: premiumRequirements }, })); ``` *** ## Tips Want to accept payments on Base using USDC? Use token address `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` with 6 decimals. Express middleware runs sequentially — place `paymentMiddleware` before any routes that require payment protection. *** ## More Information See [`@armory-sh/middleware-express`](/packages/middleware-express) for full configuration options. # With Hono Source: https://armory.sh/accept-payments/hono Accept Armory payments in Hono Accept crypto payments in your Hono API with the Armory middleware. ## Installation ```bash theme={null} # npm npm install @armory-sh/middleware-hono # yarn yarn add @armory-sh/middleware-hono # pnpm pnpm add @armory-sh/middleware-hono # bun bun add @armory-sh/middleware-hono ``` ## Quick Start ```typescript theme={null} import { Hono } from 'hono'; import { acceptPaymentsViaArmory } from '@armory-sh/middleware-hono'; const app = new Hono(); // Protect all routes app.use('*', acceptPaymentsViaArmory({ payTo: '0xYourWalletAddress...', amount: '1.0' })); app.get('/api/data', (c) => { return c.json({ message: 'Payment successful!' }); }); app.listen(3000); ``` *** ## Accessing Payment Info Payment information is stored in the Hono context: ```typescript theme={null} app.get('/api/user', (c) => { const payment = c.get('payment'); const { payerAddress, payload } = payment; return c.json({ message: `Hello ${payerAddress}`, paid: payload.amount }); }); ``` *** ## Protecting Specific Routes Use path patterns to protect specific route groups: ```typescript theme={null} // Public routes — no payment app.get('/', (c) => c.json({ message: 'Welcome' })); // All /api/* routes require payment app.use('/api/*', acceptPaymentsViaArmory({ payTo: '0x...', amount: '1.0' })); app.get('/api/data', (c) => c.json({ data: '...' })); ``` *** ## Multi-Network Support Accept payments across multiple networks: ```typescript theme={null} app.use('/api/*', acceptPaymentsViaArmory({ payTo: '0x...', amount: '1.0', accept: { networks: ['base', 'ethereum', 'polygon'], tokens: ['usdc', 'usdt'] } })); ``` ## Route Configuration For route-specific configuration, use `routeAwarePaymentMiddleware`: ```typescript theme={null} import { routeAwarePaymentMiddleware } from '@armory-sh/middleware-hono'; app.use('/api/*', routeAwarePaymentMiddleware({ routes: ['/api/basic', '/api/premium/*'], payTo: '0xYourAddress...', amount: '$1.00', network: 'base', perRoute: { '/api/premium/*': { amount: '$5.00' } } })); ``` *** ## Tips The `amount` parameter accepts human-readable strings like `"1.0"` for 1 token — no need to calculate decimals manually. Hono's middleware matching is pattern-based. Use `/api/*` to protect all API routes, or `/premium/*` for paid content only. *** ## More Information See [`@armory-sh/middleware-hono`](/packages/middleware-hono) for full configuration options. # With Next.js Source: https://armory.sh/accept-payments/next Accept x402 payments in your Next.js App Router application Accept x402 payments in your Next.js App Router application using the `@armory-sh/middleware-next` package. ## Installation ```bash theme={null} # npm npm install @armory-sh/middleware-next # yarn yarn add @armory-sh/middleware-next # pnpm pnpm add @armory-sh/middleware-next # bun bun add @armory-sh/middleware-next ``` ## Basic Setup Create a `middleware.ts` file in your Next.js app root: ```typescript theme={null} // middleware.ts import { paymentProxy, x402ResourceServer } from "@armory-sh/middleware-next"; // Create a verification client const verificationClient = { async verify(headers: Headers) { const response = await fetch("https://your-verifier.com/verify", { method: "POST", headers: Object.fromEntries(headers.entries()), }); return response.json(); }, }; // Create the resource server const resourceServer = new x402ResourceServer(verificationClient); // Configure payment proxy with per-route settings export const proxy = paymentProxy( { "/api/protected": { accepts: { scheme: "exact", price: "1000000", // $1.00 in atomic units (6 decimals) network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Access to protected API", }, }, resourceServer ); // Configure which routes the middleware should run on export const config = { matcher: ["/api/protected/:path*"] }; ``` ## Route Patterns Next.js middleware uses the same `matcher` config as standard Next.js middleware: ```typescript theme={null} // Single route export const config = { matcher: ["/api/protected"] }; // Wildcard (matches all sub-paths) export const config = { matcher: ["/api/protected/:path*"] }; // Multiple routes export const config = { matcher: ["/api/users/:path*", "/api/posts/:path*"] }; ``` ## Per-Route Configuration Configure different payment requirements for different routes: ```typescript theme={null} export const proxy = paymentProxy( { "/api/basic": { accepts: { scheme: "exact", price: "1000000", // $1.00 network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Basic tier access", }, "/api/premium": { accepts: { scheme: "exact", price: "5000000", // $5.00 network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Premium tier access", }, "/api/vip": { accepts: { scheme: "exact", price: "10000000", // $10.00 network: "eip155:8453", payTo: "0xYourAddress...", }, description: "VIP tier access", }, }, resourceServer ); ``` ## Wildcard Routes Use wildcards to match multiple routes with a single configuration: ```typescript theme={null} export const proxy = paymentProxy( { "/api/premium/*": { accepts: { scheme: "exact", price: "5000000", // $5.00 network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Premium API access", }, }, resourceServer ); export const config = { matcher: ["/api/:path*"] }; ``` ## Resource Server The `x402ResourceServer` manages payment schemes and requirements: ```typescript theme={null} import type { PaymentScheme } from "@armory-sh/middleware-next"; import type { PaymentRequirementsV2 } from "@armory-sh/base"; // Create custom payment schemes const exactScheme: PaymentScheme = { name: "exact", getRequirements: (): PaymentRequirementsV2 => ({ scheme: "exact", network: "eip155:8453", amount: "1000000", asset: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" as `0x${string}`, payTo: "0xYourAddress..." as `0x${string}`, maxTimeoutSeconds: 300, extra: {}, }), }; // Register schemes for different chains const resourceServer = new x402ResourceServer(verificationClient) .register("eip155:8453", exactScheme) // Base .register("eip155:1", exactScheme); // Ethereum ``` ## Response Format When payment is verified, the middleware returns a JSON response: ```json theme={null} { "verified": true, "payerAddress": "0x..." } ``` When payment is required, it returns a 402 response with payment requirements: ```json theme={null} { "error": "Payment required", "accepts": [ { "scheme": "exact", "network": "eip155:8453", "amount": "1000000", "asset": "0x8335...", "payTo": "0xYour..." } ] } ``` ## Complete Example ```typescript theme={null} // middleware.ts import { paymentProxy, x402ResourceServer } from "@armory-sh/middleware-next"; const verificationClient = { async verify(headers: Headers) { const response = await fetch("https://verifier.example.com/verify", { method: "POST", headers: { "Content-Type": "application/json", ...Object.fromEntries(headers.entries()), }, body: JSON.stringify({ headers: Object.fromEntries(headers.entries()), }), }); return response.json(); }, }; const resourceServer = new x402ResourceServer(verificationClient); export const proxy = paymentProxy( { "/api/data/basic": { accepts: { scheme: "exact", price: "1000000", network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Basic data access", }, "/api/data/premium": { accepts: { scheme: "exact", price: "5000000", network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Premium data access", }, "/api/analytics/*": { accepts: { scheme: "exact", price: "10000000", network: "eip155:8453", payTo: "0xYourAddress...", }, description: "Analytics access (all endpoints)", }, }, resourceServer ); export const config = { matcher: ["/api/data/:path*", "/api/analytics/:path*"], }; ``` ## API Routes Your API routes can check for payment verification: ```typescript theme={null} // app/api/data/premium/route.ts import { NextRequest, NextResponse } from "next/server"; export async function GET(request: NextRequest) { // Payment verification is handled by middleware // If we reach here, payment was verified const payerAddress = request.headers.get("X-Payer-Address"); return NextResponse.json({ data: "premium data", accessedBy: payerAddress, }); } ``` ## Error Handling The middleware automatically handles common errors: * **404**: Route not found (no matching payment configuration) * **402**: Payment required (no payment header provided) * **400**: Invalid payment payload * **500**: Configuration error ## Types ```typescript theme={null} import type { PaymentScheme, RoutePaymentConfig, } from "@armory-sh/middleware-next"; ``` # Custom Networks Source: https://armory.sh/advanced/custom-networks Configure Armory for custom EVM chains and networks # Custom Networks Use Armory on any EVM-compatible chain by configuring network settings. ## Network Configuration A network configuration includes: ```typescript theme={null} { name: string; // Display name chainId: number; // EIP-155 chain ID usdcAddress: `0x${string}`; // USDC contract address rpcUrl: string; // RPC endpoint caip2Id: string; // CAIP-2 network ID caipAssetId: string; // CAIP-2 asset ID } ``` ## Add a Custom Network ### For Middleware Configure RPC URLs for your custom network: #### Bun ```typescript theme={null} import { createBunMiddleware } from '@armory-sh/middleware-bun'; import { USDC_BASE } from '@armory-sh/base'; const middleware = createBunMiddleware({ payTo: '0x...', amount: '2000000', token: USDC_BASE, rpcUrls: { 8453: 'https://mainnet.base.org', // Add your custom network 123456: 'https://your-custom-rpc.com', } }); const app = Bun.serve({ fetch: async (req) => { const result = await middleware(req); if (result) return result; return new Response(JSON.stringify({ data: 'protected content' })); } }); ``` #### Express ```typescript theme={null} import { acceptPaymentsViaArmory } from '@armory-sh/middleware-express'; app.use(acceptPaymentsViaArmory({ payTo: '0x...', amount: '2000000', rpcUrls: { 8453: 'https://mainnet.base.org', 123456: 'https://your-custom-rpc.com', } })); ``` ### For Client Clients automatically derive network from the token's `chainId`: ```typescript theme={null} import { createArmoryClient } from '@armory-sh/client-viem'; import { privateKeyToAccount } from 'viem/accounts'; const CUSTOM_TOKEN = { symbol: 'USDC', name: 'USD Coin', version: '2', contractAddress: '0x...', chainId: 123456, // Your custom chain ID decimals: 6, }; const client = createArmoryClient({ wallet: { type: 'account', account }, token: CUSTOM_TOKEN, rpcUrl: 'https://your-custom-rpc.com', // Optional: custom RPC }); ``` ## CAIP IDs Armory uses [CAIP](https://chainagnostic.org/)-style IDs for network identification: ### CAIP-2 (Network) Format: `eip155:` ```typescript theme={null} const caip2Id = `eip155:${chainId}`; // Examples: 'eip155:1' // Ethereum 'eip155:8453' // Base 'eip155:123456' // Custom ``` ### CAIP-2 Asset (Token) Format: `eip155:/erc20:
` ```typescript theme={null} const caipAssetId = `eip155:${chainId}/erc20:${contractAddress}`; // Example: 'eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' ``` ## Example: Arbitrum Sepolia ```typescript theme={null} import { createBunMiddleware } from '@armory-sh/middleware-bun'; // Custom token on Arbitrum Sepolia const USDC_ARB_SEPOLIA = { symbol: 'USDC', name: 'USD Coin', version: '2', contractAddress: '0x75faf114eafb1Acbe221d265a875F4Ea013E0bA1', chainId: 421614, decimals: 6, }; const middleware = createBunMiddleware({ payTo: '0x...', amount: '2000000', token: USDC_ARB_SEPOLIA, rpcUrls: { 421614: 'https://sepolia-rollup.arbitrum.one/rpc', } }); const app = Bun.serve({ fetch: async (req) => { const result = await middleware(req); if (result) return result; return new Response(JSON.stringify({ data: 'protected content' })); } }); ``` ## Testnet Configuration ```typescript theme={null} // Testnet token const USDC_SEPOLIA = { symbol: 'USDC', name: 'USD Coin', version: '2', contractAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', chainId: 11155111, // Sepolia decimals: 6, }; const client = createArmoryClient({ wallet: { type: 'account', account }, token: USDC_SEPOLIA, rpcUrl: 'https://rpc.sepolia.org', }); ``` ## Multi-Network Support Accept payments across multiple networks: ```typescript theme={null} app.use(acceptPaymentsViaArmory({ payTo: '0x...', amount: '2000000', accept: { networks: ['base', 'ethereum', 123456], // Mix names and chain IDs tokens: [USDC_BASE, CUSTOM_TOKEN], } })); ``` ## Network Discovery Get network info from chain ID: ```typescript theme={null} import { getNetworkByChainId } from '@armory-sh/base'; const network = getNetworkByChainId(8453); console.log(network); // { // name: "Base Mainnet", // chainId: 8453, // usdcAddress: "0x8335...", // rpcUrl: "https://mainnet.base.org", // caip2Id: "eip155:8453", // caipAssetId: "eip155:8453/erc20:0x8335..." // } ``` # Custom Tokens Source: https://armory.sh/advanced/custom-tokens Use custom tokens with Armory middleware and clients # Custom Tokens Use any EIP-3009 compatible token with Armory — not just the pre-configured ones. ## Define a Custom Token Create a token object matching your contract: ```typescript theme={null} import type { CustomToken } from '@armory-sh/base'; const MY_TOKEN: CustomToken = { symbol: 'MYTKN', name: 'My Token', version: '1', contractAddress: '0x1234567890123456789012345678901234567890', chainId: 8453, // Base decimals: 18, }; ``` ## Use with Middleware Pass your custom token directly to the middleware: ### Bun ```typescript theme={null} import { createBunMiddleware } from '@armory-sh/middleware-bun'; const middleware = createBunMiddleware({ payTo: '0xYourWalletAddress...', amount: '1000000000000000000', // 1 token (18 decimals) token: MY_TOKEN, }); const app = Bun.serve({ fetch: async (req) => { const result = await middleware(req); if (result) return result; return new Response(JSON.stringify({ data: 'protected content' })); } }); ``` ### Express ```typescript theme={null} import { acceptPaymentsViaArmory } from '@armory-sh/middleware-express'; app.use(acceptPaymentsViaArmory({ payTo: '0xYourWalletAddress...', amount: '1000000000000000000', token: MY_TOKEN, })); ``` ### Hono ```typescript theme={null} import { acceptPaymentsViaArmory } from '@armory-sh/middleware-hono'; app.use('/api/*', acceptPaymentsViaArmory({ payTo: '0xYourWalletAddress...', amount: '1000000000000000000', token: MY_TOKEN, })); ``` ### Elysia ```typescript theme={null} import { paymentMiddleware } from '@armory-sh/middleware-elysia'; const app = new Elysia() .use(paymentMiddleware({ requirements: { to: '0xYourWalletAddress...', amount: '1000000000000000000', chainId: 'eip155:8453', assetId: 'eip155:8453/erc20:0x1234567890123456789012345678901234567890', } })); ``` ## Use with Client Pass your custom token when creating a client: ### Viem ```typescript theme={null} import { createArmoryClient } from '@armory-sh/client-viem'; import { privateKeyToAccount } from 'viem/accounts'; const account = privateKeyToAccount('0x...'); const client = createArmoryClient({ wallet: { type: 'account', account }, token: MY_TOKEN, }); ``` ### Ethers ```typescript theme={null} import { createArmoryClient } from '@armory-sh/client-ethers'; import { Wallet } from 'ethers'; const wallet = new Wallet('0x...'); const client = createArmoryClient({ wallet: { type: 'wallet', wallet }, token: MY_TOKEN, }); ``` ### Web3.js ```typescript theme={null} import { createArmoryClient } from '@armory-sh/client-web3'; import { Web3 } from 'web3'; const web3 = new Web3('...'); const account = web3.eth.accounts.privateKeyToAccount('0x...'); const client = createArmoryClient({ wallet: { type: 'web3', account, web3 }, token: MY_TOKEN, }); ``` ## Register Token (Optional) If you want your token to be discoverable via the token registry: ```typescript theme={null} import { registerToken, getToken } from '@armory-sh/base'; registerToken(MY_TOKEN); // Now available via: const token = getToken(8453, '0x1234...'); ``` ## Multi-Token Setup Accept multiple custom tokens: ```typescript theme={null} import { acceptPaymentsViaArmory } from '@armory-sh/middleware-hono'; const TOKEN_1 = { symbol: 'TKN1', contractAddress: '0x...', chainId: 8453, decimals: 18 }; const TOKEN_2 = { symbol: 'TKN2', contractAddress: '0x...', chainId: 8453, decimals: 6 }; // Middleware accepts either token app.use('/api/*', acceptPaymentsViaArmory({ payTo: '0x...', amount: '1000000', accept: { tokens: [TOKEN_1, TOKEN_2], } })); ``` ## Token Requirements Your token must implement [EIP-3009](https://eips.ethereum.org/EIPS/eip-3009): ```solidity theme={null} function transferWithAuthorization( address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s ) external; ``` Most major stablecoins (USDC, USDT, DAI, PYUSD) already support this. # Changelog Source: https://armory.sh/changelog Changelog for all Armory packages Subscribe via RSS: `/changelog/rss.xml`. ### Patch Changes * Deterministic facilitator routing precedence across network/token combinations: * `facilitatorUrlByToken[network][token]` * `facilitatorUrlByChain[network]` * `facilitatorUrl` * Fixed middleware token-map resolution bug that could select the wrong facilitator URL on shared chains. * Added fail-open extension capability filtering for challenge headers: unsupported extension keys are automatically omitted per facilitator `/supported` response (with cache). * Added facilitator-aware pricing selection support for middleware config resolvers (`network + token + facilitator` before fallback tiers). * Added regression coverage for facilitator precedence and extension capability filtering. ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite ### Patch Changes * 281eeb8: Fix Versions ### Patch Changes * 4033813: Package Cleanup, Minor Docs ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount ### Patch Changes * Fix Amount ### Patch Changes * Clenaup Flows ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added ### Patch Changes * Add Simple Middleware Back ### Patch Changes * ALpah Test ### Patch Changes * Test Link ### Patch Changes * Completed E2E Flows w/ v2 ### Minor Changes * **Added**: Export token constants (`TOKENS`, `USDC_BASE`, `EURC_BASE`, etc.) from `@armory-sh/tokens` package * **Added**: Token helper functions (`getToken`, `getAllTokens`, `getTokensBySymbol`, `getUSDCTokens`, etc.) * Token constants are now available directly from `@armory-sh/base` for convenience ### Patch Changes * v2 Only, Cleanup ### Patch Changes * Add Deep Test Suite, Enhance Compatibility ### Patch Changes * :wq! ### Patch Changes * Automated release ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * 0e32676: Automated release * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Cleanup ### Patch Changes * Cleanup Code, Add Bespoke Middleware ### Patch Changes * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 * @armory-sh/extensions\@0.1.9 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/extensions\@0.1.6 * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/extensions\@0.1.5 * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/extensions\@0.1.4 * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/extensions\@0.1.3 * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/extensions\@0.1.2 * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added ### Patch Changes * Add Simple Middleware Back ### Patch Changes * ALpah Test ### Patch Changes * Test Link ### Patch Changes * Completed E2E Flows w/ v2 ### Patch Changes * v2 Only, Cleanup ### Patch Changes * Add Deep Test Suite, Enhance Compatibility ### Patch Changes * :wq! ### Patch Changes * Cleanup ### Patch Changes * Cleanup Code, Add Bespoke Middleware ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * 0e32676: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 ### Patch Changes * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 * @armory-sh/extensions\@0.1.9 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/extensions\@0.1.6 * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/extensions\@0.1.5 * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/extensions\@0.1.4 * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/extensions\@0.1.3 * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/extensions\@0.1.2 * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/extensions\@0.1.1 * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * 0e32676: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 ### Patch Changes * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * Fix Structure ### Patch Changes * d5977fa: Fix Compatiblity ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 * @armory-sh/facilitator\@0.2.12 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 * @armory-sh/facilitator\@0.2.11 ### Patch Changes * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 * @armory-sh/facilitator\@0.2.10 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 * @armory-sh/facilitator\@0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 * @armory-sh/facilitator\@0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 * @armory-sh/facilitator\@0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 * @armory-sh/facilitator\@0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 * @armory-sh/facilitator\@0.2.5 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 * @armory-sh/facilitator\@0.2.4 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 * @armory-sh/facilitator\@0.2.3 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * Fix Structure ### Patch Changes * d5977fa: Fix Compatiblity ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 * @armory-sh/facilitator\@0.2.12 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 * @armory-sh/facilitator\@0.2.11 ### Patch Changes * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 * @armory-sh/facilitator\@0.2.10 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 * @armory-sh/facilitator\@0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 * @armory-sh/facilitator\@0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 * @armory-sh/facilitator\@0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 * @armory-sh/facilitator\@0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 * @armory-sh/facilitator\@0.2.5 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 * @armory-sh/facilitator\@0.2.4 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 * @armory-sh/facilitator\@0.2.3 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 * @armory-sh/extensions\@0.1.9 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/extensions\@0.1.6 * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/extensions\@0.1.5 * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/extensions\@0.1.4 * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/extensions\@0.1.3 * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/extensions\@0.1.2 * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/extensions\@0.1.1 * @armory-sh/base\@0.2.20 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ### Patch Changes * Fix Structure ### Patch Changes * d5977fa: Fix Compatiblity ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 * @armory-sh/facilitator\@0.2.12 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 * @armory-sh/facilitator\@0.2.11 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 * @armory-sh/facilitator\@0.2.10 ### Patch Changes * Automated release ### Patch Changes * Automated release ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 * @armory-sh/facilitator\@0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 * @armory-sh/facilitator\@0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 * @armory-sh/facilitator\@0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 * @armory-sh/facilitator\@0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 * @armory-sh/facilitator\@0.2.5 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 * @armory-sh/facilitator\@0.2.4 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 * @armory-sh/facilitator\@0.2.3 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 # @armory-sh/base Source: https://armory.sh/changelogs/base Release history for @armory-sh/base # @armory-sh/base Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.2.28 ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite ## Version 0.2.25 ### Patch Changes * 281eeb8: Fix Versions ## Version 0.2.24 ### Patch Changes * 4033813: Package Cleanup, Minor Docs ## Version 0.2.23 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount ## Version 0.2.22 ### Patch Changes * Fix Amount ## Version 0.2.21 ### Patch Changes * Clenaup Flows ## Version 0.2.20 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added ## Version 0.2.19 ### Patch Changes * Add Simple Middleware Back ## Version 0.2.18 ### Patch Changes * ALpah Test ## Version 0.2.17 ### Patch Changes * Test Link ## Version 0.2.16 ### Patch Changes * Completed E2E Flows w/ v2 ## Version 0.2.15 ### Minor Changes * **Added**: Export token constants (`TOKENS`, `USDC_BASE`, `EURC_BASE`, etc.) from `@armory-sh/tokens` package * **Added**: Token helper functions (`getToken`, `getAllTokens`, `getTokensBySymbol`, `getUSDCTokens`, etc.) * Token constants are now available directly from `@armory-sh/base` for convenience ## Version 0.2.14 ### Patch Changes * v2 Only, Cleanup ## Version 0.2.13 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility ## Version 0.2.12 ### Patch Changes * :wq! ## Version 0.2.11 ### Patch Changes * Automated release ## Version 0.2.10 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * 0e32676: Automated release * Automated release ## Version 0.2.9 ### Patch Changes * Automated release ## Version 0.2.8 ### Patch Changes * Automated release ## Version 0.2.7 ### Patch Changes * Automated release ## Version 0.2.6 ### Patch Changes * Automated release ## Version 0.2.5 ### Patch Changes * Automated release ## Version 0.2.4 ### Patch Changes * Cleanup ## Version 0.2.3 ### Patch Changes * Cleanup Code, Add Bespoke Middleware # CLI Source: https://armory.sh/changelogs/cli Release history for CLI # CLI Full package changelog. ## Version 0.3.8 ### Patch Changes * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 * @armory-sh/extensions\@0.1.9 ## Version 0.3.5 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/extensions\@0.1.6 * @armory-sh/base\@0.2.25 ## Version 0.3.4 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/extensions\@0.1.5 * @armory-sh/base\@0.2.24 ## Version 0.3.3 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/extensions\@0.1.4 * @armory-sh/base\@0.2.23 ## Version 0.3.2 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/extensions\@0.1.3 * @armory-sh/base\@0.2.22 ## Version 0.3.1 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/extensions\@0.1.2 * @armory-sh/base\@0.2.21 ## Version 0.2.11 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added ## Version 0.2.10 ### Patch Changes * Add Simple Middleware Back ## Version 0.2.9 ### Patch Changes * ALpah Test ## Version 0.2.8 ### Patch Changes * Test Link ## Version 0.2.7 ### Patch Changes * Completed E2E Flows w/ v2 ## Version 0.2.6 ### Patch Changes * v2 Only, Cleanup ## Version 0.2.5 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility ## Version 0.2.4 ### Patch Changes * :wq! ## Version 0.2.3 ### Patch Changes * Cleanup ## Version 0.2.2 ### Patch Changes * Cleanup Code, Add Bespoke Middleware # @armory-sh/client-ethers Source: https://armory.sh/changelogs/client-ethers Release history for @armory-sh/client-ethers # @armory-sh/client-ethers Full package changelog. ## Version 0.2.27 ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.2.24 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.2.23 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.2.22 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.2.21 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.2.20 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.2.19 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ## Version 0.2.18 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.2.17 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.2.16 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.2.15 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.2.14 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.2.13 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ## Version 0.2.12 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 ## Version 0.2.11 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 ## Version 0.2.10 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * 0e32676: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 ## Version 0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 ## Version 0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 ## Version 0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 ## Version 0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 ## Version 0.2.5 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 ## Version 0.2.4 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 ## Version 0.2.3 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 # @armory-sh/client-hooks Source: https://armory.sh/changelogs/client-hooks Release history for @armory-sh/client-hooks # @armory-sh/client-hooks Full package changelog. ## Version 0.1.1 ### Patch Changes * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 # @armory-sh/client-viem Source: https://armory.sh/changelogs/client-viem Release history for @armory-sh/client-viem # @armory-sh/client-viem Full package changelog. ## Version 0.2.27 ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 * @armory-sh/extensions\@0.1.9 ## Version 0.2.24 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/extensions\@0.1.6 * @armory-sh/base\@0.2.25 ## Version 0.2.23 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/extensions\@0.1.5 * @armory-sh/base\@0.2.24 ## Version 0.2.22 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/extensions\@0.1.4 * @armory-sh/base\@0.2.23 ## Version 0.2.21 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/extensions\@0.1.3 * @armory-sh/base\@0.2.22 ## Version 0.2.20 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/extensions\@0.1.2 * @armory-sh/base\@0.2.21 ## Version 0.2.19 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/extensions\@0.1.1 * @armory-sh/base\@0.2.20 ## Version 0.2.18 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.2.17 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.2.16 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.2.15 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.2.14 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.2.13 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ## Version 0.2.12 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 ## Version 0.2.11 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 ## Version 0.2.10 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * 0e32676: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 ## Version 0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 ## Version 0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 ## Version 0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 ## Version 0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 ## Version 0.2.5 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 ## Version 0.2.4 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 ## Version 0.2.3 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 # @armory-sh/client-web3 Source: https://armory.sh/changelogs/client-web3 Release history for @armory-sh/client-web3 # @armory-sh/client-web3 Full package changelog. ## Version 0.2.24 ### Patch Changes * 993834f: Fix v2 Headers * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.2.21 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.2.20 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.2.19 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.2.18 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.2.17 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.2.16 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ## Version 0.2.15 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.2.14 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.2.13 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.2.12 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.2.11 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.2.10 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ## Version 0.2.9 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 ## Version 0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 ## Version 0.2.7 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 ## Version 0.2.6 ### Patch Changes * Automated release ## Version 0.2.6 ### Patch Changes * Automated release ## Version 0.2.6 ### Patch Changes * Automated release ## Version 0.2.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 ## Version 0.2.8 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 ## Version 0.2.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 ## Version 0.2.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 ## Version 0.2.5 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 ## Version 0.2.4 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 ## Version 0.2.3 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 # @armory-sh/extensions Source: https://armory.sh/changelogs/extensions Release history for @armory-sh/extensions # @armory-sh/extensions Full package changelog. ## Version 0.1.9 ### Patch Changes * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.1.6 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.1.5 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.1.4 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.1.3 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.1.2 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.1.1 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 # @armory-sh/middleware-bun Source: https://armory.sh/changelogs/middleware-bun Release history for @armory-sh/middleware-bun # @armory-sh/middleware-bun Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.3.26 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.3.23 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.3.22 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.3.21 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.3.20 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.3.19 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.3.18 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ## Version 0.3.17 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.3.16 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.3.15 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.3.14 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.3.13 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.3.12 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ## Version 0.3.11 ### Patch Changes * Fix Structure ## Version 0.3.10 ### Patch Changes * d5977fa: Fix Compatiblity ## Version 0.3.9 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 * @armory-sh/facilitator\@0.2.12 ## Version 0.3.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 * @armory-sh/facilitator\@0.2.11 ## Version 0.3.8 ### Patch Changes * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 * @armory-sh/facilitator\@0.2.10 ## Version 0.3.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 * @armory-sh/facilitator\@0.2.9 ## Version 0.3.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 * @armory-sh/facilitator\@0.2.8 ## Version 0.3.5 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 * @armory-sh/facilitator\@0.2.7 ## Version 0.3.4 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 * @armory-sh/facilitator\@0.2.6 ## Version 0.3.3 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 * @armory-sh/facilitator\@0.2.5 ## Version 0.3.2 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 * @armory-sh/facilitator\@0.2.4 ## Version 0.3.1 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 * @armory-sh/facilitator\@0.2.3 # @armory-sh/middleware-elysia Source: https://armory.sh/changelogs/middleware-elysia Release history for @armory-sh/middleware-elysia # @armory-sh/middleware-elysia Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.3.26 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.3.23 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.3.22 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.3.21 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.3.20 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.3.19 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.3.18 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ## Version 0.3.17 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.3.16 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.3.15 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.3.14 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.3.13 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.3.12 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ## Version 0.3.11 ### Patch Changes * Fix Structure ## Version 0.3.10 ### Patch Changes * d5977fa: Fix Compatiblity ## Version 0.3.9 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 * @armory-sh/facilitator\@0.2.12 ## Version 0.3.9 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 * @armory-sh/facilitator\@0.2.11 ## Version 0.3.8 ### Patch Changes * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 * @armory-sh/facilitator\@0.2.10 ## Version 0.3.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 * @armory-sh/facilitator\@0.2.9 ## Version 0.3.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 * @armory-sh/facilitator\@0.2.8 ## Version 0.3.5 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 * @armory-sh/facilitator\@0.2.7 ## Version 0.3.4 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 * @armory-sh/facilitator\@0.2.6 ## Version 0.3.3 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 * @armory-sh/facilitator\@0.2.5 ## Version 0.3.2 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 * @armory-sh/facilitator\@0.2.4 ## Version 0.3.1 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 * @armory-sh/facilitator\@0.2.3 # @armory-sh/middleware-express Source: https://armory.sh/changelogs/middleware-express Release history for @armory-sh/middleware-express # @armory-sh/middleware-express Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.4.16 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.4.12 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.4.11 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.4.10 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.4.9 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.4.8 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.4.7 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ## Version 0.4.6 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.4.5 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.4.4 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.4.3 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.4.2 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.4.1 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 # @armory-sh/middleware-express-v4 Source: https://armory.sh/changelogs/middleware-express-v4 Release history for @armory-sh/middleware-express-v4 # @armory-sh/middleware-express-v4 Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.1.10 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.1.6 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.1.5 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.1.4 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.1.3 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.1.2 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.1.1 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 ## Version 0.3.19 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.3.18 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.3.17 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.3.16 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.3.15 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.3.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility # @armory-sh/middleware-hono Source: https://armory.sh/changelogs/middleware-hono Release history for @armory-sh/middleware-hono # @armory-sh/middleware-hono Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.3.28 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 * @armory-sh/extensions\@0.1.9 ## Version 0.3.25 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/extensions\@0.1.6 * @armory-sh/base\@0.2.25 ## Version 0.3.24 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/extensions\@0.1.5 * @armory-sh/base\@0.2.24 ## Version 0.3.23 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/extensions\@0.1.4 * @armory-sh/base\@0.2.23 ## Version 0.3.22 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/extensions\@0.1.3 * @armory-sh/base\@0.2.22 ## Version 0.3.21 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/extensions\@0.1.2 * @armory-sh/base\@0.2.21 ## Version 0.3.20 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/extensions\@0.1.1 * @armory-sh/base\@0.2.20 ## Version 0.3.19 ### Patch Changes * Add Simple Middleware Back * Updated dependencies * @armory-sh/base\@0.2.19 ## Version 0.3.18 ### Patch Changes * ALpah Test * Updated dependencies * @armory-sh/base\@0.2.18 ## Version 0.3.17 ### Patch Changes * Test Link * Updated dependencies * @armory-sh/base\@0.2.17 ## Version 0.3.16 ### Patch Changes * Completed E2E Flows w/ v2 * Updated dependencies * @armory-sh/base\@0.2.16 ## Version 0.3.15 ### Patch Changes * v2 Only, Cleanup * Updated dependencies * @armory-sh/base\@0.2.14 ## Version 0.3.14 ### Patch Changes * Add Deep Test Suite, Enhance Compatibility * Updated dependencies * @armory-sh/base\@0.2.13 ## Version 0.3.13 ### Patch Changes * Fix Structure ## Version 0.3.12 ### Patch Changes * d5977fa: Fix Compatiblity ## Version 0.3.11 ### Patch Changes * :wq! * Updated dependencies * @armory-sh/base\@0.2.12 * @armory-sh/facilitator\@0.2.12 ## Version 0.3.11 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.11 * @armory-sh/facilitator\@0.2.11 ## Version 0.3.10 ### Patch Changes * 0b7c70b: Automated release * 77ddc6c: Automated release * Updated dependencies \[0b7c70b] * Updated dependencies \[77ddc6c] * Updated dependencies \[0e32676] * Updated dependencies * @armory-sh/base\@0.2.10 * @armory-sh/facilitator\@0.2.10 ## Version 0.3.9 ### Patch Changes * Automated release ## Version 0.3.8 ### Patch Changes * Automated release ## Version 0.3.7 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.9 * @armory-sh/facilitator\@0.2.9 ## Version 0.3.6 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.8 * @armory-sh/facilitator\@0.2.8 ## Version 0.3.5 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.7 * @armory-sh/facilitator\@0.2.7 ## Version 0.3.4 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.6 * @armory-sh/facilitator\@0.2.6 ## Version 0.3.3 ### Patch Changes * Automated release * Updated dependencies * @armory-sh/base\@0.2.5 * @armory-sh/facilitator\@0.2.5 ## Version 0.3.2 ### Patch Changes * Cleanup * Updated dependencies * @armory-sh/base\@0.2.4 * @armory-sh/facilitator\@0.2.4 ## Version 0.3.1 ### Patch Changes * Cleanup Code, Add Bespoke Middleware * Updated dependencies * @armory-sh/base\@0.2.3 * @armory-sh/facilitator\@0.2.3 # @armory-sh/middleware-next Source: https://armory.sh/changelogs/middleware-next Release history for @armory-sh/middleware-next # @armory-sh/middleware-next Full package changelog. ## Unreleased ### Patch Changes * Added deterministic facilitator routing precedence for mix-and-match network/token/facilitator setups. * Fixed per-token facilitator resolution on shared chains to avoid wrong facilitator selection. * Added facilitator capability-based extension filtering in payment challenge headers (fail-open: unsupported keys are auto-ignored). * Added facilitator-aware pricing selection for middleware config flows (`network + token + facilitator` before fallback). ## Version 0.1.9 ### Patch Changes * 3ba536a: Streamline Client, Multitoken Middleware * Improve dynamic requirement handling across middleware and clients, and surface detailed payment verification errors. * Fix requirement selection/verification to use the accepted requirement dynamically (not first-item assumptions) * Support explicit `requirements` config paths consistently in middleware wrappers * Surface server verification details (for example `insufficient_funds`) in client retry failure errors * Add regression tests for non-primary requirement selection and client selector behavior * Clarify hooks vs extensions semantics in docs/READMEs and normalize docs page titles * e90cb54: Update Package Dodcs * 261eed7: Multichain Validation * e03c05c: Add Client Hooks, Fix Test Suite * Updated dependencies \[993834f] * Updated dependencies \[3ba536a] * Updated dependencies * Updated dependencies \[e90cb54] * Updated dependencies \[261eed7] * Updated dependencies \[e03c05c] * @armory-sh/base\@0.2.28 ## Version 0.1.6 ### Patch Changes * 281eeb8: Fix Versions * Updated dependencies \[281eeb8] * @armory-sh/base\@0.2.25 ## Version 0.1.5 ### Patch Changes * 4033813: Package Cleanup, Minor Docs * Updated dependencies \[4033813] * @armory-sh/base\@0.2.24 ## Version 0.1.4 ### Patch Changes * 99b2ede: Fix USDC Names * e6a88ff: Fix Dependency Resolution * 6697eec: Fix Nonce Type * 9ba2f62: Fix * a938742: Fixing Amount * Updated dependencies \[99b2ede] * Updated dependencies \[e6a88ff] * Updated dependencies \[6697eec] * Updated dependencies \[9ba2f62] * Updated dependencies \[a938742] * @armory-sh/base\@0.2.23 ## Version 0.1.3 ### Patch Changes * Fix Amount * Updated dependencies * @armory-sh/base\@0.2.22 ## Version 0.1.2 ### Patch Changes * Clenaup Flows * Updated dependencies * @armory-sh/base\@0.2.21 ## Version 0.1.1 ### Patch Changes * Next.js Middleware, Extensiosn Package, Client Robustness, Route Filtering Added * Updated dependencies * @armory-sh/base\@0.2.20 # CLI Source: https://armory.sh/cli Command-line tooling for Armory workflows The CLI docs live in the dedicated [CLI section](/make-payments/cli-overview). ## Start Here * [Overview](/make-payments/cli-overview) * [Create](/make-payments/cli-create) * [Verify](/make-payments/cli-verify) * [Examples](/make-payments/cli-examples) # Chain Preference Hook Source: https://armory.sh/client-hooks/chain Prefer specific networks when multiple payment options are available ```typescript theme={null} import { PaymentPreference } from '@armory-sh/client-hooks'; const hook = PaymentPreference.chain(['base', 'ethereum', 'skale-base']); ``` Use this hook first when you want deterministic network preference. # Cheapest Hook Source: https://armory.sh/client-hooks/cheapest Select the lowest-amount compatible payment option ```typescript theme={null} import { PaymentPreference } from '@armory-sh/client-hooks'; const hook = PaymentPreference.cheapest(); ``` This hook refines selection within the already-selected chain and token scope. # Combine Hooks Source: https://armory.sh/client-hooks/combine Compose multiple hooks and hook arrays into one list ```typescript theme={null} import { combineHooks, Logger, PaymentPreference } from '@armory-sh/client-hooks'; const hooks = combineHooks( PaymentPreference.chain(['base']), [PaymentPreference.token(['USDC'])], PaymentPreference.cheapest(), Logger.console(), null ); ``` # Custom Hooks Source: https://armory.sh/client-hooks/custom-hooks Create custom Armory hooks for advanced flow control Use custom hooks to implement project-specific behavior in payment lifecycle phases. ```typescript theme={null} import type { ClientHook } from '@armory-sh/client-hooks'; const customHook: ClientHook = { name: 'require-premium-route', onPaymentRequired: async (context) => { const url = typeof context.url === 'string' ? context.url : context.url.toString(); if (!url.includes('/premium')) { return; } }, onError: async (context) => { console.error('[hook-error]', context.phase, context.error); } }; ``` For custom x402 extension payload fields, use `createCustomHook` from `@armory-sh/extensions`. # Logger Hook Source: https://armory.sh/client-hooks/logger Emit payment lifecycle logs during client execution ```typescript theme={null} import { Logger } from '@armory-sh/client-hooks'; const hook = Logger.console({ prefix: '[x402]', enabled: true }); ``` # Armory Hooks Overview Source: https://armory.sh/client-hooks/overview Understand Armory's client hook lifecycle and execution model Armory hooks are lifecycle callbacks that run during payment execution. Hooks are not x402 protocol fields. They are local runtime behavior for selection, mutation, logging, and error handling. ## Lifecycle 1. `onPaymentRequired` 2. `selectRequirement` 3. `beforeSignPayment` 4. `afterPaymentResponse` 5. `onError` ## Execution Model * Hooks execute in array order * Selection narrows progressively as hooks run * Hook failures are fail-closed by default ## Next Pages * [Chain Preference](/client-hooks/chain) * [Token Preference](/client-hooks/token) * [Cheapest Selection](/client-hooks/cheapest) * [Logger](/client-hooks/logger) * [combineHooks](/client-hooks/combine) * [Custom Hooks](/client-hooks/custom-hooks) # Token Preference Hook Source: https://armory.sh/client-hooks/token Prefer specific assets when multiple token options are available ```typescript theme={null} import { PaymentPreference } from '@armory-sh/client-hooks'; const hook = PaymentPreference.token(['USDC', 'USDT', 'WBTC']); ``` Run this after chain preference if you want network-first, token-second selection. # Overview Source: https://armory.sh/extensions What x402 extensions are and how Armory uses them x402 extensions are protocol-level metadata attached to challenges and payment payloads via the `extensions` object. Use extensions when a server requires additional fields beyond core payment data, such as authentication, idempotency, or discovery metadata. ## Built-in Extensions * Sign-In-With-X (`siwx`) for wallet-authenticated access * Payment Identifier (`paymentIdentifier`) for idempotency * Bazaar (`bazaar`) for discovery metadata ## Extension Flow 1. Server declares required extensions in `PAYMENT-REQUIRED` 2. Client hooks inspect required extension metadata 3. Client adds extension payload fields before signing 4. Server verifies and processes extension data ## Next Pages * [Sign-In-With-X](/extensions/siwx) * [Payment Identifier](/extensions/payment-identifier) * [Bazaar](/extensions/bazaar) * [Custom Extensions](/extensions/custom) # Bazaar Source: https://armory.sh/extensions/bazaar Declare discovery extension metadata for x402 resources ## Server Declaration ```typescript theme={null} import { declareDiscoveryExtension } from '@armory-sh/extensions'; const extension = declareDiscoveryExtension({ required: true }); ``` Bazaar is primarily server-driven and used for discovery metadata in x402 resource ecosystems. # Custom Extensions Source: https://armory.sh/extensions/custom Build your own extension behavior with custom hooks ```typescript theme={null} import { createCustomHook } from '@armory-sh/extensions'; const customHook = createCustomHook({ key: 'my-extension', handler: async (context) => { if (!context.payload) { return; } context.payload.extensions = { ...(context.payload.extensions ?? {}), 'my-extension': { enabled: true } }; }, priority: 75 }); ``` ## Best Practices * Add extension data only if the server requested it * Keep extension payloads small and deterministic * Version extension data when schema changes # Payment Identifier Source: https://armory.sh/extensions/payment-identifier Use payment IDs for idempotency across payment requests ## Client Hook ```typescript theme={null} import { createPaymentIdHook } from '@armory-sh/extensions'; const autoIdHook = createPaymentIdHook(); const fixedIdHook = createPaymentIdHook({ paymentId: 'invoice-2026-00042' }); ``` ## Server Declaration ```typescript theme={null} import { declarePaymentIdentifierExtension } from '@armory-sh/extensions'; const extension = declarePaymentIdentifierExtension({ required: true }); ``` ## Utility ```typescript theme={null} import { generatePaymentId } from '@armory-sh/extensions'; const id = generatePaymentId(); ``` # Sign-In-With-X Source: https://armory.sh/extensions/siwx Add SIWX authentication to x402 payment flows ## Client Hook ```typescript theme={null} import { createSIWxHook } from '@armory-sh/extensions'; const hook = createSIWxHook({ domain: 'api.example.com', statement: 'Sign in to access protected routes', expirationSeconds: 3600 }); ``` ## Server Declaration ```typescript theme={null} import { declareSIWxExtension } from '@armory-sh/extensions'; const extension = declareSIWxExtension({ domain: 'api.example.com', statement: 'Sign in to access this API', network: 'eip155:8453', expirationSeconds: 3600 }); ``` ## Validation ```typescript theme={null} import { parseSIWxHeader, validateSIWxMessage, verifySIWxSignature } from '@armory-sh/extensions'; const payload = parseSIWxHeader(header); const messageResult = validateSIWxMessage(payload, 'https://api.example.com/data'); if (messageResult.valid) { const signatureResult = await verifySIWxSignature(payload, { evmVerifier: async () => true }); } ``` # Introduction Source: https://armory.sh/index Introduction to Armory and how to get started with x402 v2 payments Armory is a TypeScript toolkit for x402 v2 payments that lets APIs require wallet-based payment over standard HTTP flows. Armory targets x402 v2 wire compatibility so Armory clients and middleware can interoperate with Coinbase x402 SDK implementations. ## What You Can Build * Paid API endpoints using middleware in Express, Hono, Bun, Elysia, and Next.js. * Wallet-based API clients using Viem, Ethers.js, and Web3.js. * Multi-network and multi-token payment flows with shared base logic. ## How Armory Works 1. A protected endpoint returns `402` with `PAYMENT-REQUIRED`. 2. The client selects one option from `accepts[]` and signs a payment payload. 3. The retried request sends `PAYMENT-SIGNATURE`. 4. The server verifies/settles and returns data with `PAYMENT-RESPONSE`. ## Start Here * [Key Concepts](/key-concepts) * [Accept Payments](/accept-payments/express) * [Make Payments](/make-payments/viem) * [CLI](/cli) ## Core Packages * `@armory-sh/base`: shared protocol types, encoding, and payment flow logic. * Middleware packages: route protection and payment verification. * Client packages: wallet integration and payment retries. * `@armory-sh/extensions`: optional protocol extensions. * `@armory-sh/client-hooks`: optional selection/logging hooks. ## Supported Networks and Tokens Armory supports Ethereum, Base, SKALE, and testnets listed in the protocol docs, with major payment tokens including USDC. ## Next Step Go to [Key Concepts](/key-concepts) to understand the model before implementing server or client code. # Key Concepts Source: https://armory.sh/key-concepts Core x402 v2 concepts and how Armory applies them This page explains the core x402 v2 model and how Armory maps it into practical server and client libraries. ## What Armory Is Armory is a TypeScript toolkit for implementing x402 v2 payments over HTTP. * Server middleware packages enforce payment requirements and verify payloads. * Client packages create and send payment payloads from wallets. * Shared protocol logic and types live in `@armory-sh/base`. ## x402 v2 in One Flow 1. Client requests a protected resource. 2. Server returns `402` with `PAYMENT-REQUIRED` and an `accepts[]` list. 3. Client selects one requirement, signs payment authorization, and retries with `PAYMENT-SIGNATURE`. 4. Server verifies and settles, then returns data with `PAYMENT-RESPONSE`. ## Three Actors * Resource server: protects routes and requires payment. * Client: picks a requirement and signs authorization with a wallet. * Facilitator: verifies and settles payments. ## Core Objects * `PaymentRequirements`: server-offered requirement options in `accepts[]`. * `PaymentPayload`: client-signed payment payload tied to one accepted requirement. * `SettlementResponse`: settlement result returned from verification/settlement. * `VerifyResponse`: verification result from facilitator. ## HTTP Header Contract * `PAYMENT-REQUIRED`: challenge with `accepts[]` and resource metadata. * `PAYMENT-SIGNATURE`: client payment payload. * `PAYMENT-RESPONSE`: settlement response. ## Versioning Rule Armory is v2-only. Requests and responses should use x402 v2 fields and wire format. ## Scheme and Signing For EVM exact payments, Armory uses EIP-3009 (`transferWithAuthorization`) and EIP-712 signatures. * Payer signs authorization off-chain. * Settlement executes token transfer on-chain. * Nonce and validity windows prevent replay. ## Identifiers You Will See * Network: CAIP-2 format, for example `eip155:8453`. * Token/asset: token contract or CAIP asset form. * Chain/token inputs can often be provided as names, IDs, or CAIP forms. ## How to Apply This in Armory * Accept payments: start with a middleware package under `/accept-payments/*`. * Make payments: start with a client package under `/make-payments/*`. * Extend behavior: use extension docs and client hooks for selection/logging. ## References * [x402 Spec v2](https://github.com/coinbase/x402/blob/main/specs/x402-specification-v2.md) * [HTTP Transport v2](https://github.com/coinbase/x402/tree/main/specs/transports-v2/http.md) * [A2A Transport v2](https://github.com/coinbase/x402/tree/main/specs/transports-v2/a2a.md) # Create Source: https://armory.sh/make-payments/cli-create Scaffold server and client payment projects `armory create` scaffolds starter projects for payment-enabled servers and clients. ## Syntax ```bash theme={null} armory create