Security

Keep your ICP account safe

Best practices for Internet Identity, device recovery, and protecting bags — with Oracle on watch.

Oracle · bag defender

Passkeys protect you — recovery keeps you in.

Afta never holds your Internet Identity credentials. Sign-in uses passkeys (device biometrics / PIN) — not a crypto wallet seed you paste into websites. On id.ai you can add a recovery email and a 24-word recovery phrase you write down — that phrase is how you get back in if every device is gone.

Afta Oracle defending bags with an energy shield

1 · Internet Identity (not a seed wallet)

  • Passkeys sign you in with Face ID, Touch ID, Windows Hello, or a security key. The private key stays on the authenticator — Afta never sees it.
  • Add more than one passkey/device in id.ai so one lost phone doesn't lock you out.
  • After you log into id.ai, set both recovery options: a recovery email (inbox you control) and a 24-word recovery phrase. Write the phrase on paper, in order, and store it offline in two places. II will ask you to confirm the words.
  • That 24-word phrase is a backup authenticator for Internet Identity— not an ICP ledger seed. Never type it into Afta, chat, or a site that isn't id.ai. Anyone with the phrase can take the identity.
  • Email recovery can help from a new device. Treat email as phishable — keep the written phrase as the hard backup.
  • Bookmark id.ai and afta.cash. Fake II popups are a common attack.

2 · Same Internet Identity on every device

Phone and desktop should log into Afta with the same Internet Identity. That is one principal — creates, mints, and Allow minting all sign as you. Do not create a new II on the second device.

  • Apple (iPhone + Mac) — II passkeys live in iCloud Keychain. Same Apple ID, Keychain on: open afta.cash on the Mac, Connect, pick that passkey. The wallet principal must match the phone character for character.
  • Add this computer on the existing II (any OS): on the phone go to id.ai → your identity → Manage → Access methods → Add new → passkey → Continue on another device. Scan the QR on the desktop, confirm the code on the phone, then log into afta.cash with the new passkey.
  • After login, compare principals. If they differ, you made a second II — stop and add a device to the first one instead.
  • Never share recovery phrases or passkeys with other people. Remove a lost device from id.ai.
  • You do not link devices inside Afta to trade, mint, or manage collections. Same II on both devices is enough.
  • DEV_AUTH invents a principal without II — never use it for real ICP on mainnet.

3 · CLI access (same principal as the website)

id.ai Settings has a CLI access toggle. Turn it on on the computer that will run uploads. Then the terminal can sign as your Afta Internet Identity — the same principal as the phone wallet — without exporting a key.

  • On the desktop browser: id.ai → Manage → Settings → enable CLI access. The switch is per browser and per identity; enable it again if you switch machines.
  • Sign in with your existing II— do not run dfx identity new for this. A new dfx key is a different principal (fine for a bot, wrong for your wallet).
    npm install -g @icp-sdk/icp-cli
    icp identity link web afta --app afta.cash
    icp identity principal --identity afta
  • Compare that principal to the Afta wallet. They must match. This is a time-limited delegation for the terminal — it does not create a second Afta account and does not require linking devices in the app.
  • The CLI holds a time-limited delegation, not your passkey. You still confirm in the browser. If uploads fail with an expired signature, run icp identity reauth afta and resume the pack command.

4 · Approvals & spends

  • Afta spends from your spend subaccount — check amounts, slippage, and the canister you approve before confirming.
  • Review ICRC-2 allowances. Don't approve unlimited spends to unknown principals.
  • Verify canister IDs on Status.

5 · Bags & upgrades

  • Only the XFT owner or a permissioned operator can withdraw. Platform admins cannot bypass withdraw rules (bag v6+).
  • Upgrades may cost up to about 0.15 ICP in cycles — top up first if the bag is empty.
  • When DAB is on, manual vault drains stay locked; trades use bag liquid under policy.

6 · Backup checklist

  • At least two passkeys / devices on your II (id.ai).
  • 24-word recovery phrase from id.ai written on paper, in order, in two offline places — never screenshots, notes apps, or chat.
  • Recovery email set on id.ai — only an inbox you control.
  • Optional: CLI access on id.ai Settings if you upload collections from the terminal (same Afta principal).
  • Know which principal owns each Lead / bag.
  • Report issues via Support.