UP Cross-Chain Deploy

Redeploy your Universal Profile (LSP0 + Key Manager) at the same address on another EVM network, via LSP23LinkedContractsFactory — the exact same mechanism used when it was originally created. This page never asks for a private key: you sign from your own wallet.
Home

0 · What this is and what you need

This page repeats, on another network, the exact same transaction that created your Universal Profile — that's why the resulting address is identical. You need two things: (1) the Universal Profile browser extension, installed and connected with the profile you want to replicate; (2) the original deployment calldata of your UP (a long hex string starting with 0x6a66a753...), which the page fetches automatically from the LUKSO explorer as soon as you connect your UP (or you can copy it by hand, see the guide). This page never signs anything on your behalf: it always calls your wallet for confirmation.

Tools

1 · Target network

2 · Profile to replicate

Not connected.
Decoding and verification are only available after you connect your Universal Profile here. This is not a signature or a cryptographic check — no transaction happens at this point — it's just a reminder that this page is meant to redeploy your own profile, not someone else's.
Not decoded yet.

3 · Signing wallet (deploy and backup)

For the deploy this can be any account: it only pays the transaction gas and does not become a controller of the UP. Who controls the UP is decided exclusively by the original calldata — verified in step 2. Section 5 (backup controller) instead needs an admin controller of the UP.
Not connected.

4 · Verify and deploy

Waiting for the connections above.

5 · Backup controller

The risk here is loss, not theft. On every network where you redeploy, the UP is born controlled only by the genesis key: the key string you extracted from the Universal Profile extension. If you lose it (a broken computer, a key never saved, a forgotten password) and no other controller has the same permissions, you are locked out of this UP on this network for good, with everything it holds. No one can fix it. A backup controller is a second account (for example another MetaMask account, with its own seed phrase kept separately) with exactly the same permissions as the controller signing here. If you lose one of the two keys, the other one still signs: it adds a new backup and removes the lost key. If the one you lose is the genesis key, the only thing you can no longer do is deploy on new networks, because there the UP is born with that key only.
It uses the UP address (section 2), the network (section 1) and the wallet connected below (the same as in section 3), which here must be an admin controller of the UP (with ADDCONTROLLER and EDITPERMISSIONS): on a UP you just deployed, that is the genesis key imported into MetaMask. It also works for a UP deployed earlier. Do it on every network: each network has its own controller list. On LUKSO, use LUKSO's own tools.
The wallet lets you choose the account on every connection: you can sign with the genesis key or with a backup. To switch account, press the button again and pick another one.
Not connected.
Controllers not read yet.
— or, after losing a key —
The list shows every controller except the one connected in the wallet: the signer cannot remove itself. To remove the connected key, connect another admin (for example the backup).