Research/Education/Uniswap/Uniswap Wallet and Self-Custody: Keys That Sign, Not a Ticker
# Uniswap

Uniswap Wallet and Self-Custody: Keys That Sign, Not a Ticker

BloFin Academy09/13/2026
How a signing wallet fits Uniswap use and UNI self-custody: Permit2 as a spend grant, connect versus spend, Uniswap Wallet versus a connected signer, and venue UNI versus keys.

A signing wallet is a key set that can approve a spend. A ticker on a search screen is only a label for an asset, and a venue balance is a credit on that venue's ledger until a withdrawal lands at an address you control.

Treating those three as one holding is where it goes wrong. People connect a site and assume coins moved, or they approve a spend on one token and assume it covers the next.

Self-custody apps, connected signers, and exchange balances are three ways a name can appear on a screen. The first two let you sign, and a later spend grant is how a decentralized exchange pulls tokens you already hold.

Uniswap Wallet is Labs' self-custody app, and Permit2 is the spend grant Uniswap uses. BloFin's UNI/USDT line stays on BloFin until you withdraw it to an address you sign for.


Permit2 is Uniswap's spend grant

Permit2 is the grant Uniswap uses so a later swap can pull tokens from your wallet. You first approve Permit2 on that token in one onchain grant, and later signs can spend against that grant until they expire or you revoke. It is a spend right.

Uniswap Labs built Permit2 so apps can share token grants across spenders. The blog describes Permit2 as a token approval contract that can share and manage token approvals across different smart contracts (source: Uniswap Blog, Introducing Permit2 and Universal Router). The protocol still needs your wallet to sign, and the grant is the contract that signature acts on.

The repo describes Permit2 as a low-overhead token approval and meta-tx system meant to make token approvals easier, more secure, and more consistent across applications (source: Uniswap, permit2 README). Before an app can pull a token through Permit2, the holder approves Permit2 on that token's own contract, and that first grant is per token. A USDC approve leaves UNI uncovered, and a UNI approve leaves the next ticker you swap uncovered.

Suppose you want to swap USDC for UNI on the Labs web app. The wallet pops a spend grant for USDC, and you read spender, amount, and time, then confirm. UNI that later lands in the same wallet is a different token. A second swap that spends UNI needs its own Permit2 grant on UNI, because the first grant left the rest of the holding unapproved.

That is why the prompt is worth reading even when the button looks like Continue. A connect prompt only shows your address to the site, while a Permit2 grant lets a contract pull. Uniswap scams and fake tokens covers prompts that dress a grant up as a login, and the scams guide is the fake-prompt runbook. Here the work is naming the real grant so you can tell those two apart.

You can later close a standing grant, which is a separate onchain call that costs the chain's fee token. How to revoke token approvals is the hygiene page. Revoking leaves UNI in the wallet and stops a later pull, and if a pull already ran, the coins have already moved.

Read three lines on the wallet sheet before you tap. Spender should name Permit2 or the app you opened, amount should match the swap you typed rather than a blank max you did not mean, and time should be short enough that a forgotten grant dies on its own. If any line is wrong, you reject and leave the coins in the wallet.

Hold on to one thing: Permit2 is a spend grant on the tokens you already hold, and connecting a wallet is a different prompt that comes first.

What a connect prompt actually shares

A connect prompt shows your address to the Uniswap site so the site can read balances and build a swap, and it leaves UNI in place. A later signature, or a Permit2 grant, is what spends. If you only connected, the coins are still in the wallet.

Labs' WalletConnect article is for linking Uniswap Wallet to another site, and the first rule is the host. It tells you to check that the site you are connecting your wallet to is one that you trust. Verify that you accessed it with the correct URL before connecting (source: Uniswap Labs support, How to connect my wallet to a site using WalletConnect). Bookmark app.uniswap.org on a quiet day, and skip pasting a connect link from chat.

