Positions & custody
Where your positions live — and how to get out
The Topaz AI Wallet is self-custody, but it works differently from a plain wallet: your funds and positions live in a smart account that you own and control. Understanding this makes exiting and withdrawing straightforward.
Your self-custody smart account
When you use the AI Wallet, your positions are not held directly by the wallet you log in with (your EOA). Instead, they live in a smart-contract account (the TopazAccount) that is owned by your EOA.
| Who owns it | Your connected wallet (EOA) is set as the owner at creation. Only the owner can execute — every action requires your signature. |
|---|---|
| Where it comes from | It is deployed for you from a factory using a deterministic (CREATE2) address derived from your wallet address, so the same wallet always maps to the same account. |
| What it holds | All your in-app assets: tokens, concentrated-liquidity NFTs, and v2 LP tokens — staked or unstaked — are custodied by this account. |
| How actions run | Actions are executed by the account itself via delegatecall into allowlisted connector contracts. Because the connector runs as the account, anything it mints or stakes is owned by the account. |
Why a smart account?
Funding your account
- 1
Connect your wallet
Sign in with an injected wallet (e.g. MetaMask), WalletConnect, or Topaz email login. That wallet — your EOA — becomes the owner of your smart account.
- 2
Your smart account is resolved
The app computes your account address deterministically from your wallet. It is deployed on demand the first time you execute, in the same transaction flow.
- 3
Move funds in
Native BNB is wrapped and pulled into the account as part of a batch; ERC-20 tokens are pulled in after you approve them. Existing CL positions can be migrated in (below).
You can also choose to keep funds in the account between actions (a working balance) so later steps can use them, or sweep them back to your wallet at any time.
Bringing in existing positions
If you already hold Topaz concentrated-liquidity positions in your wallet, the Migrate flow moves them into your smart account: it transfers each position NFT in and re-stakes it in its gauge if one exists. After migration, the account owns and manages them like any in-app position.
Exiting positions
Closing a position is just another action you can ask for. For concentrated liquidity, there are three exit modes:
| Both tokens | Unstake, burn the position, and return both underlying tokens (plus accrued fees and rewards) to the account. WBNB is unwrapped to native BNB. |
|---|---|
| Single token | Unstake and burn the position, then swap everything into one token you choose (BNB included), so you walk away holding a single asset. |
| NFT only | Unstake and hand the live position NFT — liquidity intact — back to your wallet, so you can manage it elsewhere or re-import it later. |
v2 positions remove similarly: take out any percentage of your LP and exit to both tokens or consolidate into a single token.
Where your funds go on exit
When you close a position, the freed tokens land in your smart account's working balance first. To get them into your wallet, the bundle includes a final sweep step that transfers them back to your EOA. The app adds this for you by default.
Keep funds deployed instead
Because everything is simulated first, you always see exactly which tokens end up in your wallet versus your account before you sign. More on simulation and guardrails →