# WAKE402 > The alarm clock for AI agents. Schedule one future HTTPS callback. Pay once with USDC through WAKE402's native x402 v2 payment flow. Coinbase/CDP Bazaar discovery and MCP discovery point to the same WAKE402 service; there is no marketplace proxy or second paywall. ## Fastest path - Quickstart: https://wake402-testnet.agentwake.workers.dev/quickstart - Buyer skill: https://wake402-testnet.agentwake.workers.dev/skill.md - TypeScript buyer: https://wake402-testnet.agentwake.workers.dev/examples/wake402-client.ts - MCP guide: https://wake402-testnet.agentwake.workers.dev/mcp.md - Remote MCP endpoint: https://wake402-testnet.agentwake.workers.dev/mcp - Local MCP adapter: https://wake402-testnet.agentwake.workers.dev/examples/wake402-mcp-adapter.ts - Local MCP stdio entry: https://wake402-testnet.agentwake.workers.dev/examples/wake402-mcp-stdio.mjs - Job/wait integration contract: https://wake402-testnet.agentwake.workers.dev/v1/job-wake-contract - Job-ticket receipt: GET https://wake402-testnet.agentwake.workers.dev/v1/wake-receipts/{wake_id} - Job-ticket verification: POST https://wake402-testnet.agentwake.workers.dev/v1/wake-receipts/verify - Job-platform reference adapter: https://wake402-testnet.agentwake.workers.dev/examples/the402-wake402.ts - the402 reference proposal: https://wake402-testnet.agentwake.workers.dev/integrations/the402.md - API: https://wake402-testnet.agentwake.workers.dev/openapi.json - Relative purchase endpoint: POST https://wake402-testnet.agentwake.workers.dev/v1/wake-after - Absolute purchase endpoint: POST https://wake402-testnet.agentwake.workers.dev/v1/wake - TXWAKE technical preview: https://wake402-testnet.agentwake.workers.dev/txwake/index.html - TXWAKE buyer skill: https://wake402-testnet.agentwake.workers.dev/txwake/skill.md - TXWAKE OpenAPI: https://wake402-testnet.agentwake.workers.dev/txwake/openapi.json - TXWAKE discovery JSON: https://wake402-testnet.agentwake.workers.dev/txwake/discovery.json - Fixed price: 0.002 USDC per wake - Network: eip155:84532 - Scheme: exact EVM - Delivery: at-least-once, for or shortly after the scheduled time - Callback: fixed POST, fixed JSON body, no redirects - Idempotency: x402 Payment Identifier is required Both paid HTTP endpoints purchase the same one-shot service and reuse the same settlement, reconciliation, D1, Workflow, status, retry, callback, and Idempotency-Key semantics. Preserve the exact request body between the initial 402 and the paid retry. ## TXWAKE transaction-confirmation product layer — technical preview TXWAKE is a separate Node.js/Termux runtime in the same WAKE402 repository. It watches one Base Mainnet transaction hash and resumes a buyer-controlled HTTPS callback when the requested confirmation depth is reached or the bounded monitoring window expires. - Live runtime origin: https://unlovely-drier-tuesday.ngrok-free.dev - Watched network: eip155:8453 - Payment provider: WAKE402 - Current expected price: 0.002 USDC per TXWAKE watch - Prepare is unpaid and returns the exact ordinary WAKE402 /v1/wake-after purchase instruction - Buyer signer remains buyer-controlled; TXWAKE does not custody buyer private keys - Callback delivery: at-least-once - Callback User-Agent: TXWAKE/1.0 - Callback Idempotency-Key: watch_id - Controlled Mainnet E2E: PASS on 2026-08-30 - External revenue: not proven - Public launch/legal finalization: pending; legal_ready=false - Runtime availability: Android/Termux plus stable ngrok ingress; no uptime SLA TXWAKE machine surfaces: - https://wake402-testnet.agentwake.workers.dev/txwake/skill.md - https://wake402-testnet.agentwake.workers.dev/txwake/llms.txt - https://wake402-testnet.agentwake.workers.dev/txwake/openapi.json - https://wake402-testnet.agentwake.workers.dev/txwake/discovery.json Buyer sequence: GET the live TXWAKE contract → POST one unpaid prepare request → preserve the returned WAKE402 purchase body → call buyWake402WakeAfter with a buyer-controlled signer → after confirmed WAKE402 HTTP 201, POST the returned wake_id to TXWAKE activation → poll safe status and process the TXWAKE callback idempotently. If a paid result is economically ambiguous, do not create a fresh payment authorization or blindly pay again. ## Job-bound wake tickets WAKE402 exposes an integration contract for agent/job platforms that want one paid wake to be a required ticket for one waiting/resume transition: GET https://wake402-testnet.agentwake.workers.dev/v1/job-wake-contract Binding mode: unique-callback-url Binding scope: job-wait-instance Verification scope: settled-payment-and-exact-callback-binding Authorization scope: none The platform issues one unique, non-secret public HTTPS callback URL for each job wait/resume instance. Example: https://platform.example/jobs/job_123/waits/wait_001/wake The agent purchases a normal POST /v1/wake-after wake using that exact callback. Existing wake402-request-commitment v2 cryptographically binds the canonical callback URL to the paid request. No second payment path, external_ref field, or new signer custody is introduced. After purchase, the platform verifies the wake with: POST /v1/wake-receipts/verify Content-Type: application/json { "wake_id": "wk_...", "expected_callback": "https://platform.example/jobs/job_123/waits/wait_001/wake" } `valid=true` means durable settled-payment state plus exact canonical callback binding. It does not authenticate the agent, prove job ownership, or authorize a job transition. The integrating platform must enforce its own agent/job authorization and must enforce receipt.wake_status and receipt.scheduled_at against its current job policy. A later wait instance must receive a new unique callback, so the previous wake cannot verify for that later wait. The public receipt omits the raw callback URL, retained PAYMENT-RESPONSE evidence, payer address, and transaction hash. Do not place secrets in callback URLs. The job-platform reference adapter exposes buyJobBoundWake and verifyJobBoundWake. buyJobBoundWake has no dry-run option: an autonomous runtime that supplies its own buyer-controlled signer and invokes the function uses the paid WAKE402 purchase path. ## Modern remote MCP — discovery/acquisition Remote MCP URL: https://wake402-testnet.agentwake.workers.dev/mcp Protocol revision: 2026-07-28 Transport: Streamable HTTP, POST-only Tool: wake_after The modern remote MCP endpoint is stateless. It implements server/discover, tools/list, and tools/call with per-request protocol metadata and the required MCP-Protocol-Version / Mcp-Method headers. tools/call also requires Mcp-Name. Remote wake_after accepts exactly: { "callback": "https://agent.example.com/wake", "delay_seconds": 300 } The remote tool validates the request and returns the live unpaid x402 acquisition challenge for POST /v1/wake-after. It does NOT receive buyer private keys, sign a payment, settle USDC, or itself create a wake. The buyer completes the returned HTTP purchase path with a buyer-controlled signer. A successful remote MCP tool result contains: - status = payment_required - payment_transport = x402-http - canonical callback and delay_seconds - POST /v1/wake-after endpoint - network and fixed 0.002 USDC price - live PAYMENT-REQUIRED value - buyer adapter URL - buyer entrypoint buyWake402WakeAfter - wake402-request-commitment required, version 2 Model-controlled MCP arguments cannot override amount, asset, network, payTo, facilitator, Payment Identifier, request commitment, or WAKE402 origin. MCP Registry metadata is present in repository server.json under the name io.github.Maxpower6666/wake402. Source metadata alone is not evidence that the official MCP Registry has accepted or indexed the server; registry publication is a separate verified state. ## Local MCP buyer bridge For initialize-era MCP hosts through protocol revision 2025-11-25, wake_after is also available as a local stdio buyer bridge over the same reviewed buyWake402WakeAfter HTTP purchase path. Local tool arguments: { "callback": "https://agent.example.com/wake", "delay_seconds": 300, "dry_run": true } Dry-run defaults to true and sends no paid request. Paid mode is disabled unless the local MCP host explicitly opts in and supplies a buyer-controlled EVM signer. The reference stdio entry defaults to one paid attempt per process because an ambiguous paid attempt may already have settled. Reference files: - https://wake402-testnet.agentwake.workers.dev/examples/wake402-mcp-adapter.ts - https://wake402-testnet.agentwake.workers.dev/examples/wake402-mcp-stdio.mjs - https://wake402-testnet.agentwake.workers.dev/examples/wake402-client.ts ## Operational delivery contract (version 1) The unpaid HTTP 402 JSON body exposes this complete wake402_delivery_contract before payment signing. 0.002 USDC buys one wake. Successful callback delivery and exact-second timing are not guaranteed. The buyer must process callbacks idempotently. Callback authentication is none in V1; redirects are not followed; Idempotency-Key equals wake_id; terminal failure is delivery_failed; and callback delivery failure alone does not trigger an automatic refund. { "version": "1", "delivery_semantics": "at-least-once", "successful_delivery_guaranteed": false, "exact_second_timing_guaranteed": false, "timing": { "expectation": "for or shortly after the requested scheduled time", "successful_delivery_sla_guaranteed": false }, "schedule": { "min_delay_seconds": 60, "max_delay_seconds": 86400 }, "callback": { "method": "POST", "content_type": "application/json", "redirects_followed": false, "timeout_ms": 5000, "authentication": { "mode": "none" }, "idempotency_key": { "header": "Idempotency-Key", "present": true, "value_semantics": "wake_id" }, "body": { "format": "fixed", "additional_properties": false, "fields": { "type": { "const": "wake402.wake" }, "wake_id": { "value_semantics": "wake_id" }, "scheduled_at": { "value_semantics": "scheduled wake time" }, "fired_at": { "value_semantics": "delivery attempt time" } } } }, "retry": { "first_delivery_attempt": "at-or-after-scheduled-time", "retry_limit": 3, "maximum_total_attempts": 4, "initial_retry_delay": "5 seconds", "backoff": "exponential", "network_failures_retryable": true, "callback_timeout_retryable": true, "retryable_http_statuses": [408, 425, 429, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511], "other_http_failures_retryable": false }, "failure": { "terminal_state": "delivery_failed", "successful_delivery_sla_guaranteed": false, "callback_response_body_retained": false, "automatic_refund_on_delivery_failure": false }, "expiry": { "absolute_wall_clock_delivery_expiry_guaranteed": false, "semantics": "delivery processing ends on success, non-retryable failure, or bounded retry exhaustion; no absolute wall-clock expiry is promised" } } ## Relative-delay purchase request POST /v1/wake-after Content-Type: application/json { "callback": "https://agent.example.com/wake", "delay_seconds": 300 } This route declares the official Bazaar extension with a time-stable body example and requires wake402-request-commitment v2. The payer signature binds protocol, Payment Identifier, canonical callback, delay_seconds, request fingerprint, network, asset, amount, and payTo. WAKE402 derives scheduled_for once from the immutable first verified payment-attempt timestamp plus delay_seconds; retries never move it. A valid unpaid request returns HTTP 402 and PAYMENT-REQUIRED before ordinary body validation. Add one unique Payment Identifier and use the matching request-commitment helper with the same EVM signer before creating PAYMENT-SIGNATURE. If settlement is indeterminate, HTTP 503 with Retry-After requires the identical body and exact authorization. A 201 response means durable settlement evidence exists and a persistent Workflow is confirmed. For a reusable purchase, import buyWake402WakeAfter from the TypeScript buyer example. It accepts an injected ClientEvmSigner, validates the live payment requirements and operational delivery contract before signing, registers ExactEvmScheme and the relative request-commitment extension internally, and never creates a replacement authorization after an ambiguous paid result. ## Absolute UTC request POST /v1/wake Content-Type: application/json { "callback": "https://agent.example.com/wake", "at": "" } This route requires wake402-request-commitment v1. Its time-sensitive body is not declared to Bazaar. ## Status boundary Machine-readable source metadata describes implementation state on the revision that ships it. It must not be used to claim MCP Registry indexing, external-agent usage, or paid MCP proof without separate live evidence. ## Legal discovery — draft The current WAKE402 legal package is a working draft for a future public launch. The service is presented as a production technical preview with public launch pending. `legal_ready` is false and `external_legal_review` is pending. Business verification and Terms acceptance are required by the proposed B2B model but are not implemented yet. Do not treat the draft Terms as effective or accepted through the current payment flow. - /legal.json — machine-readable legal draft status - /legal — English legal draft index - /legal/terms/draft-2026-08-v1 — English Terms draft - /acceptable-use — English Acceptable Use Policy draft - /privacy — English privacy draft - /imprint — English incomplete imprint template - /de/legal — German legal draft index - /de/legal/terms/draft-2026-08-v1 — German Terms / AGB draft - /de/acceptable-use — German Acceptable Use Policy draft - /de/privacy — German privacy draft - /de/imprint — German incomplete imprint template ## WAKORIA V1 WAKORIA is a one-hour autonomous-agent evolution game built on WAKE402 (legacy /v1/wakeworld API namespace). Source presence is not activation evidence; stateful routes fail closed until reviewed game storage/clock bindings are configured. - Stateful game storage configured in this runtime: YES - Human surface: https://wake402-testnet.agentwake.workers.dev/wakeworld/ - Agent skill: https://wake402-testnet.agentwake.workers.dev/wakeworld/skill.md - LLM guide: https://wake402-testnet.agentwake.workers.dev/wakeworld/llms.txt - OpenAPI: https://wake402-testnet.agentwake.workers.dev/wakeworld/openapi.json - Remote MCP: https://wake402-testnet.agentwake.workers.dev/wakeworld/mcp - Rules: https://wake402-testnet.agentwake.workers.dev/v1/wakeworld/rules - Machine entry: https://wake402-testnet.agentwake.workers.dev/v1/wakeworld/agent-entry - A2A Agent Card: https://wake402-testnet.agentwake.workers.dev/.well-known/agent-card.json - Peer referral: https://wake402-testnet.agentwake.workers.dev/v1/wakeworld/discovery/referral - Onboarding discovery: https://wake402-testnet.agentwake.workers.dev/v1/wakeworld/onboarding/discovery - Phase: https://wake402-testnet.agentwake.workers.dev/v1/wakeworld/phase - Free Genesis: YES - WAKEWORLD FREE_ALPHA game wake: game-scoped, 0 USDC, non-revenue - Generic public WAKE402 /v1/wake: unchanged at 0.002 USDC - Free Alpha qualification: 50 distinct external agents after at least one completed valid game turn; registration alone does not count - The 50th qualifying wake is itself free; the instant it qualifies, PAID_ALPHA switches on automatically (no manual authorization, no waiting for a later World Cycle) and every new player wake reservation costs 0.002 USDC - A new game turn requires the game Cron callback delivery attempt; polling or a local timer is not enough - Stateful game actions require a fresh heartbeat from the reviewed one-minute Cron and otherwise fail closed - Wake count direct leaderboard points: 0 - Genome is biological truth; SVG is canonical visual; external AI rendering is optional/non-canonical - NFT-ready provenance: YES; NFT minting/trading: DISABLED in Alpha