Wallets
Backup & Recovery

Backup & Recovery

Read this before you put value in an account. Superhero accounts are self-sovereign: there is no password reset and no company that holds a copy of your key. What you can recover is exactly what you personally kept.

The one-minute version

You useBack upKeep it
Superhero Wallet (extension, mobile or web)The seed phrase. It is not shown at setup, so go and get itOffline, on paper or metal, in two places
A Ledger or AirGap account inside Superhero WalletThe device's own recovery wordsWherever that device's maker tells you
An account imported into Superhero Wallet by private keyThat private keyOffline; the seed phrase will not restore it
Built-in wallet created from a phraseThe 12 words, plus the recovery codeOffline; the code is not a substitute for the words
Built-in wallet created from a passkeyConfirm your passkey syncs; keep the recovery codeSync is the backup; the code only helps on this device
An agent key (AE_PRIVATE_KEY)The secret key stringOffline, never in git, never in a log

Back up a seed phrase

  1. Write it down by hand. Screenshots and text files end up in cloud sync and disk indexes.
  2. Copy it exactly: all 12 or 24 words, in order, lowercase. BIP39 phrases carry a checksum, so a wrong or transposed word is usually caught on import.
  3. Verify it. Superhero's built-in wallet makes you re-enter the words before a vault is created. In the standalone Superhero Wallet the step is optional and comes later (see below).
  4. Store two copies in different physical places.
  5. Never type it into anything but the wallet. No support agent, no "validator", no airdrop checker will ever need it. See Security Best Practices.

