> ## Documentation Index
> Fetch the complete documentation index at: https://second.tech/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Restore your wallet

How you restore depends on which backup you hold.

1. **[Restore from your seed phrase](#restore-from-your-seed-phrase):** Rebuilds your off-chain balance with the Ark server's help.
2. **[Restore a continuous backup](#restore-a-continuous-backup):** Brings the wallet back without any assistance from the server, balance and payment history intact.

## Restore from your seed phrase

Restoring from your seed phrase pulls your [VTXOs](/docs/learn/vtxo) back from the Ark server and recovers your on-chain balance with a chain scan.

You need:

* Your 12-word seed phrase.
* A wallet app on the same network and Ark server as the original.

<Warning>
  Only restore a seed phrase whose original wallet is gone: two live wallets on the same seed drift apart, which can cause permanent loss of bitcoin.
</Warning>

<Note>
  Restoring a Bark Wallet is currently not the most user-friendly process. A better restore UX is in the works.
</Note>

<Steps>
  <Step title="Start with no wallet" id="start-with-no-wallet">
    If the app has never been opened, leave it that way and skip to [Open the restore screen](#open-the-restore-screen) below.

    If you've already opened the app, it will have created a new wallet, and that wallet must be deleted before your old one can be restored. On the dashboard, confirm the new wallet is empty, then delete it under **Settings** > **Danger zone** > **Delete wallet**.

    <Warning>
      Deleting a wallet destroys any bitcoin it still holds. Check the balance first, and if it isn't empty, send the bitcoin out or back up that wallet's seed phrase before deleting.
    </Warning>
  </Step>

  <Step title="Restart the wallet app">
    After a deletion, the wallet daemon can't accept a new wallet until it restarts. First close every Bark Wallet browser tab (a tab left open recreates a wallet on its own), then restart:

    <Tabs>
      <Tab title="Umbrel" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/umbrel-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=64e6658a441779c46ab880279997e573" width="490" height="240" data-path="images/bark-wallet/umbrel-logo.svg">
        Right-click the Bark Wallet icon on your umbrelOS home screen and select **Restart**.
      </Tab>

      <Tab title="Start9" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=04a6b5fd51719d1b10be822af22a00a3" width="240" height="240" data-path="images/bark-wallet/start9-logo.svg">
        On the service's **Dashboard**, select **Stop**, then **Start**.
      </Tab>

      <Tab title="Self-host" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/docker-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=c41fb5ae02b7b346bc20c981d1dc3633" width="340" height="268" data-path="images/bark-wallet/docker-logo.svg">
        From the repository directory, stop the wallet app and start it again:

        <Tabs>
          <Tab title="Mainnet">
            <CodeGroup>
              ```bash Docker theme={"theme":{"light":"github-light","dark":"github-dark"}}
              docker compose --env-file .env.mainnet down
              docker compose --env-file .env.mainnet up --build
              ```

              ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
              npm run down:mainnet
              npm run dev:mainnet
              ```
            </CodeGroup>
          </Tab>

          <Tab title="Signet">
            <CodeGroup>
              ```bash Docker theme={"theme":{"light":"github-light","dark":"github-dark"}}
              docker compose --env-file .env.signet down
              docker compose --env-file .env.signet up --build
              ```

              ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
              npm run down:signet
              npm run dev:signet
              ```
            </CodeGroup>
          </Tab>
        </Tabs>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Open the restore screen" id="open-the-restore-screen">
    The restore screen is at the wallet app's own address, with `/import` added to the end.

    <Tabs>
      <Tab title="Umbrel" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/umbrel-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=64e6658a441779c46ab880279997e573" width="490" height="240" data-path="images/bark-wallet/umbrel-logo.svg">
        Go to `http://umbrel.local:4004/import`: the wallet app's usual address, with `/import` added. Your Umbrel's IP address works too, for example `http://192.168.1.30:4004/import`.
      </Tab>

      <Tab title="Start9" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=04a6b5fd51719d1b10be822af22a00a3" width="240" height="240" data-path="images/bark-wallet/start9-logo.svg">
        On the service's **Interfaces** tab, copy the **Web UI** address without opening it, then go to that address with `/import` added to the end.
      </Tab>

      <Tab title="Self-host" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/docker-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=c41fb5ae02b7b346bc20c981d1dc3633" width="340" height="268" data-path="images/bark-wallet/docker-logo.svg">
        Go to `http://localhost:5173/import`.
      </Tab>
    </Tabs>

    <Tip>
      Type the full address, including `/import`, before you press Enter. If you land on the app without it, the app creates a new wallet and you're back to [step 1](#start-with-no-wallet).
    </Tip>

    <Frame caption="The restore screen opens on the Wallet name step">
      <img src="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/restore-wallet-name.png?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=18d9a3aeb7d2d83cc4cf6451ef672287" alt="Screenshot of the restore screen's Wallet name step, with the Seed phrase and Network and servers steps queued in the progress bar, a name field, and the Continue button" width="1674" height="1140" data-path="images/bark-wallet/restore-wallet-name.png" />
    </Frame>
  </Step>

  <Step title="Name the wallet">
    Enter a display name (it doesn't affect recovery) and select **Continue**.
  </Step>

  <Step title="Enter your seed phrase">
    Type your 12 words in order. The fields autocomplete as you go.
  </Step>

  <Step title="Confirm the network and servers">
    The network and Ark server are shown read-only and must match your original wallet. The birthday height is optional; a block height from before the wallet's first transaction speeds up the on-chain scan. Select **Continue** to finish.

    You'll be taken to the dashboard. The wallet pulls your live VTXOs from the Ark server to rebuild your off-chain balance, and your on-chain balance appears once the chain scan completes.
  </Step>
</Steps>

## Restore a continuous backup

<Tabs>
  <Tab title="Umbrel" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/umbrel-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=64e6658a441779c46ab880279997e573" width="490" height="240" data-path="images/bark-wallet/umbrel-logo.svg">
    There's no mature continuous backup solution for Bark Wallet on Umbrel yet; we'll update this section when that changes.

    If you kept umbrelOS backups, you can try [restoring your latest one](https://umbrel.com/support/backups-and-recovery/restoring-from-a-backup): your wallet directory comes back as it was when that backup was taken.

    <Warning>
      If your wallet has changed since the backup was taken, you may need to [restore from your seed phrase](#restore-from-your-seed-phrase), which relies on the Ark server.
    </Warning>
  </Tab>

  <Tab title="Start9" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=04a6b5fd51719d1b10be822af22a00a3" width="240" height="240" data-path="images/bark-wallet/start9-logo.svg">
    To restore from a continuous backup, follow Start9's [official guide for restoring an individual service](https://docs.start9.com/start-os/0.4.0.x/backup-restore.html#restoring-individual-services).

    If you need to restore onto a new Start9 device, follow the [initial setup guide](https://docs.start9.com/start-os/0.4.0.x/initial-setup.html) and choose **Restore From Backup**. Server-level backups don't include your wallet data. They carry a pointer instead, made up of your seed phrase and your backup-target credentials. After the restore, the service pulls the freshest wallet snapshot from your backup targets automatically, bringing back your balance and payment history.

    If no target is reachable, the service falls back to a seed phrase recovery, which relies on the Ark server.
  </Tab>

  <Tab title="Self-host" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/docker-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=c41fb5ae02b7b346bc20c981d1dc3633" width="340" height="268" data-path="images/bark-wallet/docker-logo.svg">
    There's no mature continuous backup solution for self-hosted installs yet, so restore depends on what you set up; we'll update this section when that changes.

    If you were using [bark-backupd](https://gitlab.com/ark-bitcoin/labs/bark-backupd), stop the wallet app and run `bark-backupd restore` before starting it again. If you were replicating with [Litestream](https://litestream.io/reference/restore/), run `litestream restore` to put your latest copy back in the wallet data volume before starting the stack.

    <Warning>
      If your wallet has changed since the backup was taken, you may need to [restore from your seed phrase](#restore-from-your-seed-phrase), which relies on the Ark server.
    </Warning>
  </Tab>
</Tabs>
