LocalCoinSwap wallets are non-custodial. That means we do not hold a copy of your private keys that we can use without you. Your password and wallet PIN are how your browser unlocks those keys. This page explains what that looks like in practice.
Two locks, different jobs
Think of two separate locks:
- Account password — lets you sign in and unlock your wallet keys on any device where you log in.
- Wallet PIN — a short code you set after signup. You enter it when you send crypto, trade, or create offers on that device.
You can browse much of the app while logged in without the PIN. Actions that move funds or change wallet state ask for the PIN first.
What happens when you create an account
When you register, your browser (not our servers) generates the crypto material for your account: a master account key, a recovery mnemonic, and later the per-coin wallet keys.
Before anything sensitive is stored with us, your browser encrypts it on your device:
- The account key is encrypted with your password.
- The mnemonic is encrypted with the account key.
- Coin private keys are encrypted with the account key when wallets are created.
We store those encrypted packages, plus public details we need to run the platform (for example deposit addresses). We never receive your password in plain text — only a one-way hash used to check login.
What your password does
Your password has two roles:
Sign-in. We check a hash of your password so we know it is you logging in.
Unlocking your keys. On your device, the same password decrypts the encrypted account key we return after login. From that, your browser can decrypt the mnemonic and coin keys when needed for wallet actions.
If the password is wrong, decryption fails. There is no back door on our side that can finish that step for you.
What your wallet PIN does
The PIN is not a second login password and it does not replace your account password.
After you set a PIN, unlocking it lets this browser session use a short-lived key wrap so your account key can stay encrypted in local storage instead of sitting in plain text on disk. The unlocked material lives in memory for that tab session. A full refresh clears it until you enter the PIN again.
If you forget your PIN but can still log in with your password, you can usually reset the PIN through the email flow. That does not help if you have lost the account password.
What stays in your browser
After login, encrypted wallet data can be kept in your browser’s local storage (IndexedDB) so the app can work smoothly on that device. Logging out clears that local copy. Clearing site data does the same.
On a new device or after clearing data, you sign in again with your password. That downloads your encrypted packages and decrypts them locally. You will need the PIN again before wallet and trading actions.
What we keep on our servers
Roughly:
- Encrypted account key and mnemonic (usable only with your password on a device)
- Encrypted coin private keys (usable only after the account key is unlocked)
- Public keys and addresses
- A hash of your login password
- A hash of your wallet PIN, and session material used when the PIN unlock API succeeds
We do not store your password or PIN in a form we can read, and we do not keep an unencrypted copy of your account key or coin private keys for “support recovery.”
If something goes wrong
| Situation | What you can do |
|---|---|
| Forgot wallet PIN | Reset the PIN if you can still log in with your password |
| New phone / cleared browser | Log in with your password, then unlock with your PIN |
| Forgot account password | We cannot decrypt your wallets or restore access |
That last row is the trade-off of non-custodial design: nobody at LocalCoinSwap can reset your password and hand your crypto back. Store your password somewhere safe that only you control.
