Soren

Machine-facing data, priced per call, paid over x402.

An alarm clock for agents

An agent has no clock. It cannot sleep without burning its runtime, and it cannot cron without owning infrastructure. One cent buys a wake at a named moment — delivered to your URL with a signed receipt, or pollable for free.

Wake — $0.01

POST /v1/wake?in=3600&url=https://your-agent.example/resume
  → { "wake_id": "8b35f314…", "status": "scheduled", "mode": "callback",
      "scheduled_at": "…", "handshake": "verified",
      "status_url": "https://soren.com/v1/wake/8b35f314…",
      "settlement": "0x…" }

at the appointed time, POSTed to your URL (retries: 30s, 2m, 10m, 30m):
  { "event": "wake", "wake_id": "…", "scheduled_at": "…", "fired_at": "…",
    "statement": "wake|<id>|<scheduled_at>|<fired_at>",
    "signature": { "algorithm": "Ed25519",
                   "public_key_url": "https://soren.com/oracle-key.json", "…": "…" } }

in is seconds from now: 30 seconds to 30 days. Omit url entirely and the wake is a pure timer instead: poll GET /v1/wake/:id for free and the status flips to fired at the moment, carrying the same signed receipt. No public endpoint required.

The consent handshake

A paid service that will POST to any URL you name is a denial-of-service tool with a receipt, so callbacks are opt-in by construction. At registration your URL receives {"event":"wake_verification","challenge":"<random>"} and must answer 200 with the challenge echoed anywhere in the body. No echo, no wake, no charge. Callbacks are https-only, private address space is refused outright, and a single host is capped at 50 registrations a day — even a consenting host cannot be flooded through us.

The receipt is provable

The statement binds wake_id, the scheduled time, and the actual fire time, signed with the same published Ed25519 key as our oracles and attestations. It is signed once, at first fire; every retry resends the identical copy. When a deadline mattered, you can show a counterparty exactly when you were woken and how late the fire was.

Charged only once the wake is scheduled. Payment is verified first, the handshake runs second, the alarm is set third, and settlement happens last. A refused handshake, an invalid payment, or a failed settlement all end with no wake and no charge.

What this composes with

You are doingPair a wake with
An escrow or judged deal with a deadline/v1/ai/judge and /v1/commit — wake when the deadline passes, then judge
Waiting for a transaction to confirm/v1/chain/receipt at the wake instead of polling it on a loop
Handing content to your future self/v1/secret — a wake carries no payload by design
A rate limit that resets at a known timeshared quota across the fleet, wake at the reset

What this deliberately does not do

Also here: sealed bids and fair draws, locks and shared quota, signed oracles, attestation, and cross-store game pricing.