You open the web app, tap Connect, and pick the signer you already control. The wallet lists the site and the address, and you confirm, so the site now shows that address while UNI and USDC stay put. Nothing onchain has to happen for that session to start.

A swap is the next click, and that click is a spend. If this is the first time that token meets Permit2, you will see the grant from the last section. If Permit2 already sits on that token, you may only see a signature for this swap. Both still need you to look at the wallet screen.

Connecting on a phone can use a QR code or a browser inside the wallet app, and the purpose is the same: the site learns an address while the keys stay in the signer. If the site is a clone, you have shown that clone which address to target. You have yet to sign a send, so you can disconnect and leave.

Before you confirm Connect, run a short check. The host matches the Uniswap app you bookmarked, rather than a look-alike from chat, and the wallet sheet says connect or pair. The address on that sheet is the one you meant to show, and after you confirm, UNI and USDC balances in the signer have stayed put.

What Uniswap is names the protocol behind that site. The connect button is the site asking to see your account, and the protocol only moves coins after a signed spend.

What matters here is the split: connect is a view, and the grant is a pull, so the product you use to hold those keys is the next choice.

How Uniswap Wallet and a connected signer differ

Uniswap Wallet is Labs' own self-custody app and browser extension. Connecting MetaMask, Rabby, or a hardware signer to the web app is a different product that can still swap against the same pools, and both can hold UNI while remaining different installs.

Labs' product page states that Uniswap Wallet is a self-custody crypto wallet: you hold the keys, and Uniswap Labs cannot access your assets, approve transactions, or reset your password (source: Uniswap Wallet). That is Labs describing its own app, which is Labs' custody claim.

A self-custody wallet, in Labs' own glossary, is one where you hold the keys. Support says a self-custodial wallet is a wallet in which you hold your private keys and are responsible for securely storing your funds. When you set one up, like the Uniswap Wallet, you are given the key and the recovery phrase, and anyone with that phrase can open the wallet (source: Uniswap Labs support, What is a crypto wallet?). For choosing and backing up a wallet, see how to choose a crypto wallet.

You can also skip Uniswap Wallet and connect a signer you already use. The web app still talks to the same Uniswap pools, and the keys stay in that other app. If you later import the same recovery phrase into a second app, you have opened the same keys in a new window, rather than made a second onchain account.

The Labs web app can also create an in-app wallet with a passkey. That is a signer built into the browser. You can switch between that in-app account and another connected signer in the same web app. Treat them as two signers until you check which address the review screen shows.

How you sign What you installed Who holds the UNI keys
Uniswap Wallet Labs mobile app or extension You, in that app
Connected signer MetaMask, Rabby, hardware, or similar You, in that signer
Venue UNI/USDT BloFin account BloFin, until you withdraw

The table is a description. The UNI token is what those keys control when the balance is real UNI, and the next split is whether the UNI is in any of those signers yet, or still on a venue book.

How self-custody UNI differs from a venue balance

Self-custody UNI sits at an address you sign for, while venue UNI sits as a UNI/USDT credit on BloFin until you withdraw. Connecting Uniswap leaves the venue line in place, and withdrawal is the send that moves coins into the wallet.

Investor.gov describes self-custody as you controlling your crypto assets and managing the private keys to your wallets, and it warns that if those wallets are lost, stolen, damaged, or hacked, you may permanently lose access. It also names third-party custodians, including crypto exchanges, and warns that if the custodian is hacked, shuts down, or goes bankrupt, you may lose access (source: Investor.gov, Crypto Asset Custody Basics for Retail Investors). Both losses are real, and they remain different desks.

BloFin has listed UNI/USDT on spot since January 15, 2024. That listing date is a venue date.

You buy UNI/USDT on BloFin, and the fill is a line on BloFin. You open Uniswap Wallet and tap Connect, and the app reads the wallet address while leaving BloFin unread, so the UNI you just bought is still on the venue. To put it in the wallet, you copy the receive string from inside that wallet, match the network on BloFin's UNI withdrawal list, send a small test, and wait until the wallet shows it.

