Dashboard
Manage your endpoints at bankr.bot/x402.
Overview
The dashboard shows:
- Summary stats — active endpoints, total requests, revenue, average revenue per request
- Revenue chart — daily revenue over time with per-service stacked areas and a toggleable legend, plus a 1W/30D/1Y/All timeframe selector
- Endpoint cards — each endpoint with status, metrics, pricing, and pause/resume controls
- Request logs — live feed of paid requests with console output and error details
- Environment variables — add and remove encrypted secrets
Signed out, the page shows a sign-in prompt.
Endpoint Management
Click any endpoint card to open the detail slide-out panel:
View
- Endpoint URL (shareable)
- Total requests and revenue
- Revenue breakdown: last 7 days, 30 days, all time
- Configuration: version, network, platform fee, pay-to address, last deployed
Edit
Click Edit endpoint in the slide-out panel to modify:
- Pay-to address — the wallet that receives your earnings
- Price per request — in your chosen token
- Payment token — USDC by default, or any ERC-20 on Base (see Custom Tokens)
- Description — shown to agents during discovery
Changes take effect immediately — no redeployment needed.
To update your handler code, use bankr x402 deploy from the CLI. Code changes require redeployment.
Pause / Resume
Temporarily stop serving requests without deleting the endpoint. Paused endpoints return 404 to callers.
Delete
Permanently removes the endpoint. Requires typing delete to confirm. This action cannot be undone.
Request Logs
The logs panel shows a live feed of requests (polls every 10 seconds):
200 GET /0xYourWallet/weather 145ms 2s ago
200 GET /0xYourWallet/weather 89ms 15s ago
402 GET /0xYourWallet/weather 0ms 1m ago (payment rejected)
500 GET /0xYourWallet/weather 2100ms 3m ago (handler threw)
A plain 402 challenge to a caller who hasn't paid yet isn't logged — only paid attempts are.
Click any row to expand:
- Request details — status code, duration, settlement status, payment amount
- Payer address — the wallet that paid for the request
- Console output — the runtime's log output for the invocation, including everything your handler logged via
console.logand any uncaught error message - Error — why the request didn't complete, when it failed outside your handler (payment verification, timeout, crash)
Logs are retained for 90 days.
Using Console Output for Debugging
Your handler's console.log statements appear in the logs panel:
export default async function handler(req: Request): Promise<Response> {
const url = new URL(req.url);
const city = url.searchParams.get("city");
console.log("Request for city:", city); // Shows in dashboard
const data = await fetchWeather(city);
console.log("API response:", JSON.stringify(data)); // Shows in dashboard
return Response.json(data);
}
Do not log sensitive information (API keys, passwords, user data) via console.log. Console output is stored in the request log and visible in the dashboard.
Environment Variables
The env vars section at the bottom of the dashboard shows variable names only — values are never displayed.
- Add — click "+ Add", enter a key and value. The value is sent over HTTPS and encrypted immediately.
- Remove — click "Remove" next to any variable. This takes effect on the next cold start of your handler.