← Dasha Compute · Proof · Verify

Run once. Verify the receipt. Check the anchor.

This is the canonical evaluator path. Four copy-paste commands, under ten minutes, no account and no card. You run one real call, look up your own signed receipt - not a demo receipt - and check the signed head that covers it. Every step is re-checkable from the endpoint named above it.

providers online: advertised models: jobs queued:

Live from /compute/api/network as this page loaded. If providers online is 0, community calls fail loud (no_mac_online) - see the failure scripts below; the path still works through Hosted.

0. Preflight

Source: /caps · /compute/api/network

# /caps is a redirect by design - confirm it answers, and see where it lands:
curl -sSI https://www.getdasha.com/caps | head -5

# Confirm capacity and kit state before you time anything:
curl -sS https://lobby.getdasha.com/compute/api/network | jq '{providers_online, models_available, jobs_queued, kit_versions}'

Kit note: providers run the published open-alpha kit. If kit_versions shows a provider on an older build than the published tarball, that is a known lag on provider side, not a fork - jobs still settle with signed receipts.

1. Capture a guest key

Source: POST /compute/api/guest-keys. Free, no account: 24h TTL, chat + models only, 3 mints/hour/IP, 3 chats/10min/key.

export DASHA_API_KEY=$(curl -sS -X POST https://lobby.getdasha.com/compute/api/guest-keys \
  -H 'Content-Type: application/json' -d '{}' | jq -r .api_key)
echo "${DASHA_API_KEY:0:12}..."   # dgk_... - shown once, treat as a secret

2. Make the first call

Source: POST /compute/api/v1/chat/completions (OpenAI-compatible). The model is pulled from the live-advertised list, not hard-coded.

MODEL=$(curl -sS https://lobby.getdasha.com/compute/api/network | jq -r '.models_available[0] // "qwen3-4b"')
RESP=$(curl -sS https://lobby.getdasha.com/compute/api/v1/chat/completions \
  -H "Authorization: Bearer $DASHA_API_KEY" -H 'Content-Type: application/json' \
  -d "{\"model\":\"$MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"Say READY\"}]}")
echo "$RESP" | jq '{job_id, model, usage, receipt}'
JOB=$(echo "$RESP" | jq -r .job_id)

The response carries job_id and a receipt object (model, route, latency, settlement state). That job_id is the stable correlation identifier for everything below.

3. Verify your receipt

Source: /verify · GET /compute/api/verify?hash=. One exact lookup, keyed by the job id from your own call:

curl -sS "https://lobby.getdasha.com/compute/api/verify?hash=$JOB" | jq '{verdict, chain}'

The verdict recomputes the receipt's signature and walks the public receipt chain. Same check runs in the browser on /verify, no key needed.

4. Check the anchor

Source: GET /heads/checkpoint (signed checkpoint over the receipt-heads log).

curl -sS https://lobby.getdasha.com/heads/checkpoint | jq '{head, tip}'

When the checkpoint's covered tip is at or past your receipt's chain tip, the verify verdict reads ANCHORED - the network's own signer has countersigned the log that contains your receipt. Rewrite boundary in one sentence: nothing at or before the checkpointed tip can be altered or dropped without invalidating the signer's published signature, so history up to that tip is frozen.

When it does not work

No capacity. The call returns no_mac_online when no community Mac advertises your model. That is deliberate fail-loud, never a silent fallback. Poll /compute/api/network, or run the same prompt on the Hosted path in the /compute UI (Hosted is Cloudflare Workers AI, clearly labeled, 3 free / 10 min).

Receipt pending. Settlement shows pending_operator while the operator settles the job; the receipt itself is signed at completion. If verify returns not-found seconds after the call, wait a minute and re-run the same lookup - the id is stable.

Not yet anchored. A verdict of verified-but-not-ANCHORED means your receipt is in the chain but the next signed checkpoint has not been issued yet. Checkpoints land about hourly; re-check /heads/checkpoint and the verdict later.

Verifier failed. A failed check on a receipt this network issued is an incident, full stop. The page names the exact failed check - report it on Telegram.

What it costs

Community jobs settle at a flat $0.05 per successful completion plus $0.01 per 1k completion tokens, paid from prepaid USDC or $dasha credits - no card rail today. Guest calls are free inside the rate limits above. Current card/rail state is public on /compute/proof.

Official Telegram (the only official Dasha invite - ignore lookalike groups): https://t.me/+ck9pUjL2ncNiZjRh. Do not paste secrets into prompts; community Mac operators can read assigned prompts.