Do that move in four steps, and stop if a step fails:

  1. Copy the receive string from inside the wallet you will sign with, and write those characters on paper before any paste.
  2. On BloFin, open UNI withdrawal and match the network to that wallet's network, because a wrong-chain send is a separate loss.
  3. Send a tiny test amount, rather than the whole line, then wait until the wallet shows that test.
  4. Only then send more.

How to buy UNI is the venue-aware buy, and the four steps here only name what the wallet is for after that fill.

What self-custody is is the category page, and how to store UNI is the later UNI storage page, so neither replaces the venue-versus-wallet split here.

A wallet app is also a window. ethereum.org states that wallet providers do not have custody of your funds, and that they provide a window to see your assets on Ethereum and tools to manage them (source: ethereum.org, Ethereum wallets). You can change apps without moving UNI, if the new app opens the same keys. You still need a withdrawal to turn BloFin into those keys.

The idea to carry forward: Uniswap can only see UNI that already sits in the signer. The wallet still needs a fee token and the right network before that UNI can move.

What the wallet still needs besides UNI

A Uniswap swap is a chain call, so your wallet needs the chain's fee token and a view of the network where the UNI actually sits. UNI on the screen is still short if the wallet cannot pay gas, or if it is looking at a different chain.

ethereum.org describes gas as the unit that measures the amount of computational effort required to execute specific operations on the Ethereum network (source: ethereum.org, Gas). On Ethereum you pay that fee in ETH, even when the pool is USDC and UNI. A BloFin UNI/USDT fill leaves that call unsent. If you withdraw UNI to Ethereum and the wallet has no ETH, the Permit2 grant and the swap both stall.

The wallet is a window, so if your UNI is on another Uniswap deployment, an Ethereum-only view will look empty. That empty screen is the same ticker on a different chain. You switch the network in the wallet, or you look at that chain's explorer, before you sign again. Bridged UNI uses a different contract on that chain, so match the network label on the withdrawal, then the wallet view.

You withdraw 40 UNI to Ethereum and leave 0 ETH in that wallet. You connect, the site shows UNI, and you tap swap, but the wallet cannot pay the grant, so you have to add ETH first for that onchain Permit2 approve, or the click does nothing useful.

Keep fee token and UNI in the same signer you will use. A hardware wallet that holds UNI but has no ETH on that account has the same stall. Moving ETH from a different address is a send of its own. How to send and receive crypto is the generic transfer page. Uniswap use cares because the swap call will stay idle without that fee.

If you are still assembling ETH, matching networks, and reading Permit2, the honest next step is to leave UNI on the venue a while longer.

When UNI should stay on the venue

UNI can stay on BloFin while you are still buying, still checking the receive string, or still missing a fee token. Self-custody is how you sign on Uniswap, and it is optional after a spot UNI/USDT fill.

Stay on the venue when you do not yet have a wallet you control, when you have not copied the receive string from inside that wallet, or when you cannot pay gas on the network you picked. Stay when you only wanted a venue balance you can sell on that book. Withdrawal is a send, and a test amount that never arrives is cheaper than the rest of the holding.

You have 200 USDT of UNI on BloFin and no ETH in Uniswap Wallet, and you want to try a native swap this weekend, so you leave the UNI on BloFin rather than withdrawing the whole line on Friday night. You add a small ETH amount to the wallet, confirm the receive string on paper, then send a tiny UNI test. If the wallet stays empty, you still have the venue line, and if the test lands, you can send more.

Uniswap Labs can point you at a path from an exchange into Uniswap Wallet. That path still leaves the venue through a withdrawal or a partner send, and it skips syncing the BloFin ledger into the app by connecting. If the partner send fails, you talk to that provider, because BloFin support cannot type your Uniswap Wallet phrase back into existence, and Labs cannot reset BloFin.

