Move a Sentient identity from one device to another so the same cryptographic identity (and its contact trust state on the receiving device's network) becomes usable on the new machine.
When to use this
- You've replaced a laptop or workstation and want your existing Sentient on the new one
- You're setting up a second device (a dedicated agent, a travel laptop, a backup machine) under the same human identity
- You're recovering after a device loss by restoring from your BIP39 phrase
For the conceptual background — what a Sentient identity actually is and how it's stored — see Sentient Identity.
Migration moves the cryptographic identity of a Sentient:
Migration does not move:
This is by design. A Sentient is who you are; the per-device state is what you've done there. The receiving device starts fresh with the same identity.
From the Sentient Lobby on the source device:
SentientLobbyActivity.Verify the identicon matches the identity you actually mean to migrate (especially relevant if you have multiple Sentients on this device).
On the receiving device:
Argon2id derivation runs on the receiving device — expect a few hundred milliseconds of CPU while the new hive is provisioned.
This is the key architectural change introduced by §SP-10. The imported Sentient lands as a new sentient hive on the receiving device, named SID-<imported-sid-hex> (typed-hive taxonomy — see Hive).
The receiving device's previously-active Sentient is not touched. Pre-spec behaviour would overwrite the active vault; post-spec the imported identity is a peer to whatever's already there.
You can verify by visiting Active Mounts — the just-imported hive appears as another Sentient row alongside the existing one(s), each carrying its owning sentient's identicon.
After import succeeds, the imported Sentient appears in SentientSelectionActivity alongside any existing Sentients. To activate it:
If the imported Sentient is Full (password-protected — which it almost always is for a real migration), you'll be prompted for the passphrase. This is the same passphrase you set on the source device — migration carries it across so the encryption boundary stays uniform.
Once you confirm, Identity Switching runs its full six-phase cascade and you land on the imported Sentient's home activity.
Migration moves identity, not contacts. On the receiving device, your contact list under the imported Sentient is empty. To resume working with the same peers:
If the source device is unavailable (lost, broken, never coming back), you can still recover the Sentient using just the 12-word BIP39 phrase you wrote down at first boot or after the Shadow → Full upgrade.
On the receiving device:
SID-<derived-sid-hex> hive and lands the identity in it.This produces the same on-disk result as Step 3 — a new sentient hive sitting alongside whatever was already there.
If the receiving device already has a sentient hive named SID-<incoming-sid-hex> — e.g. you're trying to import a Sentient that you imported earlier — the migration aborts with:
This identity already exists on this device.
This is §SP-10a's collision policy. Migration carries only the SID, not the data — overwriting would discard whatever local pairings the existing hive holds without bringing any compensating state across. The two outcomes the design considered:
If you genuinely want to re-import: from the Hive Lobby, unmount and delete the existing SID-<incoming-sid-hex> hive (which destroys the local pairings under it), then re-run the import.
The verification code expires. Codes are short-lived (60 seconds) to limit replay risk. Re-export from the source device.
Source device isn't discovered on the LAN. Both devices must be on the same broadcast domain. VPNs that split-tunnel can break discovery; disable for the duration of the import.
Import succeeds but switching to the imported Sentient prompts for an unfamiliar passphrase. The migration carried the source's passphrase. If you don't remember it, recover via the BIP39 phrase + reset on the new device.
"This identity already exists on this device." See the duplicate-identity section above. The aborted import didn't write anything new.
Switch-now prompt missing. In the current build, the receiving device doesn't yet pop an inline "Switch to this identity now?" prompt after import — that's a small follow-up (Phase 11b enabled it, but the migration UI hook isn't wired yet). For now, the imported Sentient appears in Sentient Selection and you can switch via the lanyard at your leisure.
| Item | Status |
|---|---|
| Display name carried in migration payload | Pending (§B-20 carry-forward to device-migration). Until then the receiver synthesises a placeholder; rename via the Sentient Lobby after switch. |
| Inline "Switch to this identity now?" prompt on receive | Pending. Depends on Phase 11b's IdentitySwitchService — which has shipped, so this is a small wiring follow-up. |
| Source-device confirmation that the receive succeeded | Working — the source sees a success / failure dialog at the end of the handshake. |
| Duplicate-identity detection | Working — §SP-10a / Phase 16a. |
| New-hive landing (no vault overwrite) | Working — §SP-10 / Phase 16b. |
| Topic | Why it's relevant |
|---|---|
| Sentient Identity | What a Sentient is — Shadow vs Full, SID derivation |
| Hive | Where the imported identity lands on disk |
| Switch Sentient | The flow you use after import to activate the new identity |
| Active Mounts | Verify the new hive landed alongside (not on top of) the existing one |