# AutistMask User Guide AutistMask is an Ethereum wallet. It runs as a browser extension in Chrome and Firefox. This guide explains how to install it and how to use it. ## What it does - It keeps your wallets. A wallet comes from a recovery phrase (12 or 24 words), from a private key, or from an extended private key. An extended private key is a single key that many addresses are computed from. - It shows the ETH and ERC-20 token balances of your addresses. ETH is the currency of Ethereum. A contract is a program that runs on Ethereum. An ERC-20 token is a token issued by a contract under the ERC-20 standard. - It sends and receives ETH and ERC-20 tokens. - It connects to web3 sites and signs what you approve. A web3 site is a website that asks a wallet to sign for it. It does nothing else. It has: - no swap screen (a swap exchanges one token for another); - no portfolio view; - no NFT gallery (an NFT is a non-fungible token, such as a collectible); - no advertising; - no tracking. ## What it sends, and to whom The wallet runs in your browser. The developer runs no server. Each service named below sees your IP address, as any website you visit does. By default the wallet talks to one service: the Ethereum RPC endpoint. The RPC endpoint is the server that the wallet asks about the blockchain and sends your transactions through. The blockchain is the shared record of all Ethereum transactions. It grows in blocks; a block is a batch of transactions that the network adds together. Usually the endpoint is a node, a computer running the Ethereum software. A new install uses a public one, `https://ethereum-rpc.publicnode.com`. You can change it in Settings. The RPC endpoint sees every address that the wallet asks about and every transaction that the wallet sends. While the wallet is open, it asks for your balances every 10 seconds. While it is closed, it asks every 60 seconds. If you want privacy, point the Ethereum RPC setting at a node of your own. On Ethereum Mainnet, the main Ethereum network, the wallet reads USD prices through the RPC endpoint, from Chainlink price feeds. A Chainlink price feed is a contract that publishes an exchange rate on Ethereum. No price service is contacted. A token with no Chainlink price feed shows no USD value. Two more services get your data only after you turn on a setting. Both settings are off in a new install. The first screen and Settings both offer the two settings. - "Use Blockscout". Blockscout is an open-source block explorer, a service that reads the whole blockchain and answers questions about it. With the setting on, the wallet sends Blockscout your addresses each time it refreshes your balances, and the hash of each transaction you open. A hash is the id of a transaction. In return the wallet shows your transaction history, transaction details and the tokens you have not added yourself. You can point the setting at a Blockscout server of your own. - "Check recipients on Etherscan". Etherscan is a block explorer website. With the setting on, the wallet fetches the recipient's Etherscan page each time you review a send. The wallet warns when Etherscan labels the address as phishing, scam or exploiter. Only the recipient's address is sent. The Etherscan server cannot be changed. Each time a site's request opens a window, the wallet checks the site against a phishing list built into the extension. That check sends nothing anywhere. These stay in your browser and never leave it: - your recovery phrases, private keys and extended private keys, encrypted with your password; - your wallet names and your settings; - which sites you have allowed or denied; - the list of contracts that the wallet has caught issuing fake tokens. The Etherscan links on the screens are ordinary links. They contact nothing until you click them. ## Installing AutistMask is built from source. [`../README.md`](../README.md) says how: `make setup` and then `make build` write the extension into `dist/chrome/` and `dist/firefox/`. Chrome: 1. Open `chrome://extensions/`. 2. Turn on "Developer mode". 3. Click "Load unpacked" and pick `dist/chrome/`. Firefox, version 115 or newer: 1. Open `about:debugging#/runtime/this-firefox`. 2. Click "Load Temporary Add-on" and pick `dist/firefox/manifest.json`. A temporary add-on is unloaded when Firefox exits. Add it again the same way on every start. Your wallets survive the restart, because Firefox keeps the extension's storage between loads. Removing the add-on in `about:addons` destroys that storage. On Firefox, Remove is final. Your recovery phrase, private key or extended private key is then the only way back. AutistMask does not run in Firefox private windows. If Firefox is set to never remember history, every window is private, and the extension does not run at all. ## Your password and your backup Each wallet has its own password. The password encrypts that wallet's secret, its recovery phrase or key, on this device. The encryption uses Argon2id to turn the password into a key and XSalsa20-Poly1305 to encrypt with it, through the libsodium library. The password is not part of your recovery phrase. Anyone with the phrase can restore the wallet on any device without the password. The password protects only the copy stored in this browser. While a phrase wallet is in this browser, `[recovery phrase]` in Settings shows its phrase after your password. If you lose the written phrase and this browser's copy is gone, the wallet is lost. The wallet asks for the password when you: - send a transaction; - sign a transaction, message or typed data for a site (typed data is structured data laid out as named fields); - show a recovery phrase; - export a private key; - delete a wallet with "Confirm Delete". It never asks for the password to: - show balances; - receive funds; - read the transaction history; - remove an address. The password cannot be recovered or reset. If you forget it, you can still delete the wallet with "I have lost my password". Then add the wallet again from your backup, with a new password. See Deleting a wallet below. ## Getting started ### Creating a wallet 1. Click the AutistMask icon in the browser toolbar. 2. The first screen offers "Use Blockscout" and "Check recipients on Etherscan". Both start off. Tick what you want; you can change both later in Settings. 3. Click "Add wallet". 4. On the "From Phrase" tab, click the die button. It writes a new 12-word recovery phrase into the box. 5. Write the words down and keep them safe. Anyone with them can take your funds. Without them, this browser's copy is the only copy of your wallet. 6. Choose a password and type it twice. It needs at least 12 characters, unless "Allow weak passwords" is on in Settings. 7. Click "Import". Later wallets are added from Settings with "+ Add wallet", or with the "Add additional wallet..." link at the bottom of the home screen. ### Importing a wallet The Add Wallet screen has three tabs: - "From Phrase": paste a 12 or 24 word recovery phrase. AutistMask computes addresses from the phrase by the rule `m/44'/60'/0'/0`, called the derivation path. Most wallets use the same rule, so the same phrase gives the same addresses here and elsewhere. - "From Key": paste one private key. The wallet gets one address. - "From xprv": paste an extended private key; `xprv` is the usual short name for one. It must be the master key, the one that every other key of the wallet is computed from, not a key computed from it. The wallet behaves like a phrase wallet but has no phrase to show. All three tabs ask for the same password fields. "Import" finishes the job. After a phrase or xprv import the wallet looks for addresses that have been used. The scan counts an address as used when it holds ETH or has sent a transaction. An address that only received tokens is not found. The scan checks addresses through the RPC endpoint, five at a time, and stops after five unused ones in a row. When it finds more than one used address, those addresses replace the wallet's address list, and a message says how many were found. The wallet refuses: - a phrase or key that is already added; - an invalid phrase or key; - an extended private key that is not a master key. ### Adding addresses A wallet made from a phrase or an extended private key can hold many addresses. On the home screen, click the "+" button next to the wallet's name. The wallet computes the next address at once. The same phrase always gives the same sequence of addresses. Each address is labelled "Address N". ### The active address One address is the active address. The home screen shows it at the top, with its ETH balance and its USD value. "Send" and "Receive" on the home screen act on the active address. Connected sites see the active address and no other. Tap any address row on the home screen to make that address active. ### Removing an address Each address of a phrase or xprv wallet with more than one address has an `[x]` button on the home screen. The confirmation screen explains what removing does. Nothing is destroyed: the address stays yours, and any funds at it stay where they are. The wallet stops listing the address and forgets the sites allowed or denied for it. Getting the address back is not easy. "+" computes only addresses that this wallet has never listed. The removed address was listed once, so "+" skips it. The way back is to delete the whole wallet and import its backup again. The scan after the import finds the address only if it holds ETH or has sent a transaction. ### Deleting a wallet Open Settings and click `[x]` next to the wallet. Type the wallet's password and click "Confirm Delete". Deleting erases the copy of the key stored in this browser and the wallet's site permissions. Nothing on the blockchain changes. If you have forgotten the password, click "I have lost my password". The next screen asks you to type the wallet's name instead. "Delete This Wallet Forever" then deletes the wallet without a password. With a kept copy of the wallet's backup you can add the wallet again with a new password. Without one, deleting the wallet loses everything it holds, forever. ## Tokens ### Which tokens are shown A tracked token is one you added yourself, by its contract address. A tracked token is listed on every address while "Show tracked tokens with zero balance" is on, which it is in a new install. With that setting off, a tracked token is listed only on the addresses that hold it. Tracked tokens are shown whether or not "Use Blockscout" is on. Other tokens appear only while "Use Blockscout" is on. Blockscout reports every token that an address holds. The wallet lists such a token only when it is on the built-in list of well-known tokens or has at least 1,000 holders. Everything else is treated as spam and hidden. Turning "Use Blockscout" off removes every untracked token from the lists at once. The balance list and the send screen hide a token that carries a well-known symbol, `ETH` included, but comes from another contract. A token you track yourself is still listed at zero while "Show tracked tokens with zero balance" is on. See Scam protection. ### Tracking a token From an address: 1. Click `[info]` on the address. 2. Click "+ Token". 3. Enter the token's contract address, or pick one of the common tokens offered. The common tokens are offered on Ethereum Mainnet only. 4. Click "Add". From Settings, under Tracked Tokens, click "+ Add token". That screen offers the top 10 tokens as buttons, the top 100 in a dropdown, and a contract address field. The two lists are offered on Ethereum Mainnet only. A token is tracked on the network that it was added on. Settings lists the tracked tokens of the active network, each with an `[x]` button that stops tracking it. The wallet refuses to track: - a token that is already tracked; - an address on its scam list; - a contract that does not answer as an ERC-20 token. ### The token screen On an address's screen, click any balance row. The token screen shows: - the token's balance; - its contract address; - its name, symbol and decimals (the number of decimal places its amounts have); - how many addresses hold it, when known; - its website, when known; - the token's own transaction history. ## Sending 1. Click "Send" on the home screen, on an address's screen or on a token's screen. 2. Choose what to send: ETH, or one of the tokens that the address holds. 3. Enter the recipient. This is an address, or an ENS name such as `vitalik.eth`. An ENS name stands for an address, and the wallet looks it up through the RPC endpoint. 4. Enter the amount, or click "Max". 5. Click "Review". "Max" fills in a token's whole balance. For ETH it fills in the balance minus the network fee. The network fee is the price the network charges to process a transaction. It depends on the recipient, so enter the recipient first. A message says why when there is nothing to fill in. An amount must be a number above zero, written as digits with at most one decimal point. ETH has 18 decimal places. A token has as many as it declares, up to 18. Digits beyond them must be zeros. An ENS name is refused when it has no address recorded on Ethereum. A name whose owner serves its address from a web server instead is refused too. Enter the address instead. ### The confirmation screen The screen shows: - the type: "Native ETH transfer", or "ERC-20 token transfer" with the token's symbol. Native means that ETH is built into the network and needs no contract; - the token's contract address, for a token; - the From and To addresses, each in full, with an identicon (a small pixel picture made from the address) and an Etherscan link; - the amount, with its USD value; - your balance on this network; - the network fee. The screen shows what the transfer is expected to cost, and under it the larger amount reserved until the network has processed the transaction. The network refunds the difference. It warns when the recipient is: - on the wallet's list of known scam addresses; - a burn address, one nobody controls, where funds are destroyed; - the address you are sending from; - a contract rather than a person's address; - an address that has never sent a transaction and holds no ETH; - labelled as phishing, scam or exploiter on Etherscan, while "Check recipients on Etherscan" is on. A failed lookup shows no warning. A missing warning therefore does not prove that Etherscan was asked. While the setting is off, a line says the address was not checked. It refuses to send, and says why, when: - the amount is not a valid number; - the amount is more than you hold; - the amount plus the fee is more than your ETH; - your ETH does not cover the fee of a token transfer; - the fee could not be estimated; - your balance could not be read. Enter your password and click "Sign & Send". The wallet signs the transaction and sends it to the network. Before signing, it refuses when: - the network was switched since you reviewed the send; - the selected wallet no longer holds the From address; - the fee or gas limit that the network quotes is above the wallet's limits, which allow a total fee of at most 1 ETH. Gas is the unit Ethereum measures work in, and the gas limit is the most gas the transaction may use; - the token contract now reports a different number of decimals than the amount was shown with. ### After sending A waiting screen shows the transaction hash and a counter. The wallet asks the network every 10 seconds for the receipt, the network's record that the transaction was included in a block. The wait resumes if you close and reopen the wallet. Then: - a receipt opens the success screen, with the block number, the hash and Etherscan links; - no receipt after 60 seconds opens the error screen with a timeout message. A timeout does not mean the transaction failed. It may still be included later; check the hash on Etherscan; - six failed lookups in a row open the error screen with a message saying the network could not be reached. Check the Ethereum RPC setting. ### Sending a specific token On a token's screen, "Send" opens the send screen with that token locked in. What to send cannot be changed there. ## Receiving 1. Click "Receive" on the home screen, on an address's screen or on a token's screen. 2. Show the QR code, or click "Copy address". Give the address only to senders on the network you are using. AutistMask works on Ethereum Mainnet and the Sepolia test network. Tokens sent to your address on another network do not appear in AutistMask, and it cannot move them. Opened from a token's screen, the Receive screen warns that this token sent on another network is lost. ## Transaction history Transaction history comes from Blockscout, so it needs "Use Blockscout". While the setting is off, each history list shows one line saying so. - The home screen lists up to 25 of the most recent transactions across all your addresses. - An address's screen lists up to 25 of its most recent transactions. - A token's screen lists the token's transfers among those 25. Each row shows: - the age and the direction, "Sent" or "Received". A transaction can also ask a contract to do something; that is a contract call. A row for a contract call shows the call's name instead, such as "Approve" or "Swap"; - the amount. A contract call row shows an amount only when the call moved a token. A swap row shows the amount received, or the amount paid in when no token came back. A row with no amount shows a symbol alone; - the other party's address, in full. A swap row shows your own address here. The scam filters below hide fake transfers and dust from these lists. Dust is a tiny amount of ETH. Tap a row to open the transaction. The transaction screen shows: - the hash; - the type, one of: - "Native ETH Transfer"; - "ERC-20 Token Transfer"; - "Swap"; - "Token Approval", a call that lets a contract move your tokens; - "Contract Call", any other call to a contract; - "Contract Creation", a transaction that puts a new contract on the network; - the status, "Success" or "Failed"; - the From and To addresses, in full; - the time, as a date and time and as an age; - the exact amount, and under it the amount in the token's smallest unit; - the token's contract address, for a token transfer; - these details from Blockscout: - the block number; - the nonce, the sender's sequence number for this transaction; - the gas price, the gas used and the fee; - what the transaction did, when the wallet can read it; - the raw data, the bytes the transaction carried. Tapping the hash, an address, the amount or a detail copies it. Each address, hash and block has an Etherscan link. ## Connecting to web3 sites AutistMask offers every page a standard wallet connection. It takes `window.ethereum`, the name sites look for, when no other wallet has taken it. Sites that list wallets can pick AutistMask by name. A site that wants your wallet opens a connection request. ### Connection requests The request shows the site's origin, for example `https://app.example`. The origin is the start of the site's web address, before any path. It holds the scheme (`https` or `http`), the host name (`app.example`) and a port number, which most addresses leave out. The request also shows the address that will be shared, which is the active address. Click "Allow" or "Deny". "Remember my choice for this site" starts ticked. The box stays as you last left it. While it is ticked, the wallet keeps your answer, and the site is not asked again. The answer applies to that exact origin and to the active address. A choice remembered for `https://app.example` does not cover `http://app.example` or another port of the same host name. A choice remembered for one address does not cover another. Without "Remember", an allowed site stays connected until: - the browser closes; - you make another address active; - you remove the site in Settings; - you remove the address, or delete its wallet. ### Transaction requests A connected site can ask you to send a transaction. The request opens in a window of its own. The wallet first fills in the nonce from the network, and the fee and gas limit too when the site gave none. If that fails, no window opens and the site is told. The window shows: - the site's origin; - what the transaction does, when the wallet can read it: - a token transfer; - a token approval; - a swap through the Uniswap Universal Router, step by step. Uniswap is a token exchange made of contracts on Ethereum, and the Universal Router is its contract that carries out a swap in steps; - the From address and the contract or recipient, in full; - the value in ETH and its USD value; - the largest network fee the transaction can cost, with the gas limit and the price per unit of gas; - the network and the nonce; - the raw data. Enter your password and click "Confirm". The wallet signs exactly the transaction shown, and checks the signed transaction against every value in the window before it sends anything. What you read is what goes out, or nothing does. "Reject" tells the site you refused. One transaction request is open at a time, across all sites. While one is open, the wallet refuses any other, and the site is asked to send it again later. ### Signature requests A connected site can ask you to sign a message or typed data. The request opens in a window of its own. The window shows: - the site's origin; - whether a message or typed data is to be signed; - the From address; - what will be signed. A plain message is shown as text, left to right in the order it was written, so right-to-left characters cannot reorder it. An invisible character, such as a zero-width space, is shown as its code in a small box, for example `U+200B`. The message is also shown as hex, that is as the hexadecimal digits of its bytes. Typed data is shown as its fields. Fields that the site added but that are not signed are listed apart, under "Not part of the signature". Some typed data is a token permission: a signature that lets a spender take your tokens later without asking you again. The spender is the contract or address that the permission names. The wallet recognises two kinds: - `Permit`, a signed permission that a token's own contract accepts; - a Permit2 permission. Permit2 is Uniswap's contract for token allowances, that is for permissions to move tokens. For a token permission, a red warning names the spender and each token and amount that the spender may take. "Sign" is disabled, and the window says why, when: - the typed data cannot be signed as shown; - the typed data names a different network than the active one; - a message is not hex. A request made with `eth_sign`, an older way of asking for a signature, shows a warning that names it. Enter your password and click "Sign" to sign. "Reject" tells the site you refused. ### Network switch requests A connected site can ask to switch the wallet's network. The window shows the site's origin, the current network and the requested network. Nothing changes until you click "Switch". Switching changes the network for the whole wallet and for every site. "Reject", or closing the window, leaves everything as it was. ### Closed windows If you close a transaction or signature window without answering, the request stays open; the site is not told you refused. Click the AutistMask icon in the toolbar to bring the request back. Until you answer, the icon opens the request instead of the wallet. When several requests wait this way, the oldest comes first. A closed connection or network switch window counts as a refusal. ### Phishing warnings When the requesting site is on the built-in phishing list, every one of these windows shows a red warning at the top before you decide. ### Managing sites Settings lists the sites under three headings: - Allowed Sites: allowed with "Remember my choice for this site"; - Connected Sites: allowed without it; - Denied Sites: denied with it. `[x]` beside an allowed or connected site disconnects the site. The site is told it has no address. `[x]` beside a denied site forgets the refusal. Making another address active disconnects every site allowed without "Remember", and rejects every request still waiting for an answer. A site whose remembered choice covers only the old address is not told the new one. ## Scam protection Address poisoning is a scam. The scammer makes an address that looks like one you have dealt with. The scammer then puts that address in your history, hoping you copy it later by mistake. Five defenses guard against this and related scams. The list of known scam addresses is always on. Settings has a switch for each of the other four, and all four are on in a new install. Fake tokens. Scammers issue tokens from their own contracts under a well-known symbol, such as `USDT` or `ETH`. The wallet knows which contracts may carry each symbol on its built-in list. The balance list and the send screen hide a token that carries one of those symbols but comes from another contract. `ETH` and the test network's `SepoliaETH` belong to no contract at all, so every token that claims them is hidden. In the history, the rule applies while "Hide fake tokens impersonating a known symbol" is on. A token you track yourself is still listed at zero while "Show tracked tokens with zero balance" is on. Tokens with few holders. Real tokens have many holders; tokens made for address poisoning have almost none. While "Hide tokens with fewer than 1,000 holders" is on, the history and the send screen hide a token with fewer than 1,000 reported holders. The balance list has its own rule: an untracked token appears only when it is on the built-in list or has at least 1,000 reported holders. When Blockscout reports no holder count for a token, the history and the send screen still show it. While "Use Blockscout" is off, no holder count is known. Fraud contracts. When the wallet detects a fake token transfer, it adds the token's contract to a list that it keeps. While "Hide transactions from detected fraud contracts" is on, the history hides transfers from the contracts on that list. The send screen never offers those tokens. Turning "Hide fake tokens impersonating a known symbol" off also stops new contracts being added to the list. Dust transactions. Scammers send tiny amounts of ETH from an address that resembles one you have dealt with, so that the similar address lands in your history. While "Hide dust transactions below N gwei" is on, ETH transfers below the threshold are hidden from the history. A gwei is a billionth of an ETH. The threshold starts at 100,000 gwei, which is 0.0001 ETH. A threshold of 0 hides nothing. Known scam addresses. The wallet ships a list of addresses known for fraud, including phishing addresses and wallet drainers. A wallet drainer is a contract that empties a wallet once given permission. Sending to a listed address raises a warning on the confirmation screen, and a listed address cannot be tracked as a token. The list holds only addresses involved in fraud; it is not a sanctions list. Addresses and hashes are shown in full, because address poisoning relies on shortened ones. The only shortened address is the label of a token with no known symbol: the first 10 characters of its contract address and "…". That label appears on the send screen, on the token screen, and on the confirmation and result screens of a send. The wallet also warns about phishing sites. The list of phishing sites is built into the extension and checked in your browser, so nobody learns which sites you visit. The list is as current as the AutistMask build you run. ## Networks AutistMask works on Ethereum Mainnet, the real network, and on the Sepolia Testnet, a network for testing whose ETH has no value. Switch between them under Network in Settings. A connected site can also ask for a switch, which you approve or reject. Switching: - restores the Ethereum RPC and Blockscout URLs you last used on that network, or that network's defaults; - shows the tokens tracked on that network; - reloads every balance and history for the new network; - tells every open site about the new network. On Sepolia, a red `[TESTNET]` banner sits at the top of the wallet, and no USD values are shown. ## Settings Click the gear in the title bar. - Wallets: your wallets. Tap a name to rename it. `[recovery phrase]` shows a phrase wallet's recovery phrase, after your password. `[x]` deletes a wallet. "+ Add wallet" adds one. - Passwords: "Allow weak passwords" lets you choose a password shorter than 12 characters when you add a wallet. - Tracked Tokens: the tokens tracked on the active network, each with `[x]`, and "+ Add token". - Display: - "Show tracked tokens with zero balance"; - "UTC Timestamps": times are shown in UTC, the world reference time, instead of your local time; - the theme: System, Light or Dark. - Network: Ethereum Mainnet or Sepolia Testnet. - Ethereum RPC: the RPC endpoint URL. "Save" checks that the URL answers for the shown network before storing it. - Blockscout API: the "Use Blockscout" checkbox and the Blockscout URL. The API is the address at which a program, here the wallet, asks Blockscout its questions. "Save" checks that the URL answers before storing it. That check sends no data of yours and runs whether or not the checkbox is ticked. - Etherscan: the "Check recipients on Etherscan" checkbox. - Token Spam Protection, the four switches described under Scam protection: - "Hide fake tokens impersonating a known symbol"; - "Hide tokens with fewer than 1,000 holders"; - "Hide transactions from detected fraud contracts"; - "Hide dust transactions below N gwei", with the threshold N as a field. - Allowed Sites, Connected Sites, Denied Sites: see Managing sites. - About: - the project link; - the license and the author; - the version and the release date; - the source code revision (the commit) the build came from. - Debug: hidden until you click the version ten times. It holds the checkbox "Enable debug mode". That checkbox turns on a red banner and more detailed logging in the browser console, the browser's own log for developers. The URLs you save are remembered per network. ## If the wallet cannot read its saved data When AutistMask cannot read what it stored, it shows a screen headed "Saved Data Cannot Be Read" instead of the wallet. Nothing has been changed or erased, and nothing can be signed or sent. Sites that ask the wallet for anything are told that the saved data cannot be read. Click "Export Saved Data" first. The stored data appears in a box on the screen, and the browser offers it as a download when it allows one. Keep that copy. It may hold the encrypted keys of your wallets, and it is the only copy. "Erase Saved Data" deletes every wallet stored in this browser and starts the wallet fresh. You must type `ERASE MY WALLET` first. With a kept recovery phrase, private key or extended private key, you can add a wallet again afterwards. Without that, or the exported copy, everything the wallet holds is gone. ## Frequently asked questions **Can I use AutistMask alongside another wallet?** Yes. AutistMask computes addresses by the rule `m/44'/60'/0'/0`, so the same recovery phrase gives the same addresses as any other wallet using that rule. Two wallet extensions can be installed side by side. Only one of them can hold `window.ethereum`; sites that list wallets can pick AutistMask by name. **Can I use a hardware wallet?** No. AutistMask does not support hardware wallets. **Which networks are supported?** Ethereum Mainnet and the Sepolia Testnet. No others. **Where is my data stored?** In your browser's extension storage. Recovery phrases and keys are encrypted with your password. Addresses, balances and settings are stored unencrypted, so the wallet can show them without a password. Nothing is sent to any server run by AutistMask. **What happens if I uninstall the extension?** The browser deletes the extension's storage. Make sure you have your recovery phrase, private key or extended private key before uninstalling. With that backup you can restore the wallet in AutistMask or in any other wallet that uses the rule `m/44'/60'/0'/0`. **What happens when a transaction times out?** After 60 seconds without a receipt the wallet shows the error screen. A timeout does not mean the transaction failed. It may still be included later; check the hash on Etherscan. A busy network or a low fee can delay a transaction past 60 seconds. ## License GPL-3.0. See [`LICENSE`](../LICENSE). ## Author [@sneak](https://sneak.berlin)