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.
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
Deploy — decode calldata, verify, and deploy a Universal Profile at its
predicted address on another chain. Section 5 adds a backup controller, or removes a lost one, on any network
where the profile exists.
Verify only — check whether a deploy already exists on another chain. It
only reads public data from an RPC: no wallet is required, but you can optionally connect your Universal Profile
to auto-fill the address it checks for, instead of typing it by hand.
Verify implementations only — check LSP0 and Key Manager
implementation bytecode on a network using their addresses, without a Universal Profile or deploy calldata.
Test — confirm your controller can operate the deployed profile.
Send — transfer native currency, tokens (ERC-20) and NFTs (ERC-721,
ERC-1155) from the profile to another address. It can list what the profile holds on the selected network. With
an active subscription, the site can pay the gas.
Identity — the profile on another network, compared with LUKSO: name, images
and links, what it holds (native currency, tokens and NFTs, with their images), who controls it and whether
there is a backup, and what it can do there (receive NFTs, gas relay). Reading needs no wallet. Section 6 aligns
the profile with LUKSO's, with one transaction signed by your controller.
Publish implementation — if the Verify or Deploy tool reports
that your profile's LSP0 or Key Manager implementation is missing on the target chain, publish it there at the
same address, by replaying LUKSO's original deterministic deploy. Anyone can do it; it only costs gas.
UP Wallet(experimental) — use the redeployed profile as your account on
any dApp through WalletConnect: the page checks that profile and controller are compatible, shows and simulates
every request, and signs only after your confirmation. Start in simulation mode, with small amounts.
NFT reception(experimental) — lets the redeployed profile receive
ERC-721 / ERC-1155 NFTs (for example purchases on marketplaces), with one transaction that leaves the
controller's permissions unchanged.
Gas paid by the site(experimental) — set up the profile, once per
network, so that the site can pay its gas: one controller transaction, which a button undoes. Includes a
read-only configuration check that also says whether the site pays this profile's gas.
Subscription(experimental) — subscribe to gas paid by the site, or top
up: 5 USDC paid from the profile, one balance for every network, a price per operation by network. Shows the
balance as soon as you enter the profile.
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.
Next step: add a backup controller on this network. If you lose the genesis key
with no backup, you are locked out of this UP for good. → Section 5 · Backup controller
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).