The phrase is a standard BIP39 phrase on the standard æternity derivation path (m/44'/457'/<index>'/0'/0', SLIP-0010 ed25519). The same phrase produces byte-identical addresses in the Superhero Wallet extension, the native app, and Superhero's built-in wallet.

Superhero Wallet: reveal, verify, export

Creating a wallet never shows you the phrase. Onboarding generates a mnemonic, creates your first account and goes straight to the dashboard. A notification ("Welcome to Superhero Wallet! Please backup your seed phrase!" with a Back up now button) reappears until the phrase is marked backed up.

Revealing it takes re-authentication. Settings → Seed phrase → Show seed phrase:

SituationWhat you have to do
Mobile app with biometrics onPass a biometric check
Extension or web with a password setRe-enter the password
Mobile with biometrics off, or password protection turned offConfirm a "make sure no one is watching your screen" dialog

Verification is skippable. Verify seed phrase shows your own words shuffled for you to tap back into the correct order; I have verified seed phrase before just sets the flag. Nothing re-checks later, so write the phrase down on your first day.

Export one account's private key

Account details → Show account private key reveals the active account's secret key as hex, with a copy button, behind the same re-authentication as the phrase reveal.

It exports one account, not the wallet. Use it to move a single account into another wallet that supports private-key import. An account you imported by private key cannot be restored with your seed phrase, only with that private key, so such accounts need their own backup.

The built-in wallet offers no export of any kind.

Change the wallet password

Settings → Secure Login has a change-password form: it verifies the current password, then re-encrypts the stored seed under the new one. The same screen turns password protection off and sets the auto-lock interval: immediately, 1, 5, 15 or 30 minutes of inactivity.

Back up the built-in wallet

The built-in wallet has three unlock factors and they are not interchangeable as backups:

FactorUnlocks on this deviceRestores on a new device
PassphraseYesNo
Recovery codeYesNo
Syncing passkey (on a passkey-created wallet)YesYes
Device-bound passkey (on a passkey-created wallet)YesNo
Passkey on a phrase-created walletYesNo
The written recovery phrasen/aYes, anywhere

The passphrase and the recovery code each unwrap a key inside this device's encrypted vault record. No record, nothing to unwrap. Only two things reconstruct a seed from scratch: the written phrase and, for a wallet created by the passkey path, the passkey itself, because that seed is derived from the passkey's PRF output at a fixed public salt.

  • Phrase-created built-in wallet: the 12 words are your only portable backup. The recovery code is a same-device fallback for a forgotten passphrase or a broken passkey. Keep both.
  • Passkey-created built-in wallet: the passkey is the backup, but only if it syncs. Confirm it landed in iCloud Keychain or Google Password Manager. There is no phrase reveal or export screen, so a device-bound credential like Windows Hello leaves no other copy of the seed. Still enroll the recovery code: it is the only factor that survives a passkey rekey.

Recover on a new device

Superhero Wallet (extension, mobile, web)

Install it, choose Restore existing wallet, and enter your seed phrase: 12 or more words, separated by spaces, in order. You can also scan the phrase from a QR code. The wallet validates the phrase, restores your accounts and re-derives their keys.

Two kinds of account do not come back this way, because the wallet never held their keys:

  • Ledger and AirGap accounts. Only the address was stored. Re-import them from the device.
  • Accounts imported by private key. Restore those from the key you exported.

Built-in wallet, from a recovery phrase

Open the installed Superhero app (import is offered in the installed PWA only), choose to import an existing wallet, and paste the phrase. It is validated against the BIP39 wordlist and checksum before anything is stored, then sealed under a new passphrase on the new device.

Built-in wallet, from a passkey

Choose "Restore a wallet you created with a passkey." This runs a discoverable WebAuthn assertion, derives the wallet the credential implies, and shows you the derived address before saving anything. The confirm screen also checks that address for on-chain activity:

  • "This account has on-chain activity": a genuine restore. Confirm.
  • "No on-chain activity": stop. You most likely selected a passkey belonging to a phrase-created wallet, which derives a valid but empty different wallet. Confirming would persist the wrong one and then block your correct import with "a vault already exists".
  • "Couldn't check on-chain activity": the node was unreachable. Advisory only; judge by the address itself.

An agent key

There is no derivation to redo. The secret key is the account:

export AE_PRIVATE_KEY=<your_secret_key>
node scripts/superhero-wallet.mjs address
node scripts/superhero-wallet.mjs balance

What cannot be recovered

  • A lost seed phrase with no other factor. Nobody can reconstruct it. Not Superhero, not æternity, not the wallet developers.
  • A built-in wallet whose vault was deleted, if your only factors were a passphrase and a recovery code. Clearing site data for superhero.com deletes the IndexedDB vault; Safari's Intelligent Tracking Prevention can evict it after about seven days of no interaction. Neither the passphrase nor the code opens anything afterwards.
  • A passkey-created wallet whose device-bound passkey is gone, if the credential never synced.
  • Funds sent to a wrong address. Transactions are final.
  • A private key that was logged, pasted into a chat, or committed to git. Treat it as compromised from that moment and move the funds to a fresh account.

One common loss that is recoverable: the built-in wallet's address list, living in local storage. If that is cleared while the encrypted vault survives, unlock once and the app re-derives your addresses from index 0 upward.

A backup routine that holds

  • Write the phrase down and read it back before funding the account.
  • Store two copies in two places.
  • Store the recovery code separately from the phrase. They fail in different ways, so hide them in different places.
  • If you rely on a passkey, verify it is present on a second device before you trust it as a backup.
  • Do a restore drill once: import into a second wallet and confirm the first address matches.

Changing the built-in wallet's passphrase

There is no passphrase-change flow in the built-in wallet, and no way to remove a factor.

  • To change your passphrase, recreate the wallet. Unlock with any enrolled factor, write down the recovery phrase, erase the wallet, and create a new one with the same phrase and a new passphrase. You get a new recovery code; the account and its address are unchanged, because they come from the seed.
  • A compromised factor cannot be revoked. Any one factor opens the vault, so a passphrase someone has seen stays valid until the wallet is recreated. Recreate it the same day.

If rotating your unlock secret matters to you, prefer the standalone Superhero Wallet, which has a change-password form.

Related