Guides / Architecture

How UPAP maps a MetaMask key to a Wire account

Why connecting MetaMask to Wire needs no new seed phrase and no bridging step.

The biggest onboarding tax in crypto is the new-chain ritual: install another wallet, back up another seed phrase, bridge funds over, hope the bridge holds. Wire skips the ritual. The MetaMask keypair you already protect is enough, because Wire accounts can be authorized by the same ECDSA keys Ethereum uses.

UPAP: one key, every chain personality The MetaMask key you already hold becomes a Wire account. METAMASK ECDSA keypair secp256k1 private key 0xA1b2...9F3e address Nothing new to install or back up UNIVERSAL POLYMORPHIC ADDRESS PROTOCOL verifies the signature and maps the key to an account WIRE ACCOUNT Named on-chain account holds balances and permissions acts on contracts directly Signs with the same ECDSA key What happens when you connect 1. The dapp requests a signature from MetaMask over a challenge 2. UPAP recovers the public key from the signature and derives the account mapping 3. Wire transactions authorized by that key execute under the mapped account with no gas paid by the user BLOCKCLAIMED

The trick: keys are portable, accounts are not

A secp256k1 private key is just a number. Ethereum derives a hex address from it; nothing stops another chain from recognizing the same key. Wire's account model (inherited from Antelope) separates the account from the key: an account is a named on-chain object with a permission table where any key can be listed as an authority.

The Universal Polymorphic Address Protocol formalizes the mapping. When you connect MetaMask to a Wire application, the flow is:

  1. The application asks MetaMask to sign a challenge message. No transaction, no fee.
  2. UPAP recovers the public key from that signature (the same recovery Ethereum performs on every transaction) and resolves or creates the Wire account mapped to it.
  3. From then on, Wire transactions authorized by that key execute under the mapped account. MetaMask signs; Wire verifies against the account's permission table.

What you get

  • No new seed phrase. The MetaMask key is the Wire authority.
  • No bridging step to start. The account exists on Wire; assets follow via escrow deposits.
  • A named account with Antelope permissions underneath, so an account can later add or rotate keys, set custom permissions per contract action or delegate authority - things a bare hex address cannot express.

What to watch for

  • Signing a challenge proves key ownership to the application. Read what you sign; MetaMask shows the message body, which is human-readable in Wire's flow.
  • Key compromise crosses chains with you: whoever holds the key holds both the Ethereum address and the mapped Wire account. The permission system lets you rotate authorities, so learn it before you need it.
Everything above describes the V2 testnet flow at pre.wire.network. Testnet accounts and balances carry no value and can be reset by Wire at any time.

Ready to try it? The next guide creates a testnet account with exactly this flow.