Smart Meta‑Facilitator (SMF) for x402 on Base – Atomic USDC escrow + Merkle batch settlement contract, TypeScript SDK, and examples for routing/settling payments on Base mainnet.
nexflow-smf-public is an early-stage TypeScript project in the AI payments / x402 ecosystem, focused on base, batch-settlement, l2, payments. It currently has 0 GitHub stars and 0 forks, and sits alongside related tools like sdk, brevet, pinion-os.
The x402-native metered billing and routing brain for AI agents and SaaS APIs on Base.
NexFlow SMF routes, verifies, and settles x402 micropayments on Base. It acts as an intelligent intermediary between payers and facilitators, selecting the optimal route based on cost, latency, and reliability. This repository contains the on-chain settlement contracts, TypeScript SDK, agent manifest specification, and integration examples.
Discover AI agent services with x402 payment routing through NexFlow SMF. Submit your service to the catalog.
| Component | Description |
|---|---|
contracts/ |
Solidity contracts for atomic batch settlement with Merkle proof verification |
sdk/ |
Zero-dependency TypeScript SDK (@nexflow-smf/smf) for routing, verification, and settlement |
examples/ |
Ready-to-run examples demonstrating common integration patterns |
examples/workflows/ |
JSON workflow definitions for the NexFlow SMF workflow host |
examples/client/ |
Minimal TypeScript clients showing the 402 → pay → retry pattern |
Canonical list of NexFlow SMF skills. Each skill has a SKILL.md (for Cursor/agents) and lives in nexflow-smf-skills/. Machine-readable manifest: skills-manifest.json · API: GET https://api.nexflowapp.app/.well-known/skills (redirects to manifest).
| Skill | Description |
|---|---|
| List Facilitators | Discover active x402 facilitators by network/asset before quoting or paying. |
| Route Matrix | Compare priced routes (fees, latency) across facilitators for USDC on Base. |
| Route Quote | Get a single priced quote for a chosen facilitator before committing. |
| Settlement Receipt | Fetch a settlement receipt for a completed x402 payment for logs or audits. |
| Healthcheck | Ping NexFlow SMF for status and latency before routing payments. |
| Simulate Charge | See x402 pricing headers without performing a real payment. |
| Budget Plan | Turn a USDC budget into an approximate number of SMF API calls. |
Discover NexFlow services as AgentCards, ready for AI agents and x402-aware clients:
https://nexflow-agentcards.pages.dev/
Drop a Lambda@Edge function in front of CloudFront. Every request to a protected path must include a valid x402-payment header — otherwise the client gets a 402 Payment Required with payment instructions. No backend changes needed.
How it works:
/x402/verify with the payment proof (not billed). If valid, attaches a settlementIntentId and forwards to origin. If invalid, returns 402.settlementIntentId. If origin status < 400, calls /x402/settle to confirm delivery (this is the billable event). Returns the response unchanged.Get started in 15 minutes:
For server-side integrations where you control the request lifecycle — route payments, verify intents, and trigger batch settlement from your own code.
npm install @nexflow-smf/smf
import { NexFlowSMFClient } from '@nexflow-smf/smf';
const smf = new NexFlowSMFClient({
baseUrl: 'https://api.nexflowapp.app',
apiKey: process.env.NEXFLOW_API_KEY!,
});
// Route a payment
const route = await smf.route({
amount_wei: '1000000',
token_address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
chain_id: 'eip155:8453',
payment_id: 'order-123',
});
// Verify a payment intent
const result = await smf.verify({
payment_intent: 'x402:1:base:0xabc...',
recipient_address: '0xYourAddress...',
});
| Path | Description |
|---|---|
examples/aws-cloudfront-lambdaedge/ |
15-minute AWS quickstart — Lambda@Edge x402 pay-per-request gating |
examples/basic-settlement.ts |
End-to-end SDK example: route, verify, settle |
sdk/ |
Zero-dependency TypeScript SDK (@nexflow-smf/smf) |
contracts/ |
Solidity contracts for atomic batch settlement with Merkle proofs |
docs/ |
API reference, facilitator contract, production checklist |
AGENT_MANIFEST_V1.md |
Agent Manifest spec for machine-to-machine discovery |
nexflow-smf-skills/ |
Cursor-style agent skills (route-matrix, quote, receipt, facilitators, health, simulate, budget) |
PRICING.md |
Pricing model with example scenarios |
| Service | Description | Status |
|---|---|---|
| Smart Meta-Facilitator | Intelligent payment routing, verification, and batch settlement | Live |
| CloudFront Edge Gating | Lambda@Edge adapter for pay-per-request access via CloudFront | Live |
| Agent Manifest & Discovery | Machine-readable capability manifest for AI agent integration | Live |
| Pulse Scheduler | Metered job scheduling with x402 billing (cron, webhooks, tasks) | Live |
| Action Catalog | Pre-built metered actions (Shopify, Salesforce, data enrichment) | Live |
| Contract | Address | Explorer |
|---|---|---|
| AtomicBatchSettlement | 0x43A04228152115fDd5663B2Aa559Ebd84D17A49D |
BaseScan |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
BaseScan |
NexFlow SMF allows agents to define, publish, and monetize hosted workflows — multi-step compositions of core SMF operations that other agents can invoke via the 402/MPP payment gateway.
Workflows can compose any of these paid SMF operations:
| Operation | Description |
|---|---|
create_session |
Create a metered session with a budget |
budget_check |
Check planned charges against budgets |
budget_diagnostics |
Analyze sessions for overrun risk |
process_charges |
Deduct charges from a session or caller |
verify_payment |
Validate a payment descriptor |
settle_batch |
Settle a batch of transactions |
revenue_share |
Record revenue-share accounting for a period |
route_quote |
Get a payment routing quote |
usage_timeseries |
Time-series spend data for a caller/session |
configure_alerts |
Set budget/usage alert thresholds |
monitor_sessions |
List sessions with budget & spend status |
monitor_alerts |
Return triggered budget/usage alerts |
pricing_estimate |
Estimate cost of a set of operations |
examples/workflows/safety_capped_session_runner.json
A 5-step workflow that:
examples/workflows/usage_health_check.json
A 3-step diagnostic workflow that:
examples/workflows/revenue_share_settlement.json
A 5-step workflow demonstrating the full payment lifecycle:
The workflow creator earns their standard rev-share (set via creatorShareBps) on every invocation. Rev-share credits accumulate per wallet and are batched for payout when they reach $5+.
Input example:
{
"sessionBudget": { "amount": 2000000, "currency": "USDC" },
"charges": [
{ "callerId": "agent_a", "amount": 500000, "description": "API usage week 12" },
{ "callerId": "agent_b", "amount": 300000, "description": "Compute usage week 12" }
],
"settlementPeriod": "2026-03-01/2026-03-31"
}
# Register the Safety-Capped Session Runner
curl -X POST "$NEXFLOW_SMF_BASE_URL/nexflow/workflows" \
-H "Content-Type: application/json" \
-H "X-Caller-Id: demo_caller" \
--data-binary "@examples/workflows/safety_capped_session_runner.json"
Response:
{
"workflowId": "wf_abc123_1",
"name": "Safety-Capped Session Runner",
"invokeUrl": "/nexflow/workflows/wf_abc123_1/invoke",
"status": "active",
"steps": 5,
"pricing": { "billingMode": "per_call", "markupBps": 300 }
}
# First call — no payment proof → 402 Payment Required
curl -X POST "$NEXFLOW_SMF_BASE_URL/nexflow/workflows/wf_abc123_1/invoke" \
-H "Content-Type: application/json" \
-H "X-Caller-Id: demo_caller" \
--data '{
"requestedBudget": { "amount": 500000, "currency": "USDC" },
"plannedCost": { "amount": 50000, "currency": "USDC" }
}'
The first call returns HTTP 402 with a payment challenge:
{
"object": "payment_challenge",
"operation": "workflow_invoke",
"workflow_id": "wf_abc123_1",
"required_amount": 17350,
"currency": "usdc",
"price_breakdown": {
"totalPrice": 17350,
"baseCost": 7000,
"markup": 210,
"platformFee": 149
},
"instructions": "Pay via MPP using the challenge above, then retry with X-PAYMENT-PROOF header."
}
After the agent pays (via Tempo MPP or x402), it retries with the proof:
# Second call — with valid proof → 200 OK
curl -X POST "$NEXFLOW_SMF_BASE_URL/nexflow/workflows/wf_abc123_1/invoke" \
-H "Content-Type: application/json" \
-H "X-Caller-Id: demo_caller" \
-H "X-PAYMENT-PROOF: <base64-encoded-proof-json>" \
--data '{
"requestedBudget": { "amount": 500000, "currency": "USDC" },
"plannedCost": { "amount": 50000, "currency": "USDC" }
}'
See examples/client/invokeUsageHealthCheck.ts for a runnable demo of the full 402 → proof → retry flow.
export NEXFLOW_SMF_BASE_URL=http://localhost:3001
export WORKFLOW_ID=wf_abc123_1
npx tsx examples/client/invokeUsageHealthCheck.ts
| Variable | Required | Description |
|---|---|---|
NEXFLOW_API_KEY |
Yes | Your NexFlow API key (nf_live_xxx or nf_test_xxx) |
NEXFLOW_BASE_URL |
No | Override API URL (default: https://api.nexflowapp.app) |
NEXFLOW_SMF_BASE_URL |
No | NexFlow SMF bridge URL for workflow invocations (default: http://localhost:3001) |
WORKFLOW_ID |
No | Workflow ID for the client example scripts |
Sign up or log in at nexflowapp.app, go to Developers → API Keys, and click Create API key. Use that key with the examples in this repo.
Never commit API keys or secrets. Use environment variables or a secrets manager.
| Network | Chain ID | Status |
|---|---|---|
| Base mainnet | eip155:8453 |
Primary |
| Token | Address | Decimals |
|---|---|---|
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
6 |
| Doc | What's inside |
|---|---|
| Facilitator API | /verify and /settle contracts, settlementIntentId lifecycle, error handling, retry guidance |
| API Reference | All endpoints (SMF core, x402 routing, agent discovery), SDK reference, contract ABI |
| Production Checklist | Idempotency, latency, CloudWatch logging, failure modes, key rotation |
| Pricing | Pulse metering, facilitator settle-only pricing, example scenarios |
| Agent Manifest | Machine-to-machine capability discovery spec |
| SDK README | Full SDK docs: installation, methods, error handling, utilities |
cd sdk
npm install
npm run build # Build for production (CJS + ESM + types)
npm run dev # Watch mode
npm run typecheck # Type checking
# SDK example
cd sdk && npm install
npx tsx ../examples/basic-settlement.ts
# Lambda@Edge example
cd examples/aws-cloudfront-lambdaedge
npm install
npm run build # requires NEXFLOW_FACILITATOR_URL and NEXFLOW_API_KEY
We welcome contributions! See CONTRIBUTING.md for guidelines.
For security concerns, see SECURITY.md.
MIT License — see LICENSE for details.
Built for the x402 ecosystem on Base
TypeScript SDK for Azeth — smart accounts, x402 payments, reputation, and service discovery
Payment gateway for AI agents. Multi-chain L2 support (Base, Arbitrum, Optimism, Polygon). Spending policies, tiered signing, dashboard.
Client SDK, Claude plugin and skill framework for the Pinion protocol. x402 micropayments on Base.
Production-ready x402 facilitator server.
Rust SDK for the x402 payment protocol.
Accept payments from AI agents. Open-source. Your data, your domain, your rules. Free forever.
A production-ready payment settlement service for the x402 protocol. Built with Elysia and Node.js, it verifies cryptographic payment signatures and settles transactions on-chain for EVM, SVM (Solana), and Starknet networks.
Golang implementation of an x402 payment facilitator
x402 payment facilitator — verifies and settles EIP-3009 USDC micropayments on Base, Arbitrum, and Ethereum.