The hardest part of your first swap was never the swap. So we shipped the wallet inside LeoDex.
We shipped a self-custodial wallet inside LeoDex — no extension, no app, no account. The interesting part isn't that it takes fifteen seconds; it's that you don't see a seed phrase until you have something worth protecting. Here's why the wallet step is where people quit, how the in-browser vault works, where it is weaker than an extension, and your first wallet in six steps.
Every swap app opens with the same request: connect a wallet. It is a reasonable thing to ask and it has an unreasonable price — an extension you have to install, twelve words you have to write on paper, and a paper you have to keep safe for the rest of your life, all of it demanded before you have a single dollar on the line. The swap itself takes forty seconds. The wallet takes an afternoon. So we shipped the wallet into LeoDex: no extension, no account, no email, and no seed phrase standing between you and your first trade.
That reads like an onboarding tweak. It isn't, and the reason is specific: for most people who never make a crosschain swap, the swap was never the obstacle. The wallet was.
§ 01 The wallet is where people quit
The gap between owning crypto and using it is enormous and it is not closing. a16z's 2025 State of Crypto put roughly 716 million people worldwide as holders of some crypto, and active users at somewhere between 40 and 70 million — while monthly active addresses actually fell 18% year over year.01 Most people who own this stuff do not touch it. The industry has spent a decade reading that as a demand problem.
Watch someone try for the first time and a different explanation presents itself. They arrive with an intention — buy this, move that, try the thing a friend described — and they meet a wall that has nothing to do with their intention. Install this extension. Approve these permissions. Now here are twelve words in a specific order; if you lose them, your money is gone forever, and if someone else sees them, your money is also gone forever. There is no reset link. There is no support line. Good luck.
Every part of that is technically true, and presenting it at minute one is a design decision rather than a law of nature. The seed phrase exists because keys need to be portable between wallets, and standardising them as words was a genuinely good idea in 2013.02 The browser extension exists because in 2015 there was nowhere safer to put a key on a desktop. Both are historical answers to real problems. Neither is a reason the first ninety seconds of someone's crypto life has to look like a hazing ritual.
It does not even work on its own terms. Consensys — MetaMask's parent, which has more standing on this than anyone — said last year that 35% of users do not back up their seed phrases at all, and called seed phrase management "one of the biggest risks in self-custody today".03 That is the company whose product defined the ceremony, telling you the ceremony fails a third of the time. They then bought a company to remove it.
The cost is not evenly distributed, either. It falls hardest on exactly the person the industry claims it wants: the one who has not done this before, who has a modest amount of money, who is curious rather than ideological. That person does not own a hardware wallet and is not going to buy one for a $200 trade. When the only door is a twelve-word ceremony, they close the tab — and the industry records this as a lack of interest rather than a failure of hospitality.
Meanwhile the fallback everyone actually uses is easier in the ways people can feel and worse in the one that decides the outcome. They go to a centralized exchange, hand over a passport and a selfie, and get a real interface, a real support line, and a balance that is a row in somebody's database — freezable while they argue with a ticket. I wrote about one such freeze in these notes already.04 The seed phrase is not competing with something safer. It is competing with custody.
§ 02 What a wallet actually is
Strip the word down and a wallet holds no coins. Your coins are entries on public ledgers; the wallet holds a private key that proves you are allowed to move them. Everything else — the balances, the tokens, the little chain icons — is a view of public data rendered next to your key.
That key comes from a seed: a large random number, rendered as twelve or twenty-four words so a human can copy it. From one seed a wallet derives keys for every chain you use. The seed is the wallet. Everything else is presentation.
So the real question in wallet design is narrow: where does the seed live, and what has to happen before it can be used? There are four answers in the wild. A hardware wallet keeps it on a dedicated device, signs there, and never lets it touch your computer — the strongest answer available, and the right one for meaningful money. A browser extension keeps it encrypted on disk and decrypts it in a process the web page cannot reach. A centralized exchange keeps it and asks you to trust them. And an embedded wallet — the category this launch belongs to — keeps it somewhere in between, which is where the interesting differences live.
The answer nobody took seriously for a long time was the browser itself, and the reason was fair: browsers used to be a bad place to keep a secret. Then the platform moved. Browsers now ship a real cryptography API, with keys a page can use but never read.05 They run WebAssembly fast enough to put a memory-hard key derivation function on a background thread, turning a human password into something a GPU farm cannot cheaply brute-force.06 And they ship passkeys that can hand an application a stable secret derived from your fingerprint, without that secret ever existing on a server.07 None of those existed in usable form five years ago. Together they are what makes an in-browser vault defensible now — and the reason it was fair to dismiss one before.
§ 03 What we shipped
Mane Wallet is a self-custodial wallet inside the LeoDex web app. You click Create Wallet, name it, pick a colour, choose a password, and you are in — about fifteen seconds, no extension, no download. Nothing is uploaded. There is no account, no email, and no server that has ever seen your key.
Underneath, the design is a dual wrap. A seed is generated in your browser and encrypted with AES-256-GCM under a random data key. That data key is then wrapped by a key derived from your password with Argon2id at 64 MiB of memory — and, if you enrol one, wrapped a second time and independently by a key derived from your passkey. The two wraps are domain-separated, and the derivation parameters are authenticated alongside the ciphertext, so an attacker who edits the stored file to ask for less work does not get it decrypted.
So a passkey never becomes a single point of failure. This matters more than it sounds. A passkey-derived key is bound to that specific passkey — delete the credential and anything it encrypted is unrecoverable — which is the strongest argument against wallets that make a passkey the whole story. Para, who sell an embedded wallet, wrote the sharpest version of this critique: passkeys are "the best authentication primitive the web has ever produced", and using them as the actual key controlling onchain assets is "a category error".08 They are right, and their five objections all dissolve the same way: in Mane the passkey never signs anything. It unlocks a locally encrypted BIP-39 seed. Password unlock always works, and the seed is exportable, so a passkey is a convenience with no power to strand you.
The other decision worth defending is what we do not show you. There is no seed phrase during onboarding. You are not asked to write anything down before you have anything to protect. Backup is deferred rather than demanded, and the prompt is built to keep returning until you deal with it. That is a deliberate trade and it can go wrong: someone funds the wallet, ignores four prompts, clears their cache, and the loss is on a decision I made. I still think it beats the alternative, which is teaching every new user that warnings are things you click past.
Security you make people perform before they have anything to lose is not security. It is a filter, and it filters out the people who needed it most.
Import works the way you would hope — a twelve or twenty-four word phrase, or a keystore file. Paste a whole phrase into the first box and it fills the grid. If a word is not a real BIP-39 word we name the position rather than saying "invalid". Phrase fields use text masking rather than password inputs, so your password manager does not try to capture a seed it should never hold, and the clipboard is cleared after a paste.
Keeping that export path is not legacy baggage. On August 3 this year, Ctrl Wallet — 650,000 monthly users, formerly XDEFI — shut down permanently after an exploit, and the app now opens for exactly one purpose: to let you copy out your recovery phrase.14 Everyone who got their money out did so because a standard, vendor-neutral seed export existed. A wallet whose keys only exist inside a vendor's enclave has no equivalent door.
Which brings up the part of this that is not novel. Removing the seed-phrase step is a well-populated category — Privy, Turnkey, Coinbase's embedded wallets, and MetaMask's own Web3Auth acquisition have been doing it since 2023, and they are better than us at the things that need a business relationship, like recovering an account for a customer who lost their laptop. Uniswap shipped an in-app wallet in June on exactly this model; their post says plainly that it is "powered by Privy" and that "Uniswap Labs cannot access your keys or assets".09 Both statements are true. Privy still holds a share of the key.10
That is the whole difference, and it cuts both ways. Almost every wallet in this category splits the key with a server, or keeps it whole inside an enclave the vendor operates — which is precisely what makes their recovery flows possible. Mane has no server half to hold, so nobody can recover it for you and nobody can be compelled to hand it over. It also means we cannot help you when you lose it. It is the trade we wanted, and it is worth noticing how quickly the other side of that trade changes hands: Privy went to Stripe, Web3Auth to Consensys, Dynamic to Fireblocks,11 and Magic's wallet business to Kraken's parent12 — all inside fourteen months. If you built on one of those, the company holding half your users' keys is not the company you signed with.
- Custody
- Self-custodial · keys generated in your browser · no account, no email, no server-side key share
- Encryption
- BIP-39 seed under AES-256-GCM · data key wrapped by an Argon2id (64 MiB, 3 passes) password slot and a WebAuthn PRF passkey slot
- Unlock
- Password always · passkey optionally — Face ID, Touch ID, Windows Hello
- Import / export
- 12 or 24-word recovery phrase, or a keystore file that wraps one (a keystore holding a bare private key is refused)
- Trust boundary
- The page. Weaker than an extension's isolated process — see § 04
- Recovery
- None. Clear site data without your recovery phrase and the wallet is gone — there is no reset
- Audit
- No third-party security review as of publication
- Status
- Live on leodex.io · v2.2.2 · alongside Ledger, Trezor, MetaMask and the rest
§ 04 The honest limits
Now the part the launch post usually skips.
Nobody outside my team has audited this. There is no third-party security review of the vault as of publication. The cryptographic choices are conventional and the parameters are public, but conventional is not the same as reviewed, and I am not going to describe an internal review as though it were an external one.
The page is the trust boundary, and that is a step down from an extension. Section 02 gave the extension's answer: decrypted in a process the web page cannot reach. Ours is decrypted in the page. That means our attack surface is your seed's attack surface — a cross-site scripting bug on leodex.io, or one compromised dependency in our build, and an unlocked vault is readable in a way MetaMask's structurally is not. This is not hypothetical. In September 2025 a phishing email against a single npm maintainer put malicious code into eighteen packages with around two billion weekly downloads, and the payload did exactly this class of thing: hook the page's network calls and wallet object, and rewrite destination addresses at signing time.13 We mitigate the ordinary ways — a strict content security policy, no third-party script tags, a dependency tree we keep deliberately small, an unlock that expires — and mitigation is not isolation. An extension is architecturally ahead of us here. That is the price of not making you install one.
A browser is not a hardware wallet. Keys are encrypted at rest but decrypted in a tab on a general-purpose computer. Ledger's CTO, after that npm attack, said the only sure defence is a hardware wallet with a secure screen, and he is right. If you are holding an amount you would be genuinely upset to lose, use a Ledger or a Trezor — LeoDex supports both natively, that has not changed, and this wallet is not an argument against them. It is the right tool for a different balance.
There is no recovery by construction, not by policy. No email reset, no support override, no key escrow, because there is no key material anywhere but your device. That is the entire point and it is also the sharp edge: clear your browser's site data without having saved your recovery phrase and the wallet is gone.
Two smaller ones. We run Argon2id at 64 MiB, which is the second of the two profiles RFC 9106 recommends rather than the first — 2 GiB stalls a phone browser, and a wallet nobody can unlock on a phone is not a wallet, but it does mean an attacker with a stolen vault file gets a cheaper job than the spec's first choice would have given them. And passkey unlock is not universal: it needs a WebAuthn extension whose support is uneven — recent Chrome, Safari and Edge are fine, older iOS is not, and we refuse it outright below iOS 18.4 because those versions can silently return different results and lock you out of your own wallet. When it is unavailable you get the password, which always works.
None of these are disqualifying. All of them are cheaper to know now than at the confirm screen.
§ 05 Your first wallet, in six steps
- Go to leodex.io and click Connect Wallet.
- Click Create Wallet. Give it a name and pick a card colour — cosmetic, and it exists so you can tell two wallets apart at a glance.
- Choose a password. It encrypts your key on this device; it is not sent anywhere and it cannot be reset.
- You are in. If your device offers it, click Enable passkey unlock — after that, Face ID or Touch ID opens the wallet and you will rarely type the password again.
- Fund it, and swap. Your new wallet covers eleven chains today — Bitcoin, Ethereum, Base, Arbitrum, Polygon, Avalanche, BNB Chain, Litecoin, NEAR, THORChain and MAYAChain — and swaps into the rest.
- When the backup prompt appears, take it seriously. Write the phrase down, offline, and keep it somewhere you would keep a passport. It is the only copy that exists.
Already have a wallet? Step 2 becomes Import Wallet, and the rest is the same.
The wallet step was never a security requirement. It was an artefact — of desktop software conventions, of a browser platform that used to be weaker than it is, and of an industry that got comfortable making the first ninety seconds hostile and calling the survivors users. The parts that are genuinely hard about self-custody are still hard here: you hold the key, nobody can recover it for you, and a backup you never wrote down will not save you.
That is what shipped this week. Not a shortcut around self-custody. A door into it that does not open with a test.
Survive > maximise. Start without asking permission. Write it down before it matters.
Preguntas frecuentes
Q.Is Mane Wallet self-custodial?
Yes. The seed is generated in your browser and encrypted there; nothing is uploaded and there is no account or email. LeoDex never holds a key or a share of one, which also means we cannot recover your wallet for you — the recovery phrase you save is the only copy.
Q.Do I need a browser extension or an app?
No. Mane Wallet lives in the LeoDex web app itself. You click Create Wallet, choose a password, and you have a wallet — no extension install, no download, no account.
Q.How is this different from MetaMask, or from an embedded wallet like Privy?
MetaMask decrypts your key in a browser process the web page cannot reach, which is a genuinely stronger boundary than ours — we decrypt in the page. What we remove is the install and the seed-phrase ceremony. Embedded providers like Privy and Turnkey remove those too, but generally by splitting the key with a server they operate, which is what lets them recover an account for you. Mane has no server half: nobody can recover it, and nobody can be compelled to.
Q.Why doesn't it show me a seed phrase when I create the wallet?
Because a brand-new empty wallet has nothing to protect yet, and a ceremony at minute one teaches people to click through warnings. Backup is deferred rather than skipped: the prompt is built to keep returning until you have written the phrase down.
Q.How are my keys protected?
The seed is encrypted with AES-256-GCM under a random data key. That data key is wrapped with a key derived from your password using Argon2id at 64 MiB, and — if you enrol a passkey — wrapped a second time independently. The derivation parameters are authenticated with the wrapped key, so an attacker cannot rewrite them to ask for less work.
Q.Is this as safe as a Ledger or Trezor?
No, and we do not claim it is. A hardware wallet keeps keys on a dedicated device with its own screen; Mane decrypts in a browser tab on a general-purpose computer, where a malicious dependency or an XSS bug on our own site is a real threat. LeoDex supports Ledger and Trezor natively — for balances you would be upset to lose, use one.
Q.What happens if I clear my browser data?
The encrypted vault is deleted with it. If you saved your recovery phrase you can import the wallet back on any device; if you did not, it is unrecoverable. There is no reset and no support override — that is what self-custody means.
Q.Can I import a wallet I already have, or export this one?
Both. Import takes a twelve or twenty-four word recovery phrase, or a keystore file that wraps one — a keystore holding a bare private key is refused rather than half-imported. That export path matters: when Ctrl Wallet shut down in August 2026, standard seed export is how its users got their funds out.
Q.What is a passkey unlock and do I need one?
It lets you open the wallet with Face ID, Touch ID or Windows Hello instead of typing your password. It is optional and additive — the password slot always works — and it depends on WebAuthn PRF support, which recent Chrome, Safari and Edge have. We refuse it below iOS 18.4, where the browser can silently return inconsistent results.
Referencias y fuentes
Every claim about what Mane Wallet does was checked against the source in packages/mane-vault rather than against our own marketing, and where the two disagreed the body follows the code. The cryptographic parameters quoted — AES-256-GCM, Argon2id at 64 MiB with three passes, and the WebAuthn PRF passkey slot — are the values in the shipping build as of v2.2.2. There is no third-party audit of that code, and § 04 says so. Competitor key-management descriptions are taken from each vendor's own current documentation and are summaries of their published architecture, not audits of it. All URLs verified August 11, 2026. Nothing here is financial advice.
Adoption & the onboarding gap
- [01]“State of Crypto Report 2025”. a16z crypto a16zcrypto.com/posts/article/state-of-crypto-report-2025/
- [02]“Consensys acquires Web3Auth to enhance MetaMask's user experience and user safety”. Consensys consensys.io/blog/consensys-acquires-web3auth-to-enhance-metamasks-user-experience-user-safety
Standards & specifications
- [03]“Mnemonic code for generating deterministic keys”. Bitcoin Improvement Proposals github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
- [04]“Web Cryptography Level 2”. World Wide Web Consortium www.w3.org/TR/webcrypto/
- [05]“Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications”. IETF datatracker.ietf.org/doc/html/rfc9106
- [06]“Web Authentication: An API for accessing Public Key Credentials (PRF extension)”. World Wide Web Consortium www.w3.org/TR/webauthn-3/
The embedded-wallet category
- [07]“Why Passkey-Only Wallets Will Fail (And What to Do Instead)”. Para blog.getpara.com/passkey-wallets/
- [08]“In-app wallet and more UX improvements”. Uniswap Labs blog.uniswap.org/in-app-wallet-and-more-UX-improvements
- [09]“Wallet infrastructure architecture”. Privy docs.privy.io/security/wallet-infrastructure/architecture
- [10]“Fireblocks acquires Dynamic”. Fireblocks www.fireblocks.com/blog/fireblocks-acquires-dynamic
- [11]“Kraken parent Payward acquires Magic Labs' embedded wallet business”. The Block www.theblock.co/post/409705/kraken-parent-payward-acquires-magic-labs-embedded-wallet-business
Threat model
- [12]“npm supply chain attack, September 2025”. Sygnia Threat Reports & Advisories www.sygnia.co/threat-reports-and-advisories/npm-supply-chain-attack-september-2025/
- [13]“Ctrl Wallet shuts down permanently following security exploit”. Cointelegraph cointelegraph.com/news/ctrl-wallet-shutdown-security-exploit
LeoDex
- [14]“MEXC froze user funds. What that tells you about custody.”. LeoDex Field Notes leodex.io/editorial/mexc-frozen-funds-may-2026