Skip to main content

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.

note

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.log and 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);
}
caution

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.