Fallback channels are an old problem with mostly bad answers. Domain-generation algorithms are race conditions the defender usually wins — register tomorrow's domains today and the channel is yours. Fast flux is an arms race measured in hosting invoices. Hardcoded backup infrastructure is a gift to whoever reverse-engineers the sample. Each approach stores the recovery secret in a place an opponent can reach, seize, or poison. We wanted a channel with three properties: nobody can take it down, nobody can write to it but us, and reading it looks unremarkable.
The record lives on a blockchain
Ghost Chain stores the replacement server addresses in a small smart contract on Polygon. The contract has exactly one write method — callable only by the owner's wallet, accepting only monotonically increasing version numbers — and one read method, callable by anyone, forever, for free. There is no admin key to steal, no hosting account to suspend, and no takedown process that reaches it. The operator publishes from their own wallet; the teamserver never holds wallet keys — deployment is guided from the panel with precompiled contract artifacts, and the publish step hands the operator a ready transaction to sign.
The record itself is not a URL list in the clear. What goes on-chain is a sealed envelope: an Ed25519 signature over the whole package, a monotonic epoch, and the address list encrypted with ChaCha20-Poly1305 under a key derived from the server's identity. Anyone can read the bytes — that's the point of a public chain — but only an AXIS agent can verify and open them, and a forged or replayed record fails verification.
sig[64] ‖ nonce[24] ‖ ciphertext ‖ tag[16] # verify: Ed25519 over "chain-id ‖ server ‖ epoch ‖ body" # open: ChaCha20-Poly1305, key derived from server identity # accept: only if signature valid AND epoch > last seen
What the agent does — and what it never does
An agent touches the chain only when it has exhausted everything else. The trigger is patience, not panic: more than twenty-four hours without reaching any of its configured servers. Then it makes a single HTTPS call to a public RPC endpoint — the same kind of endpoint every crypto wallet on earth talks to — asking the contract for its record. One read. The agent verifies the signature, checks the epoch is newer than anything it has seen, opens the envelope, and tries the addresses inside. It holds no wallet, syncs no chain, spends no gas, and never writes. To a network watch, the whole episode is one ordinary-looking API call to a well-known public service.
Delivery inherits the same safety net: the Windows, Linux, and macOS stagers compile the resolver in, so a stager whose bootstrap endpoint died between build and run can recover a fresh address and retry — once, then exit quietly. The minimal stager family stays chain-free by design; not every artifact should carry every capability.
Per agent, with a receipt
Recovery configuration is not a fleet-wide broadcast. The builder asks per build whether the chain record is baked in or pushed later; pushed means the server appends the configuration to selected agents' check-ins until each one acknowledges it. The console shows every agent's state — none, baked, or pushed-and-acknowledged — so there is never a question about which hosts have a way home and which don't. Losing the chain keys would be losing the channel, so the server writes a self-contained, access-restricted backup at every critical step and keeps the last twenty; restore is a panel upload, not a ceremony.
What it costs — honestly
A fallback this durable has real trade-offs, and we'd rather state them than have you discover them. The record is public: ciphertext, but visible — a determined analyst can tell that a record exists and when it changes, though not what it says. Recovery depends on public RPC infrastructure being reachable from the target network, which is usually, not always, true. The twenty-four-hour trigger means this is a channel for patience, not for live operations. Publishing costs a transaction fee you pay from your own wallet, which means your wallet hygiene is part of your OPSEC. And the contract is only as trustworthy as the chain underneath it — we chose a network where reorgs and censorship are someone else's full-time problem, not yours.
The defender's angle
One quiet call to a public RPC is the whole recovery.
Blockchain resolvers move the recovery channel somewhere takedowns can't follow — but they don't make it invisible. A process with no business touching cryptocurrency infrastructure, making a contract read against a well-known RPC endpoint after a long silence, is a behavior worth a detection rule; the call is rare, small, and precedes the interesting part. Watching what the host does after the read — new destinations that were never in any config you can find on disk — is the higher-fidelity signal. As with the module fetch, the loud moment is narrow but real, and the honest way to describe a good evasion feature is to point at its seam. We'd rather you measure the seam than read about the marketing.
Next note: The gauntlet: how a revision earns its ship — the tracked AV/EDR matrix, three lanes per engine family, and why we preserve our dead ends.