# Associate and disassociate governance tokens with a Vega key The Governance token on a Vega network is an ERC20 ethereum token. It has two utilities on Vega, - Staking the Proof of stake network, - Participating in Governance. To use the Governance token on a Vega network it first needs to be associated with a Vega key/party. This Vega key can then stake, propose and vote. The word "associate" is used in some user interfaces, as apposed the word "stake" in function names. Stake can be avoided to prevent users thinking they would get a return only after the staking step. On Vega `Staking = Association + Nomination`, as in you need to run the "stake " function on Ethereum but then the nominate step on Vega before you get staking income. See [Glossary](../glossaries/staking-and-governance.md). Associated tokens also count as vote weight in on-Vega governance (new markets etc), A parties vote weight is backed by the number of Governance tokens associated with that Vega key/party. Associating tokens to a Vega key is a little like depositing, except, a deposit can only be released by the Vega network, where as an association can be revoked on ethereum by the the eth key that did the association. Governance tokens may be held by a [Vesting contract](1005-VEST-vesting.md). ## Token discovery When looking to acquire governance tokens, I... - **must** see the contract address for the governance token of the Vega network 1004-ASSO-001 ...so I can participate in governance and staking. ## Associate When looking to stake validators or participate in governance, I first need to associate governance tokens with a Vega wallet/key, I... - **must** [connect an Ethereum wallet/key](0004-EWAL-connect_ethereum_wallet.md) to see tokens it may have in wallet or attributed to it in the vesting contract 1004-ASSO-002 - **must** select a Vega key to associate to 1004-ASSO-003 - **must** be able use a [connected Vega wallet](0002-WCON-connect_vega_wallet.md) as instead of manually inputting a public key 1004-ASSO-004 - **should** be able to populate field with a string, so I can associate to a wallet I without connecting it - if the connected ethereum wallet has vesting tokens: **must** be able to select to associate from either the vesting contract or the wallet (The default should be wallet and the option to use vesting tokens should only appear if there are tokens in a tranche (associated or not)) 1004-ASSO-006 - **must** see the number of associated and un-associated tokens in the selected wallet/vesting contract 1004-ASSO-007 - **must** select the amount of tokens to associate 1004-ASSO-008 - **must** be able to populate the input with the amount of un-associated tokens for the selected wallet/vesting contract 1004-ASSO-009 - **must** be warned if the amount being associated is greater than the amount available in the connected ethereum wallet 1004-ASSO-010 - **must** submit the association on [Ethereum transaction(s) inc ERC20 approval if required](0005-ETXN-submit_ethereum_transaction.md) 1004-ASSO-011 - **must** see feedback whether my association has been registered on Ethereum 1004-ASSO-012 - **must** see feedback that the association has been registered by Vega and that it can be used after the number of Ethereum block confirmations required (typically 50, check network param) 1004-ASSO-013 - **should** be able to see a balance for the number of tokens associated that are ready for use 1004-ASSO-014 - **should** be able to see a balance for the number of tokens for each pending association 1004-ASSO-015 - on completion: **should** be prompted to go on to [nominate](2001-STKE-staking.md) and/or participate in [Governance](1004-GOVE-governance_list.md) - **must** see the balances of tokens available in Ethereum wallet updated (both associated and un-associated) 1004-ASSO-030 - **must** see the balances of tokens available in vesting contract updated (both associated and un-associated) 1004-ASSO-032 ...so I can then use the Vega wallet to use my tokens. ## Disassociate When wanting to remove governance tokens, I... - **must** [connect an Ethereum wallet/key](0004-EWAL-connect_ethereum_wallet.md) to see tokens it may have in wallet or attributed to it in the vesting contract 1004-ASSO-018 - **must** see a list Vega keys that the connected Ethereum wallet has associated too 1004-ASSO-019 - **must** see an amount associated with each key 1004-ASSO-020 - **must** see the full Vega public key associated too 1004-ASSO-021 - **must** see the the origin of the association: wallet or vesting contract 1004-ASSO-022 - **should** be able to select one row (vega key + amount) to populate disassociate form with the key you want to disassociate from and how much 1004-ASSO-023 - If some of the tokens for the given Eth key are held by the vesting contract: **must** select to return tokens to Vesting contract 1004-ASSO-024 - **must** select an amount of tokens to disassociate 1004-ASSO-031 - **must** be able to populate the input with the amount of associated tokens for the selected Vega wallet/contract 1004-ASSO-025 - **should** be warned that disassociating will forfeit and rewards for the current epoch and reduce the Vote weigh on any open proposals - **must** be warned if the inputs on the form will result in an invalid withdraw, before submitting 1004-ASSO-026 - **must** action the disassociation [Ethereum transaction](0005-ETXN-submit_ethereum_transaction.md) 1004-ASSO-027 - **must** see feedback on the progress of the disassociation on ethereum 1004-ASSO-028 - **must** see new associated balances in Vega (theses should be applied instantly, rather than wait for the 50 eth blocks like associate) 1004-ASSO-029 - on completion (if tokens were returned to vesting contract): **could** be prompted to go on to [redeem](1001-VEST-vesting.md). ...so that I can transfer them to another Ethereum wallet (e.g. sell them on an exchange).