Payment Rails
Wayforth supports three payment tracks: card (Stripe Treasury), on-chain USDC (Base L2), and x402 (HTTP-native micropayments). All tracks share the same credit system.
Overview
Monthly subscription or one-time top-up via credit/debit card. Settled through Stripe. Fastest onboarding — no wallet required.
Top-up credits by sending USDC on the Base L2 network. Gas-free (Base covers fees). Ideal for teams that prefer on-chain settlement.
HTTP-native per-request payments. No API key, no subscription. USDC micropayments embedded directly in the HTTP lifecycle. experimental
Comparison
| Track A | Track B | Track C | |
|---|---|---|---|
| Settlement | Fiat via Stripe | USDC on Base | USDC on Base |
| Billing model | Monthly sub + optional top-up | Top-up credits | Per-request |
| API key needed | Yes | Yes | No |
| Setup time | 30 seconds | ~2 minutes | Wallet + x402 client |
| Min charge | $5 | $5 | ~$0.001 |
| Best for | Most users | Web3 teams | Agent / ephemeral use |
Track A — Card (Stripe Treasury)
The default payment method. Subscribe to a monthly plan or purchase credits with any major credit or debit card.
Subscriptions
Monthly subscriptions include a fixed call quota that resets on your billing anniversary. Unused calls do not roll over.
| Plan | Calls/month | Price | Overage |
|---|---|---|---|
| free | 100 | $0 | – |
| builder | 1,000 | $9/mo | Top-up packages |
| starter | 3,500 | $29/mo | Top-up packages |
| pro | 12,000 | $79/mo | Top-up packages |
| growth | 40,000 | $199/mo | Top-up packages |
Upgrading via API
curl -X POST https://gateway.wayforth.io/billing/upgrade \
-H "x-wayforth-api-key: $WAYFORTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"target_tier": "pro"}'
# Returns a Stripe Checkout URL
# {"checkout_url": "https://checkout.stripe.com/..."}
Dunning policy
If a card payment fails, Wayforth retries on days 1, 4, and 7. After 3 failures your plan is downgraded to the nearest tier whose quota matches your actual usage. You are notified by email at each step.
Track B — USDC on Base
Top up credits by sending USDC to your Wayforth wallet address on the Base L2 network. Credits are credited at a fixed rate of $0.01 USD per credit.
Getting your wallet address
curl https://gateway.wayforth.io/billing/wallet \
-H "x-wayforth-api-key: $WAYFORTH_API_KEY"
{
"wallet_address": "0x742d35Cc6634C0532925a3b8D4C9Cf4e12345678",
"network": "base",
"token": "USDC",
"min_deposit_usd": 5.00
}
Credit conversion
Credits are applied to your account immediately after 2 block confirmations (~4 seconds on Base). No gas fees — Base's EIP-4844 blob transactions cover L2 fees.
| USDC sent | Credits received |
|---|---|
| $5.00 | 500 credits |
| $10.00 | 1,100 credits (+10% bonus) |
| $25.00 | 3,000 credits (+20% bonus) |
| $50.00 | 7,000 credits (+40% bonus) |
Base network only. Sending USDC on Ethereum mainnet or other chains will not credit your account. Always verify you are on the Base network (Chain ID: 8453) before sending.
Track C — x402
x402 is an emerging standard for HTTP-native micropayments. Instead of pre-funding an account, each API request carries its own payment authorization, settled on-chain in real time.
The 402 flow
- Client sends a standard HTTP request (no API key)
- Gateway returns
402 Payment Requiredwith aX-Payment-Descriptorheader - Client constructs and signs a USDC transfer on Base
- Client re-sends the request with the signed payment in
X-Paymentheader - Gateway verifies the payment, forwards the request, and returns the response
Payment descriptor format
// X-Payment-Descriptor (returned on 402)
{
"version": "1.0",
"scheme": "exact",
"network": "base",
"token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "3000",
"payee": "0x742d35Cc6634C0532925a3b8D4C9Cf4e12345678",
"memo": "wayforth:execute:deepl",
"expires": 1748000000
}
x402 client libraries
# Python
pip install x402-client
# TypeScript / Node
npm install @x402/client
import { X402Client } from '@x402/client';
const x402 = new X402Client({
privateKey: process.env.WALLET_PRIVATE_KEY,
rpcUrl: 'https://mainnet.base.org',
});
const res = await x402.post('https://gateway.wayforth.io/v1/execute/deepl', {
text: 'Hello',
target_lang: 'ES',
});
console.log(await res.json()); // { translation: 'Hola', ... }
Status: x402 execution is available on all tier 1–3 services. Higher tiers will be enabled as the protocol matures. Follow github.com/coinbase/x402 for spec updates.
Credit system
Wayforth uses a unified credit system across all three payment rails. Credits never expire and carry over between billing periods.
How credits work
- 1 credit = 1 API call to any managed service (unless the service specifies otherwise)
- Credits from your monthly subscription reset each billing period
- Top-up credits are permanent and never reset
- Subscription credits are used before top-up credits
- Failed calls that were rerouted via self-healing are not charged
Check your balance
curl https://gateway.wayforth.io/v1/balance \
-H "x-wayforth-api-key: $WAYFORTH_API_KEY"
{
"credits_remaining": 847,
"credits_included": 1000,
"tier": "builder",
"billing_period_start": "2026-05-01T00:00:00Z",
"next_reset": "2026-06-01T00:00:00Z",
"days_until_reset": 15,
"forecast": {
"daily_avg_calls": 10,
"days_remaining_at_current_rate": 84,
"projected_reset_balance": 697,
"will_exhaust_before_reset": false
}
}
Balance warnings
Wayforth fires webhook events when your balance runs low:
| Event | Trigger |
|---|---|
wayf.balance_warning_80 | 80% of credits consumed in billing period |
wayf.balance_warning_95 | 95% of credits consumed |
wayf.balance_low | Fewer than 50 credits remaining |
Top-up packages
Supplement any plan with permanent credits. Available on Track A (card) and Track B (USDC).
Purchase via API
curl -X POST https://gateway.wayforth.io/billing/topup \
-H "x-wayforth-api-key: $WAYFORTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"package": "large"}'
# Returns a Stripe Checkout URL
# {"checkout_url": "https://checkout.stripe.com/..."}
Founding member bonus: Founding member accounts are those created before August 31, 2026. Founding members receive a one-time 500-call bonus on their first paid subscription. The bonus is applied once and does not stack with top-up packages.