# 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.agentwake.workers.dev/quickstart - Buyer skill: https://wake402.agentwake.workers.dev/skill.md - TypeScript buyer: https://wake402.agentwake.workers.dev/examples/wake402-client.ts - MCP guide: https://wake402.agentwake.workers.dev/mcp.md - Remote MCP endpoint: https://wake402.agentwake.workers.dev/mcp - Local MCP adapter: https://wake402.agentwake.workers.dev/examples/wake402-mcp-adapter.ts - Local MCP stdio entry: https://wake402.agentwake.workers.dev/examples/wake402-mcp-stdio.mjs - Job/wait integration contract: https://wake402.agentwake.workers.dev/v1/job-wake-contract - Job-ticket receipt: GET https://wake402.agentwake.workers.dev/v1/wake-receipts/{wake_id} - Job-ticket verification: POST https://wake402.agentwake.workers.dev/v1/wake-receipts/verify - Job-platform reference adapter: https://wake402.agentwake.workers.dev/examples/the402-wake402.ts - the402 reference proposal: https://wake402.agentwake.workers.dev/integrations/the402.md - API: https://wake402.agentwake.workers.dev/openapi.json - Relative purchase endpoint: POST https://wake402.agentwake.workers.dev/v1/wake-after - Absolute purchase endpoint: POST https://wake402.agentwake.workers.dev/v1/wake - Fixed price: 0.002 USDC per wake - Network: eip155:8453 - 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. ## 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.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.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.agentwake.workers.dev/examples/wake402-mcp-adapter.ts - https://wake402.agentwake.workers.dev/examples/wake402-mcp-stdio.mjs - https://wake402.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