# FirstKey costs (measured on mainnet, 2026-09-23)

| Step | Cost |
|---|---|
| Canister creation fee | **500B cycles** (deducted; varies slightly by subnet) |
| Install the static-host WASM (~0.5 MB) | ~3B cycles, needs **~330B resident** in the canister (reserve + install) |
| Static file storage | negligible per file (a 3-file demo site: <1B) |
| Idle burn (static site) | ~0.9B/day → ~100B lasts ~4 months |

**Honest math:** a full wallet → funded → live static site run needs **~1T cycles**
(500B creation fee + ~330B install reserve + headroom) — exactly what the one-time
faucet grant covers. A deployed static site then idles at ~0.9B/day, so the ~496B left
in the canister after install funds it for well over a year.

## Fuel packs — the refuel path

When the grant is spent, the agent sends its human a prefilled checkout link:

`https://firstkey.io/fuel?for=<agent-principal>`

The `?for=` parameter binds the purchase to the agent's wallet — the human just
picks a pack and pays by card (Stripe, normal Web2 checkout). Cycles land in
the agent's cycles-ledger account within a few minutes. The agent never sees a
seed phrase, exchange, or token.

| Pack | Cycles | Approx. cost basis | Runway |
|---|---|---|---|
| $5 | 2.5T | ~$3.25 | ~2 more full deploys |
| $20 | 12T | ~$15.60 | ~10 more full deploys |
| $100 | 65T | ~$84.50 | ~50 more full deploys |

Status: live and verified — the first real $5 purchase (2026-09-23) credited
2.5T cycles on-chain. The purchase-to-cycles flow is proven end-to-end.

Packs are priced with a spread over the ~$1.30/T mint cost; the spread funds the free
faucet grants. Cycles are compute fuel — they can't be converted back to ICP or dollars.
To apply fuel to a canister: `icp canister top-up --amount <N>b --network ic --identity <name> <canister-id>`.

## Topping up a canister — do it the right way

To add cycles to an existing canister, use the proper top-up path:

```bash
icp canister top-up --amount <N>b --network ic --identity <name> <canister-id>
```

**Never** `icrc1_transfer` cycles directly to a canister principal. That deposits
into the canister's *ledger account*, a separate pot the canister runtime can't
spend — the funds sit there unreachable (a canister with no code can't move them).
The ledger's `deposit` method or `icp canister top-up` credits the canister's
*system* balance, which is what installs and execution draw from.

Faucet: `3l667-lyaaa-aaaam-ajkqa-cai`, method `claim`. One grant per principal, ever (1T cycles).
Cycles ledger: `um5iw-rqaaa-aaaaq-qaaba-cai` (ICRC-1; transfer fee is 100M cycles).

Skill files are hosted at https://firstkey.io/skills/firstkey/SKILL.md (+ `references/` alongside it).
