# 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