# Wallet A Vega wallet is required to prepare and submit transaction on Vega (place, cancel, orders etc). See the [wallet docs](https://docs.vega.xyz/docs/mainnet/concepts/vega-wallet) for more on how "crypto" wallets work. A wallet can contain many public/private key pairs. The public part of each key pair is known the [Party](../protocol/0017-PART-party.md) sometimes just referred to as a key or public key. The primary job(s) of a wallet is to [sign/encrypt transaction](../protocol/0022-AUTH-auth.md) (so the network can be sure they were sent by a given party) and to broadcast these transactions to a node on the network. ## Set up wallet / Restore wallet When opening the wallet for the first time, I... - if the wallet sends telemetry/analytics: **must** be prompted to opt into (or stay out of) analytics (0001-WALL-003) - I can restore a wallet from a seed phrase (0001-WALL-004) - I can create a new wallet (0001-WALL-005) - I can view the back up phrase (0001-WALL-006) - I can see the first key without having to "add key". (i.e. The wallet auto generates the first key from the seed phrase) (0001-WALL-008) ...so I can sign transactions ## Configure network When using the wallet on a network, I... - I can have Mainnet and Fairground (testnet) pre-configured (with Mainnet being the default network) (0001-WALL-009) - I can create a new network configuration (0001-WALL-010) - I can refine the configuration for existing networks (including the ones that come pre-configured) (0001-WALL-011) - I can remove networks (0001-WALL-013) ...so I can broadcast transactions to, and read information from a vega network in my wallet ## Update wallet When using an older version of a Vega wallet than the current official release, I... - I am warned if the version I am using is not compatible with the version of Vega on the selected network, and I am given a link to get latest compatible version on github (0001-WALL-015) ... so the version of the wallet app I am using works with the network I am using ## Log in to a wallet When using a given wallet, I... - I can select a wallet and enter the passphrase only once per "session" (0001-WALL-016) ... so that other users of my machine can not use my wallet, and I am not asked to re-enter frequently ## Connecting to Dapps When a dapp requests use of a wallet, I... - I am prompted to either select a wallet or dismiss the prompt (0001-WALL-017) - I can select whole wallet (so that new keys are automatically shared) (0001-WALL-019) - I can enter wallet passphrase before wallet details are shared (assuming a password has not recently been entered)(0001-WALL-022) - I can retrospectively revoke Dapp's access to a Wallet (0001-WALL-023) ... so that I can control what public keys are shared with a dapp and what dapps can prompt me to sign transactions ## Approving transactions When a dapp sends a transaction to the wallet for signing and broadcast, I... - I am prompted to confirm, reject or ignore the transaction (if auto-confirm is not on) (0001-WALL-024) - I can see the details of the transaction. See [details of transaction](#transaction-detail). (0001-WALL-025) ... so I can verify that the transaction being sent is the one I want ## Transaction log When thinking about a recent or specific transaction, I ... - I can find a single list of all transactions, completed and ongoing, from all keys and wallets, from my current desktop session and network (0001-WALL-034) - I can see transactions that were confirmed by the wallet user (me) (0001-WALL-035) - I can see transactions that were rejected by the wallet user (me) (0001-WALL-036) - If I switch network, transactions list changes to show the transactions for that network (0001-WALL-037) - I can click a transaction in the list to see the transaction details (0001-WALL-038) - I can see empty state when there are no transactions for this session (0001-WALL-039) ... so that I can ensure my wallet is being used appropriately and find transaction I made ## Transaction details when looking at a specific transaction... - I can see details of specific transactions I opened (0001-WALL-041) - I can find my way to the transaction on block explorer (0001-WALL-042) - I can find my way to the complete transaction history for that key on block explorer (0001-WALL-043) - I can see [status of broadcasted transactions](0003-WTXN-submit_vega_transaction.md#track-transaction-on-network) .. so I can find all the information about what has happened with mined and un-mined transactions ## Key management When using a Vega wallet, I... - I can create new keys (derived from the source of wallet) (0001-WALL-052) - I can see full public key or be able to copy it to clipboard (0001-WALL-054) - I can change key name/alias (0001-WALL-055) ... so I can manage risk (e.g. isolate margin), mitigate the damage of a key being compromised, or use multiple trading strategies ## Taint keys When protecting myself from use of keys that may be compromised, I.. - I can select a key I wish to taint (0001-WALL-057) - I am prompted to enter wallet password to taint key (0001-WALL-058) - I can see tainted keys flagged as tainted (0001-WALL-060) ... so that tainted keys must not be used When I have accidentally tainted a key I... - I can select a key to un-taint and be required to enter wallet password (0001-WALL-061) ...so that I must use the key again ## Manually sign a message When wishing to use my wallet to sign arbitrary messages, I... - I can enter content to be signed with key (0001-WALL-062) - I can submit/sign the content (0001-WALL-065) - I can [track progress](0003-WTXN-submit_vega_transaction.md#track-transaction-on-network) of broadcast transaction either by being given a hash that I can use in block explorer, or see the transaction status .. so I can control of the message being signed, and can use the message elsewhere (for example to prove I own a wallet) ## Wallet management When seeking to reduce risk of compromise I... - I can create multiple wallets (0001-WALL-066) - I can switch between wallets (0001-WALL-067) - I can remove a wallet (0001-WALL-068) - I can change wallet name (0001-WALL-069) ... so that I must administrate my wallets