Owner's manual

Apollo Cypher Docs

Everything you need to install, hatch, rain, and graduate — all in one pixel-art manual. For the low-level HTTP surface, see the API reference.

Install

Grab the build for your OS from the Get it menu. All installers are notarized and shipped with a SHA-256 checksum you can verify inside the download modal.

  1. 01Pick Windows, macOS, or Linux.
  2. 02Verify the checksum (auto-verify is on by default).
  3. 03Open the app — the agent boots on 127.0.0.1:7737.

Hatch a Cypher

A Cypher is a local agent. It lives on your device, holds its own keys, and never syncs anywhere you didn't ask it to.

  1. 01Open the Nest tab.
  2. 02Click HATCH and give it a name.
  3. 03Confirm — your Cypher is born with 0 tickets.

Let it rain

Every day the agent rains a penny into your Cypher. One penny = one permanent ticket. Rain runs whether the app is focused or backgrounded.

  1. 01Leave the app running (or launch on login).
  2. 02Rain fires once per Cypher per day.
  3. 03Manual rain has a 5-second cooldown per Cypher.

Graduate a share

At 100 tickets a Cypher can graduate into a permanent share held in your BSC wallet. Local ticket state is retired; the share is yours.

  1. 01Wait until tickets ≥ 100.
  2. 02Open the Cypher and hit GRADUATE.
  3. 03Sign the bridge request — the share settles on BNB Smart Chain.

Modes

Four modes tune the agent behavior: RAFT (paced), CYPHER (default), VAULT (accumulate only), SIGNAL (event-driven). Switch anytime from Settings.

  1. 01RAFT — steady daily rain, no bursts.
  2. 02CYPHER — balanced default.
  3. 03VAULT — pauses graduation until you unlock.
  4. 04SIGNAL — rains on external triggers.

Troubleshoot

If the agent won't boot, the token file may be corrupt. Delete ~/.apollo-cypher/token and relaunch — a fresh token is minted on next start.

  1. 01Check the Activity log for red rows.
  2. 02Restart the agent from the tray icon.
  3. 03Reinstall over the existing install — Cyphers are preserved.
Next up

Ready to script your Cypher? Head to the API reference for the full endpoint list and streaming events.

Environment variables

Export these in your shell before hitting the local API. Examples use zsh/bash syntax.

$APOLLO_URL
http://127.0.0.1:7737

Base URL of the local Apollo Cypher agent. Loopback only — never exposed to the network.

$APOLLO_TOKEN
ac_live_9f4b…c21e

Bearer token minted at first launch. Stored in your OS keychain. Rotate from Settings → Security.

$APOLLO_MODE
CYPHER

Optional default mode for scripted calls. One of RAFT | CYPHER | VAULT | SIGNAL.

export APOLLO_URL="http://127.0.0.1:7737"
export APOLLO_TOKEN="$(cat ~/.apollo-cypher/token)"
export APOLLO_MODE="CYPHER"
Token

What the token unlocks

Every request carries Authorization: Bearer $APOLLO_TOKEN. The token is local — the agent refuses requests without it, even on loopback.

Script daily rain

Cron a nightly `curl` to guarantee the rain fires even if the app isn't focused.

Pipe to your terminal

Stream `/v1/events` into your shell and get a desktop notification on every graduation.

Portfolio dashboards

Read `/v1/cyphers` from your own local dashboard — the token stays on your machine.

Automation guardrails

Rotate the token to instantly revoke every script without touching your BSC wallet.

Endpoint reference

Sample curl and JSON for the main routes. All examples use $APOLLO_URL.

GET/v1/status

Health probe for the local agent.

curl
curl -H "Authorization: Bearer $APOLLO_TOKEN" \
  $APOLLO_URL/v1/status
Response (JSON)
{
  "ok": true,
  "version": "0.1.10",
  "mode": "CYPHER",
  "uptime_s": 41822
}
Response schema
FieldTypeDescription
okbooleanTrue when the agent is healthy.
versionstringAgent semver.
modeenumActive mode: RAFT | CYPHER | VAULT | SIGNAL.
uptime_snumberSeconds since the agent booted.
GET/v1/cyphers

List every hatched Cypher on this device.

curl
curl -H "Authorization: Bearer $APOLLO_TOKEN" \
  $APOLLO_URL/v1/cyphers
Response (JSON)
{
  "cyphers": [
    { "id": "cy_01H", "name": "Pico", "tickets": 42, "graduated": false }
  ]
}
Response schema
FieldTypeDescription
cyphers[].idstringULID identifier for the Cypher.
cyphers[].namestringHuman name you gave it at hatch.
cyphers[].ticketsnumberPermanent tickets accumulated so far.
cyphers[].graduatedbooleanTrue once the Cypher has become a share.
POST/v1/cyphers

Hatch a new Cypher.

curl
curl -X POST $APOLLO_URL/v1/cyphers \
  -H "Authorization: Bearer $APOLLO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Nova" }'
Response (JSON)
{ "id": "cy_01J", "name": "Nova", "tickets": 0 }
Request body
FieldTypeDescription
namestring1–24 chars. Used only locally.
Response schema
FieldTypeDescription
idstringNew Cypher ULID.
namestringEcho of the name you sent.
ticketsnumberAlways 0 at hatch.
POST/v1/cyphers/:id/rain

Trigger a manual rain. Rate-limited to once / 5s per Cypher.

curl
curl -X POST $APOLLO_URL/v1/cyphers/:id/rain \
  -H "Authorization: Bearer $APOLLO_TOKEN" \
  -H "Content-Type: application/json"
Response (JSON)
{ "ok": true, "tickets": 43, "streak": 7 }
Response schema
FieldTypeDescription
okbooleanTrue when the rain landed.
ticketsnumberNew ticket total.
streaknumberConsecutive daily rains.
Try it

Interactive API tester

Runs against a sandboxed mock of the local agent so you can preview shapes without installing. Real calls go to $APOLLO_URL on your machine.

GET$APOLLO_URL/v1/status
Headers
Authorization: Bearer $APOLLO_TOKEN
Content-Type: application/json
Response
// press Send to see a sample response