Leave UNI on BloFin when any of these is still true. You have no signer you control, or you have not written the receive string from inside it. The withdrawal network on BloFin mismatches the network the wallet is showing, the signer has UNI on the screen but no fee token for that chain, or you only wanted a book you can sell without paying gas for a swap.

Self-custody is the right fit when you want UNI you can sign with on Uniswap, vote with from that address, or send without opening a withdrawal form. It is the wrong next step when you are still learning the receive string, still missing ETH, or still treating Connect as a transfer. Leave the coins on the venue until those three are true, then move a test.


Frequently asked questions

If I already approved Permit2 on USDC, can it spend my UNI?

Permit2 tracks spend rights per ERC-20, so granting it on USDC only names that USDC contract. UNI lives on another contract, so a USDC-named signature leaves UNI in place. Read the token symbol on the wallet sheet, and reject a prompt that names the wrong ticker. A later Uniswap swap that spends UNI still needs its own grant on UNI.

If I import the same recovery phrase into MetaMask, did I make a second wallet?

You opened the same keys in a second app, because the onchain account is the key set. Uniswap Wallet and MetaMask can show the same address and the same UNI, so spending in one app spends the holding the other app also sees. You have doubled the windows. If you wanted a second account, you would create a new phrase.

If I connect a hardware wallet to Uniswap, does Labs get the keys?

Connect shows the site an address, and the hardware device still holds the keys. Labs cannot extract them from a connect session, and it cannot reset the device, so each spend still has to be confirmed on that device. If the site is a clone, you have shown it an address, which is a targeting leak rather than a key leak. Disconnect, and skip signing a grant you did not mean to give.

If I revoke Permit2, did I send my UNI somewhere?

Revoke is an onchain call that closes a spend grant, so UNI stays in the wallet unless a pull already ran. If UNI already left, revoke still stops the next pull, and you still pay gas to revoke. A full UNI balance after revoke is a snapshot. Check a revoke tool for an open Permit2 allowance on that token after the call confirms.

If UNI sits on Unichain in the wallet, will the Ethereum Uniswap tab show it?

The wallet window is per network, and Unichain UNI is the ticker on that chain, often a different contract than Ethereum UNI. An Ethereum-only Uniswap tab reads Ethereum, so switch the wallet network, or look at that chain's explorer, before you sign. Skip sending Ethereum UNI to a Unichain receive string to merge the two views. Match the network on the send to the network the destination actually uses.

Can BloFin reset Uniswap Wallet if I lose the recovery phrase?

BloFin holds venue credits, while Uniswap Wallet holds keys you were given at setup. Labs' own product FAQ says Uniswap Labs cannot reset that password, and BloFin support cannot type the phrase. If you lose the phrase and any backup, the onchain UNI in that account is out of reach. Venue UNI you never withdrew is still a BloFin line, and that split is why a test withdrawal matters before the rest of the holding.

Is the in-app browser wallet the same product as Uniswap Wallet on my phone?

The in-app wallet is a signer built into the Uniswap web app, often with a passkey, while Uniswap Wallet is Labs' mobile app and extension, with a recovery phrase you were told to keep. Support says you can later graduate the in-app account to the mobile wallet or the extension. Until you do, the review screen may show a different address than the phone app, so check the address characters before you sign.


Researched and written by the BloFin Academy editorial team with AI-assisted drafting. Updated September 2026. Primary sources include the Uniswap permit2 repository, the Permit2 and Universal Router post, Uniswap Wallet, Labs pages on crypto wallets and WalletConnect, ethereum.org wallets and gas, Investor.gov crypto asset custody, and BloFin's public spot instrument API. All facts independently verified against cited documentation current as of September 2026.

This article is educational and general in nature, not financial or investment advice. Cryptocurrencies like UNI carry real risks, including price swings, lost keys, phishing, bad signatures, venue failure, and withdrawal errors. Nothing here is a recommendation to buy, sell, or hold any asset. Do your own research, and consider a licensed professional before making financial decisions. BloFin does not provide investment advice.