Pay-Per-Deploy with x402
DartUp's deploy API now accepts x402 payments. Send $0.50 USDC, skip the signup, and your code goes live. You need a wallet. Nothing else.
What is x402?
HTTP has had a 402 "Payment Required" status code since 1997. No one standardized what comes after it. Coinbase's x402 protocol does. A server returns 402 with a response containing the price, the recipient wallet, and the network. The client signs a USDC authorization, retries the request, and the server settles the payment on-chain.
Two seconds, start to finish. The client signs a gasless authorization. The server-side facilitator settles on-chain.
A Third Auth Path
DartUp supports API key auth and dashboard sessions. x402 adds a third path: pay-per-use. Sometimes creating an account is more friction than the deploy itself.
Your AI agent can deploy infrastructure mid-conversation by paying 50 cents. You can push a test project live without signing up. A script can deploy 20 services and pay for each one on the spot.
POST /api/deploy with no auth → HTTP 402 with payment instructions → sign & retry → your app is live.
How It Works
Four steps, one HTTP round trip with a payment in the middle:
Request a deploy (no auth)
Hit the deploy endpoint like normal, but without an API key or session:
curl -X POST https://dartup.dev/api/deploy \
-H "Content-Type: application/json" \
-d '{"github_url":"https://github.com/you/app"}'
Get a 402 back
DartUp returns HTTP 402 with a PAYMENT-REQUIRED header. The body tells your client exactly what to pay:
{
"x402Version": 2,
"accepts": [{
"scheme": "exact",
"network": "eip155:8453",
"amount": "500000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xDA47486F39efEddeB0d6ac819310831721676F26",
"maxTimeoutSeconds": 60
}],
"resource": {
"url": "/api/deploy",
"description": "Deploy a project on DartUp"
}
}That's $0.50 USDC on Base. The amount is in token units (USDC has 6 decimals, so 500000 = $0.50).
Sign and retry
Your x402-compatible client signs a gasless EIP-712 authorization and retries the request with a PAYMENT-SIGNATURE header. The @x402/fetch SDK does this for you.
Deploy goes live
DartUp verifies the payment, queues the deploy, settles the USDC transfer on-chain, and returns the deployment info with the transaction hash:
{
"success": true,
"deployment": {
"subdomain": "app-x7k2",
"url": "https://app-x7k2.dartup.dev",
"status": "pending"
},
"x402": {
"transaction": "0xabc123...",
"network": "eip155:8453",
"payer": "0xYourWallet..."
}
}Using x402 with @x402/fetch
The @x402/fetch wrapper catches 402 responses, signs the payment, and retries for you:
import { wrapFetch } from "@x402/fetch";
const x402Fetch = wrapFetch(fetch, walletClient);
const res = await x402Fetch("https://dartup.dev/api/deploy", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
github_url: "https://github.com/you/app",
subdomain: "my-app",
}),
});
const data = await res.json();
console.log(data.deployment.url);
// https://my-app.dartup.devTwelve lines of code. The wallet pays, the code deploys.
Using x402 with OpenClaw
If you have the DartUp skill installed in OpenClaw, x402 removes the need for a DARTUP_API_KEY. Point OpenClaw at a wallet and it pays, signs, and deploys for you:
You:
Deploy https://github.com/me/my-api to DartUp using x402. Pay from my wallet.
OpenClaw:
Deploying via x402 payment...
✓ Sent deploy request (no API key)
✓ Received 402: $0.50 USDC required
✓ Signed payment authorization
✓ Payment settled on Base (tx: 0xabc1...ef23)
Live at: https://my-api-r8x2.dartup.dev
Slack, Discord, a web chat, a terminal. Anywhere OpenClaw runs, the skill detects the 402, triggers the wallet signing flow, and completes the deploy.
x402 vs API Key vs Session
Three ways to authenticate with DartUp. Use whichever fits:
| x402 Payment | API Key | Session | |
|---|---|---|---|
| Account required | No | Yes | Yes |
| Billing | $0.50/deploy | Monthly plan | Monthly plan |
| Project limit | 3 per wallet | Depends on plan | Depends on plan |
| Features | Web apps, custom subdomains | All (by plan) | All (by plan) |
| Best for | AI agents, one-off deploys, scripts | Regular use, CI/CD | Dashboard UI |
Technical Details
- Network: Base mainnet (
eip155:8453) with a self-hosted facilitator - Token: USDC (6 decimals, 500000 = $0.50)
- Scheme: exact (fixed-amount transfer via EIP-3009 or Permit2)
- Facilitator: Self-hosted (built with
@x402/evm) - Settlement time: ~2 seconds end-to-end
- Protocol fees: None. Self-hosted facilitator, zero middleman fees.
Coming Soon
x402 is live on Base mainnet with real USDC. Next up: variable pricing. Pay more for larger projects, database add-ons, or longer-running daemons.
If you're building an AI agent that deploys infrastructure as part of its workflow, x402 removes the account management layer. HTTP request, wallet signature, live URL.
Try it now
Send a POST to /api/deploy with no auth and see the 402 response. Or sign up for a free account and use an API key. Both work.