diff --git a/source/mainnet/conf.py b/source/mainnet/conf.py index 1cb49f800a..024b61ec9f 100644 --- a/source/mainnet/conf.py +++ b/source/mainnet/conf.py @@ -307,6 +307,7 @@ # -- Sphinx-reredirects for redirecting old paths to new ones ---------------- redirects = { + "./net/guides/shielded-transfer": "/net/guides/shield-ccd-wallets.html", "./net/desktop-wallet/send-gtu-single-desktop": "/net/guides/send-ccd-wallets.html", "./net/desktop-wallet/send-gtu-single-desktop": "/net/guides/send-ccd-wallets.html", "./net/desktop-wallet/shield-gtu-desktop": "/net/guides/shield-ccd-wallets.html", diff --git a/source/mainnet/net/concepts/concepts-transactions.rst b/source/mainnet/net/concepts/concepts-transactions.rst index c2ea72cb1d..2193be3472 100644 --- a/source/mainnet/net/concepts/concepts-transactions.rst +++ b/source/mainnet/net/concepts/concepts-transactions.rst @@ -18,12 +18,8 @@ You can make transactions using either the Desktop Wallet, the |mw-gen2|, |mw-ge +----------------------------+---------------+----------------+-------------------+---------------+-------------------+ | Send CCD with a schedule | | | | |check| | |check| | +----------------------------+---------------+----------------+-------------------+---------------+-------------------+ -| Shield CCD | |check| | |check| | | |check| | |check| | -+----------------------------+---------------+----------------+-------------------+---------------+-------------------+ | Unshield CCD | |check| | |check| | | |check| | |check| | +----------------------------+---------------+----------------+-------------------+---------------+-------------------+ -| Make shielded transfer | |check| | |check| | | |check| | |check| | -+----------------------------+---------------+----------------+-------------------+---------------+-------------------+ | Add validator | |check| | |check| | |check| | |check| | |check| | +----------------------------+---------------+----------------+-------------------+---------------+-------------------+ | Remove validator | |check| | |check| | |check| | |check| | |check| | @@ -44,8 +40,8 @@ You can make transactions using either the Desktop Wallet, the |mw-gen2|, |mw-ge +----------------------------+---------------+----------------+-------------------+---------------+-------------------+ - |bw|: supports send CCD, receive CCD, connect to dApps, validator management, delegation. -- |mw-gen2|: supports send CCD, receive CCD, shield CCD and unshield CCD, validator management, delegation, connect to dApps, add and manage tokens. -- |mw-gen1|: supports send CCD, receive CCD, shield CCD and unshield CCD, validator management, delegation +- |mw-gen2|: supports send CCD, receive CCD, unshield CCD (:ref:`deprecated`), validator management, delegation, connect to dApps, add and manage tokens. +- |mw-gen1|: supports send CCD, receive CCD, unshield CCD (:ref:`deprecated`), validator management, delegation - Desktop Wallet: supports all transaction types (except smart contract transactions). - Concordium Client: supports all transaction types. diff --git a/source/mainnet/net/desktop-wallet/accounts-desktop.rst b/source/mainnet/net/desktop-wallet/accounts-desktop.rst index 97d2362787..1766a2aee8 100644 --- a/source/mainnet/net/desktop-wallet/accounts-desktop.rst +++ b/source/mainnet/net/desktop-wallet/accounts-desktop.rst @@ -12,9 +12,9 @@ To view information about an account, go to **Accounts** and select the relevant .. image:: ../images/desktop-wallet/dw-wallet-totals.png :alt: area in desktop wallet showing totals -- **Wallet total** shows the total amount of CCDs in all accounts in this wallet, including shielded balances and CCDs that are scheduled to be released to your account on a future date. +- **Wallet total** shows the total amount of CCDs in all accounts in this wallet, including shielded balances (:ref:`deprecated`) and CCDs that are scheduled to be released to your account on a future date. -- **At disposal** shows the amount of CCDs you have available for transactions in all accounts in this wallet. This includes shielded balances but *not* staked amounts or CCDs that are scheduled to be released to your account on a future date. +- **At disposal** shows the amount of CCDs you have available for transactions in all accounts in this wallet. This includes shielded balances (:ref:`deprecated`) but *not* staked amounts or CCDs that are scheduled to be released to your account on a future date. - **Stake** shows the amount of CCDs staked in all accounts for this wallet. @@ -22,8 +22,6 @@ The most common tasks on an account are: - **Send**: Send CCD to a recipient in your address book. See :ref:`Create CCD transfer in the Desktop Wallet `. -- **Shield**: Transfer CCD from your public balance to your shielded balance. See :ref:`Shield CCD on an account `. - - **Receive**: Select this to display the account address. Select the icon to the right to copy the address if you want to share it with other participants in the network or let them scan the QR code. In the account card in the accounts list, you can see the following information: @@ -31,22 +29,22 @@ In the account card in the accounts list, you can see the following information: .. image:: ../images/desktop-wallet/dw-acct-card-in-list.png :alt: example of account card with information, validator icon, ledger icon shown -- The **Account Total** shows the total number of CCDs on the account, which includes the CCDs that are available and any staked CCDs or shielded CCDs. It also includes CCDs that are scheduled to be released to your account on a future date. +- The **Account Total** shows the total number of CCDs on the account, which includes the CCDs that are available and any staked CCDs or shielded CCDs (:ref:`deprecated`). It also includes CCDs that are scheduled to be released to your account on a future date. -- The **Balance Total** shows the total number of CCD on the account, which includes the CCD that is available and any staked CCD or CCDs that are scheduled to be released to your account on a future date. It does *not* include shielded CCDs. +- The **Balance Total** shows the total number of CCD on the account, which includes the CCD that is available and any staked CCD or CCDs that are scheduled to be released to your account on a future date. It does *not* include shielded CCDs (:ref:`deprecated`). - The **At disposal** amount is the amount you can use for transactions, which excludes staked CCD and CCD in a release schedule. - The **Staked** amount shows the amount staked if the account is a validator or delegator. -- **Shielded balance** shows any shielded amounts on the account. +- **Shielded balance** shows any shielded amounts (:ref:`deprecated`) on the account. In addition, you can see the following information about the selected account on the **Balance** tab in the account details: .. image:: ../images/desktop-wallet/dw-balance-details.png :alt: dark screen showing balance details for one account -- The **Balance Total** shows the total number of CCD on the account, which includes the CCD that is available and any staked CCD or CCDs that are scheduled to be released to your account on a future date. It does *not* include shielded CCDs. +- The **Balance Total** shows the total number of CCD on the account, which includes the CCD that is available and any staked CCD or CCDs that are scheduled to be released to your account on a future date. It does *not* include shielded CCDs (:ref:`deprecated`). - The **At disposal** amount is the amount you can use for transactions, which excludes staked CCD and CCD in a release schedule. @@ -54,14 +52,11 @@ In addition, you can see the following information about the selected account on - The **Delegation to...** amount shows the amount delegated to a staking pool or passive delegation. -On the Shielded balance tab, you'll see: - -- The **Shielded balance total** shows the amount of CCD that you've shielded. The **Balance total** is visible to all participants on the Concordium Blockchain, while the **Shielded balance total** is visible to you only. +On the Shielded balance tab (:ref:`deprecated`), you'll see: - .. Note:: - Shielded transfers and Shielded balance is only available on accounts with a single credential. You can't make or receive shielded transfers on multi-signature accounts. +- The **Shielded balance total** (:ref:`deprecated`) shows the amount of CCD that you've shielded (:ref:`deprecated`). The **Balance total** is visible to all participants on the Concordium Blockchain, while the **Shielded balance total** (:ref:`deprecated`) is visible to you only. -The Transactions box contains the 10 latest transactions on the account including transfers to other accounts, shielded transfers, and scheduled transfers. When you select a transfer, you'll see the sender and recipient address, the transaction hash, and the block hash. Both successful and failed transactions are listed. If you have any log filters on the account they are also applied here. +The Transactions box contains the 10 latest transactions on the account including transfers to other accounts, shielded transfers (:ref:`deprecated`), and scheduled transfers. When you select a transfer, you'll see the sender and recipient address, the transaction hash, and the block hash. Both successful and failed transactions are listed. If you have any log filters on the account they are also applied here. More options ============ diff --git a/source/mainnet/net/guides/send-ccd-wallets.rst b/source/mainnet/net/guides/send-ccd-wallets.rst index b631bce344..e8b29543a2 100644 --- a/source/mainnet/net/guides/send-ccd-wallets.rst +++ b/source/mainnet/net/guides/send-ccd-wallets.rst @@ -26,7 +26,7 @@ This topic describes how you can send CCD from an account when only one particip .. image:: ../images/desktop-wallet/dw-send.png - #. In the right pane, enter the amount of CCD that you want to send. If the amount you want to transfer including the transfer fee exceeds the amount in your account, you’ll see a message saying **Insufficient funds**. This means that there's not enough CCD in the account, and you’ll have to change the amount. Enter a **Memo** if you want to send a message to the recipient along with the shielded amount. Note that there's a fee associated with sending a memo and the fee depends on the size of the memo in bytes. Click **Select Recipient**. + #. In the right pane, enter the amount of CCD that you want to send. If the amount you want to transfer including the transfer fee exceeds the amount in your account, you’ll see a message saying **Insufficient funds**. This means that there's not enough CCD in the account, and you’ll have to change the amount. Enter a **Memo** if you want to send a message to the recipient along with the amount. Note that there's a fee associated with sending a memo and the fee depends on the size of the memo in bytes. Click **Select Recipient**. .. image:: ../images/desktop-wallet/dw-send-ccd.png diff --git a/source/mainnet/net/guides/shield-ccd-wallets.rst b/source/mainnet/net/guides/shield-ccd-wallets.rst index 254c9f852a..e32201ccf9 100644 --- a/source/mainnet/net/guides/shield-ccd-wallets.rst +++ b/source/mainnet/net/guides/shield-ccd-wallets.rst @@ -1,28 +1,40 @@ .. include:: ../../variables.rst .. _shield-CCD-wallets: -===================================== -Shield and unshield CCD on an account -===================================== +========================== +Unshield CCD on an account +========================== -Accounts on the Concordium blockchain have two balances, the **Balance** and the :term:`shielded balance`. You can move funds between these +.. _shielded-balance-feature-deprecation: + +.. Warning:: + + Functionalities related to shielding a balance are deprecated in protocol 7 and above. + No additional shielded balance can be added to an account and no transfer of shielded balance is possible. + Only unshielding of an already shielded balance is possible and recommended to be done. + Wallets and command-line tools will continue to display shielded balances and support the + unshielding flow to recover already shielded funds. + +The next few paragraphs contain some old context regarding the old shielding feature before protocol 7. + +Accounts on the Concordium blockchain had two balances, the **Balance** and the :term:`shielded balance`. You were able to move funds between these two balances using either a :term:`shield CCD transaction` or an :term:`unshield CCD transaction`. -When you shield an amount on an account, only the account's credential holder can see the shielded amounts. Other participants in the network will be able to see the shielding transaction, but can't see the shielded balance or any shielded transfers going in or out of the account. You can't make shielded transfers on multi-signature accounts, only on accounts with a single credential. +When you shield an amount on an account, only the account's credential holder can see the shielded amounts. Other participants in the network will be able to see the shielding transaction, but can't see the shielded balance or any shielded transfers going in or out of the account. You weren't able to make shielded transfers on multi-signature accounts, only on accounts with a single credential. If you have an account with CCD in the shielded balance, you can't add new credentials to that account. Furthermore, once a shielded transfer has been logged on an account, you'll no longer be able to add more credentials to that account. This is also the case even if you unshield all CCD in the shielded balance. -.. Warning:: - Do not shield all of your funds or you will not have enough funds to cover transaction fees for unshielding or sending them. +.. Note:: + Do not shield all of your funds or you will not have enough funds to cover transaction fees for unshielding or sending them. .. Note:: - The amount contained in the Balance is publicly visible, while the amount on the Shielded balance is encrypted and is only visible for - the account holder. Moving funds between the balances is also publicly visible, including the amount. Only shielded transfers between - two different accounts have their amounts encrypted. + The amount contained in the Balance is publicly visible, while the amount on the Shielded balance is encrypted and is only visible for + the account holder. Moving funds between the balances is also publicly visible, including the amount. Only shielded transfers between + two different accounts have their amounts encrypted. .. Note:: - All transfers and transactions cost a fee, including shielding and unshielding transactions. The fee is based on the set NRG for that transaction and the current exchange rate. + All transfers and transactions cost a fee, including unshielding transactions. The fee is based on the set NRG for that transaction and the current exchange rate. The cost of transaction fees is stable in Euros, and therefore the price in CCD varies depending on the CCD to EUR exchange rate. The fee will always be deducted from the **Balance** of the account, so it is important to have some available CCDs to cover fees. You can see the fee in the transaction log. @@ -32,131 +44,67 @@ If you have an account with CCD in the shielded balance, you can't add new crede .. dropdown:: Desktop Wallet - .. dropdown:: Shield CCD - - #. Go to **Accounts** and select the relevant account. - - #. Select **Shield**. - - .. image:: ../images/desktop-wallet/dw-shield.png - - #. Enter the amount of CCD that you want to shield. If the amount you want to transfer including the transfer fee exceeds the amount in your account, you’ll see a message saying **Insufficient funds**. This means that there's not enough CCD in the account and you’ll have to change the amount. Also, the amount must be greater than zero. Select **Continue**. - - .. image:: ../images/desktop-wallet/dw-shield-ccd.png - - #. There's a message saying **Waiting for device. Please connect your Ledger**. Connect the LEDGER device to the computer and enter your PIN on LEDGER device. - - #. Press the right button to navigate to the **Concordium** app, and then press both buttons to open the app. The LEDGER device says **Concordium is ready**. Wait for the message in the Desktop Wallet saying **Ledger Nano S is ready** or **Ledger Nano S Plus is ready** and select **Submit**. - - #. Press both buttons on the LEDGER device to confirm the decryption. + #. Select **Shielded Balance** on the relevant account, and then select **Unshield**. - #. Review the transaction on the LEDGER device and verify that the information matches the **Transaction details** in the Desktop Wallet. Navigate to the right and verify the sender address is correct. Continue navigating to the right and verify that the amount and the recipient address are correct. + .. image:: ../images/desktop-wallet/dw-unshield.png - #. Press both buttons to sign the transaction. In the Desktop Wallet, you can see that the transfer has been submitted to the chain. Select **Finish**. When the transaction has been finalized, you can see the shielded balance on the account overview. + #. Enter the amount of CCD that you want to unshield, and then select **Continue**. - .. dropdown:: Unshield CCD + .. image:: ../images/desktop-wallet/dw-unshield-ccd.png - The steps to unshield CCD are similar to the ones to shield CCD. + #. There's a message saying **Waiting for device. Please connect your Ledger**. Connect the LEDGER device to the computer and enter your PIN on LEDGER device. - #. Select **Shielded Balance** on the relevant account, and then select **Unshield**. + #. Press the right button to navigate to the **Concordium** app, and then press both buttons to open the app. The LEDGER device says **Concordium is ready**. Wait for the message in the Desktop Wallet saying **Ledger Nano S is ready** or **Ledger Nano S Plus is ready** and select **Submit**. - .. image:: ../images/desktop-wallet/dw-unshield.png + #. Press both buttons on the LEDGER device to confirm the decryption. - #. Enter the amount of CCD that you want to unshield, and then select **Continue**. + #. Review the transaction on the LEDGER device and verify that the information matches the **Transaction details** in the Desktop Wallet. Navigate to the right and verify the sender address is correct. Continue navigating to the right and verify that the amount and the recipient address are correct. - .. image:: ../images/desktop-wallet/dw-unshield-ccd.png + #. Press both buttons to sign the transaction. In the Desktop Wallet, you can see that the transfer has been submitted to the chain. Select **Finish**. When the transaction has been finalized, you can see the shielded balance on the account overview. - #. There's a message saying **Waiting for device. Please connect your Ledger**. Connect the LEDGER device to the computer and enter your PIN on LEDGER device. - - #. Press the right button to navigate to the **Concordium** app, and then press both buttons to open the app. The LEDGER device says **Concordium is ready**. Wait for the message in the Desktop Wallet saying **Ledger Nano S is ready** or **Ledger Nano S Plus is ready** and select **Submit**. - - #. Press both buttons on the LEDGER device to confirm the decryption. - - #. Review the transaction on the LEDGER device and verify that the information matches the **Transaction details** in the Desktop Wallet. Navigate to the right and verify the sender address is correct. Continue navigating to the right and verify that the amount and the recipient address are correct. - - #. Press both buttons to sign the transaction. In the Desktop Wallet, you can see that the transfer has been submitted to the chain. Select **Finish**. When the transaction has been finalized, you can see the shielded balance on the account overview. - - When the transaction has been finalized, you can see that the shielded balance has changed, and you can see the the amount you unshielded in the **Transfers** list. + When the transaction has been finalized, you can see that the shielded balance has changed, and you can see the the amount you unshielded in the **Transfers** list. .. dropdown:: |mw-gen2| - .. dropdown:: Shield CCD - - #. Go to the **Accounts** page. - - #. Tap the **Balance** area of the account you want to transfer CCD from or tap |more-acct|. - - - If the **Shield** button and **Shielded balanace** tab are not visible, tap |acct-settings| then select **Show shielded balance**. - - #. Now the totals area contains tabs for both **Balance** and **Shielded Balance** and, **Shield** |shield-mw| and **Unshield** |unshield-mw| buttons. - - .. image:: ../images/mobile-wallet-gen2/shield.png - :width: 50% - - #. Tap |shield-mw|. Remember to leave enough funds in your disposable balance to cover transaction fees to unshield or for other transactions. - - #. Enter the amount you want to move to the shielded balance. - - .. image:: ../images/mobile-wallet/MW33.png - :width: 25% - - #. Confirm your choices and tap **Shield amount**. + #. Go to the **Accounts** page. - .. image:: ../images/mobile-wallet/MW35.png - :width: 25% + #. Tap the account you want to unshield CCD on or tap |more-acct| on the account card. - #. Your shielding transaction has now been submitted to the blockchain. Tap **Finish**. + #. If the Shielded balance is already shown, tap the Shielded balance tab. - .. image:: ../images/mobile-wallet/MW76.png - :width: 25% + - If the **Unshield** button and **Shielded balance** tab are not visible, tap |acct-settings| then select **Show shielded balance**. - The transaction might take a little while to finalize on the blockchain, and you can follow the status in the transaction log. - Once it has been finalized, you can browse to your shielded balance to see the newly shielded amount. + #. Now the totals area contains tabs for both **Balance** and **Shielded Balance** and an **Unhield** button. - .. Note:: + #. Tap |unshield-mw|. - You can hide the shielded balance when finished to prevent accidental shielding. In the Account transaction overview tap |acct-settings| and tap **Hide shielded balance**. This removes the shielded balance tab and the Shield button from the accounts view. Note that the shielded balance still exists on the account; it is just not shown in the interface. + #. Enter the amount you want to move to the regular balance. - .. dropdown:: Unshield CCD + .. image:: ../images/mobile-wallet/MW48.png + :width: 25% - #. Go to the **Accounts** page. + #. Tap **Unshield amount**. - #. Tap the account you want to unshield CCD on or tap |more-acct| on the account card. + .. image:: ../images/mobile-wallet/MW49.png + :width: 25% - #. If the Shielded balance is already shown, tap the Shielded balance tab. + #. Confirm your choices and tap **Unshield amount**. - - If the **Unshield** button and **Shielded balance** tab are not visible, tap |acct-settings| then select **Show shielded balance**. + .. image:: ../images/mobile-wallet/MW50.png + :width: 25% - #. Now the totals area contains tabs for both **Balance** and **Shielded Balance** and an **Unhield** button. + #. Your shielding transaction has now been submitted to the blockchain. Tap **Finish**. - #. Tap |unshield-mw|. + .. image:: ../images/mobile-wallet/MW51.png + :width: 25% - #. Enter the amount you want to move to the regular balance. + The transaction might take a little while to finalize on the blockchain, and you can follow the status in the transaction log. - .. image:: ../images/mobile-wallet/MW48.png - :width: 25% + .. Note:: - #. Tap **Unshield amount**. - - .. image:: ../images/mobile-wallet/MW49.png - :width: 25% - - #. Confirm your choices and tap **Unshield amount**. - - .. image:: ../images/mobile-wallet/MW50.png - :width: 25% - - #. Your shielding transaction has now been submitted to the blockchain. Tap **Finish**. - - .. image:: ../images/mobile-wallet/MW51.png - :width: 25% - - The transaction might take a little while to finalize on the blockchain, and you can follow the status in the transaction log. - Once it has been finalized, you can browse to your shielded balance to see the newly shielded amount. - - .. Note:: - - You can hide the shielded balance when finished to prevent accidental shielding. In the Account transaction overview tap |acct-settings| and tap **Hide shielded balance**. This removes the shielded balance tab and the Shield button from the accounts view. Note that the shielded balance still exists on the account; it is just not shown in the interface. + You can hide the shielded balance. In the Account transaction overview tap |acct-settings| and tap + **Hide shielded balance**. This removes the shielded balance tab. Note that the shielded balance still + exists on the account; it is just not shown in the interface. .. |more-acct| image:: ../images/more-acct.png :alt: Button with double-headed arrow @@ -169,94 +117,51 @@ If you have an account with CCD in the shielded balance, you can't add new crede .. |unshield-mw| image:: ../images/unshield-mw.png :alt: dissolving shield on blue background :width: 50px - .. |shield-mw| image:: ../images/shield-mw.png - :alt: shield on blue background - :width: 50px .. dropdown:: |mw-gen1| - .. dropdown:: Shield CCD - - #. Go to the **Accounts** page. - - #. Tap the **Balance** area of the account you want to shield CCD from or tap |moredetails|. - - - If the **Shield** button and **Shielded balanace** tab are not visible, tap the |hamburger| menu in the upper right corner. Tap **Show shielded balance on account name**. - - #. Now the totals area contains tabs for both **Balance** and **Shielded Balance** and a **Shield** button. - - .. image:: ../images/mobile-wallet/MW77.png - :width: 25% - - #. Tap **Shield**. Remember to leave enough funds in your disposable balance to cover transaction fees to unshield or for other transactions. + #. Go to the **Accounts** page. - #. Enter the amount you want to move to the shielded balance. + #. Tap the account you want to unshield CCD on or tap |moredetails| on the account card. - .. image:: ../images/mobile-wallet/MW33.png - :width: 25% + #. If the Shielded balance is already shown, tap the Shielded balance tab. - #. Confirm your choices and tap **Shield amount**. + - If the **Unshield** button and **Shielded balance** tab are not visible, tap the |hamburger| menu in the upper right corner. Tap **Show shielded balance on account name**. - .. image:: ../images/mobile-wallet/MW35.png - :width: 25% + #. Now the totals area contains tabs for both **Balance** and **Shielded Balance** and an **Unhield** button. - #. Your shielding transaction has now been submitted to the blockchain. Tap **Finish**. + #. Tap **UNSHIELD**. - .. image:: ../images/mobile-wallet/MW76.png - :width: 25% + .. image:: ../images/mobile-wallet/MW47.png + :width: 25% - The transaction might take a little while to finalize on the blockchain, and you can follow the status in the transaction log. - Once it has been finalized, you can browse to your shielded balance to see the newly shielded amount. + #. Enter the amount you want to move to the regular balance. - .. Note:: + .. image:: ../images/mobile-wallet/MW48.png + :width: 25% - You can hide the shielded balance when finished to prevent accidental shielding. In the Account transaction overview tap the |hamburger| menu and tap **Hide shielded balance for account name**. This removes the shielded balance tab and the Shield button from the accounts view. Note that the shielded balance still exists on the account, it is just not shown in the interface. + #. Tap **Unshield amount**. - .. dropdown:: Unshield CCD + .. image:: ../images/mobile-wallet/MW49.png + :width: 25% - #. Go to the **Accounts** page. + #. Confirm your choices and tap **Unshield amount**. - #. Tap the account you want to unshield CCD on or tap |moredetails| on the account card. + .. image:: ../images/mobile-wallet/MW50.png + :width: 25% - #. If the Shielded balance is already shown, tap the Shielded balance tab. + #. Your shielding transaction has now been submitted to the blockchain. Tap **Finish**. - - If the **Unshield** button and **Shielded balance** tab are not visible, tap the |hamburger| menu in the upper right corner. Tap **Show shielded balance on account name**. + .. image:: ../images/mobile-wallet/MW51.png + :width: 25% - #. Now the totals area contains tabs for both **Balance** and **Shielded Balance** and an **Unhield** button. + The transaction might take a little while to finalize on the blockchain, and you can follow the status in the transaction log. - #. Tap **UNSHIELD**. + .. Note:: - .. image:: ../images/mobile-wallet/MW47.png - :width: 25% - - #. Enter the amount you want to move to the regular balance. - - .. image:: ../images/mobile-wallet/MW48.png - :width: 25% - - #. Tap **Unshield amount**. - - .. image:: ../images/mobile-wallet/MW49.png - :width: 25% - - #. Confirm your choices and tap **Unshield amount**. - - .. image:: ../images/mobile-wallet/MW50.png - :width: 25% - - #. Your shielding transaction has now been submitted to the blockchain. Tap **Finish**. - - .. image:: ../images/mobile-wallet/MW51.png - :width: 25% - - The transaction might take a little while to finalize on the blockchain, and you can follow the status in the transaction log. - Once it has been finalized, you can browse to your shielded balance to see the newly shielded amount. - - .. Note:: - - You can hide the shielded balance when finished to prevent accidental shielding. In the Account transaction overview tap the |hamburger| menu and tap **Hide shielded balance for account name**. This removes the shielded balance tab and the Shield button from the accounts view. Note that the shielded balance still exists on the account, it is just not shown in the interface. - -For information about making shielded transfers, see :ref:`Make a shielded transfer on an account`. + You can hide the shielded balance. In the Account transaction overview tap the |hamburger| menu and + tap **Hide shielded balance for account name**. This removes the shielded balance tab view. + Note that the shielded balance still exists on the account, it is just not shown in the interface. .. |hamburger| image:: ../images/hamburger.png :alt: Three horizontal lines @@ -265,9 +170,3 @@ For information about making shielded transfers, see :ref:`Make a shielded trans .. |moredetails| image:: ../images/more-arrow.png :alt: Button with More and double-headed arrow :width: 50px - -.. toctree:: - :hidden: - :maxdepth: 1 - - shielded-transfer diff --git a/source/mainnet/net/guides/shielded-transfer.rst b/source/mainnet/net/guides/shielded-transfer.rst deleted file mode 100644 index 4153110984..0000000000 --- a/source/mainnet/net/guides/shielded-transfer.rst +++ /dev/null @@ -1,197 +0,0 @@ -.. include:: ../../variables.rst -.. _shielded-transfer: - -====================================== -Make a shielded transfer on an account -====================================== - -A shielded transfer is a transfer between two accounts where the **amount** of the transfer is encrypted. When you make a shielded transfer, the amount you transfer is only known to you and the recipient. However, the sender, receiver, and potential memo will be publicly visible on the blockchain. - -Prerequisites -============= - -- You must have a shielded amount of CCD on the account you want to make the shielded transfer from. See :ref:`Shield CCD on an account `. - -.. Warning:: - - Exchanges do not support shielded transfers. Attempting to do a shielded transfer to an exchange may cause missing or inaccessible funds on the exchange wallet. - -.. Note:: - You can't make shielded transfers on multi-signature accounts in the Desktop Wallet. - -.. Note:: - - All transfers and transactions cost a fee, including shielding and unshielding transactions. The fee is based on the set NRG for that transaction and the current exchange rate. - The cost of transaction fees is stable in Euros, and therefore the price in CCD varies depending on the CCD to EUR exchange rate. The fee will always be deducted from the **Balance** of the account, so it is important to have some available CCDs to cover fees. - You can see the fee in the transaction log. - -.. Warning:: - - Do not shield or transfer all of your funds or you will not have enough funds to cover transaction fees for unshielding or sending them. - -.. Note:: - On Testnet you can request CCDs for testing purposes. Use the button in either Desktop Wallet, |mw-gen2|, or |mw-gen1| to request 2000 CCDs. - -.. dropdown:: Desktop Wallet - - .. dropdown:: Send a shielded amount of CCD - - #. Go to **Accounts** and select the account you want to make the transfer from. - - #. Select **Shielded balance** on the account and select **Send**. - - .. image:: ../images/desktop-wallet/dw-shielded-xfer.png - - #. In **Send shielded funds**, enter the amount of CCD that you want to send. Enter a **Memo** if you want to send a message to the recipient along with the shielded amount. Note that there's a fee associated with sending a memo and the fee depends on the size of the memo in bytes. - - .. image:: ../images/desktop-wallet/dw-send-shielded.png - - .. Warning:: - - Transaction memos are public and visible on the blockchain, and they are permanent and can't be deleted. Therefore, carefully review all information before you submit the memo to the blockchain. - - 4. Select the recipient of the CCD, and then select **Continue**. - - 5. In the Desktop Wallet there’s a message saying **Waiting for device. Please connect your Ledger**. Connect the LEDGER device to your computer, and then enter your PIN code on the LEDGER device. - - 6. On the LEDGER device, there's a message saying Concordium. Press both buttons. The LEDGER device says **Concordium is ready**, and in the Desktop Wallet, there's a message saying **Ledger Nano S is ready** or **Ledger Nano S Plus is ready**. - - 7. In the Desktop Wallet, select **Submit**. There’s a message saying **Waiting for the user to finish the process on the device**. - - 8. Press both buttons on the LEDGER device to confirm the decryption. - - 9. On the LEDGER device there's a message saying **Concordium is ready**, and then it says **Review transaction**. Using the right button, you now have to navigate through the following information to verify that it's correct and matches the transaction details in the Desktop Wallet: - - - **Shielded transfer**: this is the type of transaction. Because the amount is encrypted, the LEDGER device can't display the actual amount that's going to be transferred. - - - **Sender**: this is the sender account. - - - **Recipient**: this is the recipient account. - - - **Memo**: the memo message, if applicable. - - 10. On the LEDGER device there's a message saying **Sign transaction**. Press both buttons to sign the transaction. - - 11. In the Desktop Wallet there’s a message saying **Shielded transfer submitted**, which means that the transfer has been submitted to the chain. Click **Finish**. The transfer is listed in the **Transfers** list. - - .. dropdown:: Decrypt a shielded amount of CCD - - If you have received a shielded transfer, a shield icon is displayed next to the shielded balance |shielded-xfer|. Before you can see the amount that you've received, you have to decrypt the shielded transaction. - - Any shielded transfers that you've already decrypted are visible in the shielded balance. - - #. Select the relevant account, and then select **Shielded balance**. - - #. The Desktop Wallet says **Decrypt shielded balance**. Click **Decrypt**. - - .. image:: ../images/desktop-wallet/dw-decrypt-shielded.png - - #. The Desktop Wallet says **Waiting for device. Please connect your Ledger**. Connect the LEDGER device to your computer, and then enter your PIN code on the LEDGER device. - - #. On the LEDGER device, there's a message saying **Concordium is ready**, and in the Desktop Wallet, there's a message saying **Ledger Nano S is ready** or **Ledger Nano S Plus is ready**. - - #. In the Desktop Wallet, select **Decrypt**. - - #. On the LEDGER device, press both buttons to decrypt the amount. In the Desktop Wallet you can now see the amount that you decrypted. - - .. |shielded-xfer| image:: ../images/desktop-wallet/dw-shielded-xfer-received.png - :alt: Balance with a shield that has a lock on it - -.. dropdown:: |mw-gen2| - - **Send a shielded amount of CCD** - - #. Go to the Accounts page. - - #. Tap the Account you want to transfer CCD from or tap |more-acct| for the account. - - - If the shielded balance is hidden for the account, tap |acct-settings| and select **Show shielded balance**. - - #. Tap the **Shielded balance** tab of the totals area. - - #. Tap |send-shielded|. - - #. Enter the amount you want to transfer. - - #. In **Paste recipient address**, enter the recipient address for the recipient of the transfer. - - - You can also choose a recipient that already exists in your **Address Book**, or add a new one by tapping **Scan QR**. - - #. Tap **Send Amount**. - - .. image:: ../images/mobile-wallet/MW42.png - :width: 25% - - #. *Optional*: You can add a memo to your transaction. A memo is a short message that will be shown with the transaction. Memos are publicly visible on the chain, so be careful what you write. Adding a memo will also add to the fee of the transaction. - - #. Finally, tap **Send shielded amount**. - - .. image:: ../images/mobile-wallet/MW43.png - :width: 25% - - #. The transaction is subbmitted; tap **Ok, thanks**. - - .. image:: ../images/mobile-wallet/MW44.png - :width: 25% - - .. |more-acct| image:: ../images/more-acct.png - :alt: Button with double-headed arrow - :width: 50px - - .. |acct-settings| image:: ../images/acct-settings.png - :alt: gear wheel on blue background - :width: 50px - - .. |send-shielded| image:: ../images/send-shielded.png - :alt: shield with paper airplane on blue background - :width: 50px - -.. dropdown:: |mw-gen1| - - **Send a shielded amount of CCD** - - #. Go to the Accounts page. - - #. Tap the Account you want to transfer CCD from or tap |moredetails| for the account. - - - If the shielded balance is hidden for the account, go to the |hamburger| menu in the upper right corner and tap **Show shielded balance for your account name**. - - #. Tap the **Shielded balance** tab of the totals area. - - #. Tap **SEND**. - - .. image:: ../images/mobile-wallet/MW37.png - :width: 25% - - #. Enter the amount you want to transfer. - - #. In **Paste recipient address**, enter the recipient address for the recipient of the transfer. - - - You can also choose a recipient that already exists in your **Address Book**, or add a new one by tapping **Scan QR**. - - #. Tap **Send Amount**. - - .. image:: ../images/mobile-wallet/MW42.png - :width: 25% - - #. *Optional*: You can add a memo to your transaction. A memo is a short message that will be shown with the transaction. Memos are publicly visible on the chain, so be careful what you write. Adding a memo will also add to the fee of the transaction. - - #. Finally, tap **Send shielded amount**. - - .. image:: ../images/mobile-wallet/MW43.png - :width: 25% - - #. The transaction is subbmitted; tap **Ok, thanks**. - - .. image:: ../images/mobile-wallet/MW44.png - :width: 25% - - .. |hamburger| image:: ../images/hamburger.png - :alt: Three horizontal lines - :width: 20px - - .. |moredetails| image:: ../images/more-arrow.png - :alt: Button with More and double-headed arrow - :width: 50px - -Your transaction is now submitted to the chain. It might take a little while for it to finalize on the chain, and you can follow the status of the transaction in the log. diff --git a/source/mainnet/net/mobile-wallet-gen2/setup-mobile-wallet.rst b/source/mainnet/net/mobile-wallet-gen2/setup-mobile-wallet.rst index e163f9f9ea..2af0ca6038 100644 --- a/source/mainnet/net/mobile-wallet-gen2/setup-mobile-wallet.rst +++ b/source/mainnet/net/mobile-wallet-gen2/setup-mobile-wallet.rst @@ -6,8 +6,7 @@ Set up the |mw-gen2| ======================== The |mw-gen2| is a digital :term:`wallet` that enables you to create and manage your Concordium -:term:`identities` and :term:`accounts` and to create transactions such as sending CCD, :term:`shielding` and :term:`unshielding` CCD, -and sending :term:`shielded transactions`. +:term:`identities` and :term:`accounts` and to create transactions such as sending CCD, and :term:`unshielding` CCD (:ref:`deprecated`). To learn more about identities and accounts, see :ref:`identities` and :ref:`accounts`. @@ -138,7 +137,7 @@ When you tap on an account, you see the details for the specific account, includ - Scan QR code: scan QR code of a dApp - Account settings: perform some less often used actions on an account - Transfer filters: configure filters to show or hide rewards - - Show shielded balance: Show the shielded balance tab on the account and the shielding action buttons + - Show shielded balance: Show the shielded balance tab on the account (:ref:`deprecated`) - Release schedule: :ref:`inspect a release schedule` - Change account name: :ref:`customize account names` - Export private key: :ref:`export your private key` for testing smart contracts, for example diff --git a/source/mainnet/net/mobile-wallet/setup-mobile-wallet.rst b/source/mainnet/net/mobile-wallet/setup-mobile-wallet.rst index 8627eebcbe..ab28c0e47e 100644 --- a/source/mainnet/net/mobile-wallet/setup-mobile-wallet.rst +++ b/source/mainnet/net/mobile-wallet/setup-mobile-wallet.rst @@ -9,8 +9,7 @@ Set up the |mw-gen1| ======================== The |mw-gen1| is a digital :term:`wallet` that enables you to create and manage your Concordium -:term:`identities` and :term:`accounts` and to create transactions such as sending CCD, :term:`shielding` and :term:`unshielding` CCD, -and sending :term:`shielded transactions`. +:term:`identities` and :term:`accounts` and to create transactions such as sending CCD. To learn more about identities and accounts, see :ref:`identities` and :ref:`accounts`. diff --git a/source/mainnet/net/references/concordium-client.rst b/source/mainnet/net/references/concordium-client.rst index 51da972832..f99dbd79dd 100644 --- a/source/mainnet/net/references/concordium-client.rst +++ b/source/mainnet/net/references/concordium-client.rst @@ -119,7 +119,7 @@ Each account has * for each credential holder of the account, one or more (up to 256) key-pairs for signing transactions. They are identified by the key index, which is an integer starting at 0. -* decryption key-pair used for decrypting the shielded balance of the +* decryption key-pair used for decrypting the shielded balance (:ref:`deprecated`) of the account. For all those keys, the private part of the key-pair is encrypted in the local @@ -160,7 +160,7 @@ Display contents Display the full contents of the persistent configuration. This will display the stored keys that are used for signing transactions (under the ``Account Keys`` -section) and the stored key for sending shielded transfers (under the +section) and the stored key for decrypting its shielded balance (:ref:`deprecated`) (under the ``Encryption secret key`` section) when they are present. Example: diff --git a/source/mainnet/net/references/manage-accounts.rst b/source/mainnet/net/references/manage-accounts.rst index d707488ae0..0bbf2e3ace 100644 --- a/source/mainnet/net/references/manage-accounts.rst +++ b/source/mainnet/net/references/manage-accounts.rst @@ -13,13 +13,12 @@ You must have a verified identity and a user identity certificate issued by an a About accounts ============== -An account on the Concordium blockchain is owned by one or more :term:`credential holders` and consists of two parts: The :term:`on-chain` part, which is publicly visible and maintained by the bakers, and the :term:`off-chain` part. +An account on the Concordium blockchain is owned by one or more :term:`credential holders` and consists of two parts: The :term:`on-chain` part, which is publicly visible and maintained by the validators, and the :term:`off-chain` part. The on-chain part of the account consists of: - the :term:`credentials` of the credential holders associated with the account - public balance -- :term:`shielded balance` - account sequence number - public keys of each credential to verify transaction signatures. @@ -29,7 +28,6 @@ The off-chain part of the account contains: account (e.g., sending transfers, deploying smart contracts) - the identity an account is created from (this is needed for managing the account on the chain) -- decryption keys used for :term:`shielded transfers`. Concordium provides several ways of interacting with the on-chain account. Off-chain parts of accounts can be transferred between different devices but not between |mw-gen1| and Desktop Wallet, or |mw-gen2| and Desktop Wallet. The same account can be used from multiple devices at the same time. @@ -120,13 +118,9 @@ Account concepts Account balances ---------------- -Each account has two balances, the *public balance* which can be *seen* by anyone, and a :term:`shielded -balance`. The shielded balance is only known to the owner of the account. It -can only be used in :term:`shielded transfers` to -other accounts. - -The public balance of the account is always used for payment of transaction fees, -producing blocks, and transfers, even for shielded transfers. +An account has a *public balance* which can be *seen* by anyone. +The public balance of the account is used for payment of transaction fees, +producing blocks, and transfers. At any given time some of the public balance might be unavailable for use. This can happen in two ways: @@ -194,7 +188,7 @@ The Desktop Wallet is a digital wallet that enables you to create and manage you The |mw-gen1| ----------------- -The |mw-gen1| is a digital smartphone wallet that enables you to create and manage your Concordium identities and accounts, to create simple and shielded transactions, produce blocks (validation) and delegate, and to export and import your accounts and identities. +The |mw-gen1| is a digital smartphone wallet that enables you to create and manage your Concordium identities and accounts, to create simple transactions, produce blocks (validation) and delegate, and to export and import your accounts and identities. .. Note:: @@ -203,7 +197,7 @@ The |mw-gen1| is a digital smartphone wallet that enables you to create and mana The |mw-gen2| ------------------ -The |mw-gen2| is a second generation digital smartphone wallet that enables you to create and manage your Concordium identities and accounts, to create simple and shielded transactions, produce blocks (validation) and delegate, and to export and import your accounts and identities. +The |mw-gen2| is a second generation digital smartphone wallet that enables you to create and manage your Concordium identities and accounts, to create simple transactions, produce blocks (validation) and delegate, and to export and import your accounts and identities. The |bw| ---------------- diff --git a/source/mainnet/net/references/query-node.rst b/source/mainnet/net/references/query-node.rst index 505d3bb9a3..1670306dda 100644 --- a/source/mainnet/net/references/query-node.rst +++ b/source/mainnet/net/references/query-node.rst @@ -56,14 +56,14 @@ Inspect specific account Display all publicly available information of a specific account as of a specific block. For accounts for which secret keys are available this command -can also decrypt the shielded balance. +can also decrypt the shielded balance (:ref:`deprecated`). - ``ACCOUNT``: Address or local name of the account (if not provided, will show the account with the local alias ``"default"``). - ``BLOCK``: Full hash of target block. Defaults to the current :term:`best block`. -- ``--shielded``: Show the :term:`shielded balance` (explained below). +- ``--shielded``: Show the :term:`shielded balance` (:ref:`deprecated`). - ``--reveal-shielded``: Show the shielded balance and reveal it - (explained below). + (:ref:`deprecated`). Example ~~~~~~~ @@ -91,9 +91,9 @@ The output shows that the account with the local name ``my-account`` - has address ``2zgcMk7heVZKaaBfPtxVqmvE3GnrrP7N2nFGHoiC6X9nZT9TaG``, - has a balance of 1026 CCD, - has :term:`transaction sequence number` ``1``, -- has ``a820662531d...`` as the key for receiving shielded transfers. -- has no :term:`incoming shielded amount`. -- has a :term:`self balance` of ``a9d35bf62442aabad72c...``. By default this +- has ``a820662531d...`` as the key for receiving shielded transfers (:ref:`deprecated`). +- has no :term:`incoming shielded amount` (:ref:`deprecated`). +- has a :term:`self balance` of ``a9d35bf62442aabad72c...`` (:ref:`deprecated`). By default this only shows the first 20 characters of the encrypted amount. With a ``--verbose`` flag the full encryption is shown. @@ -106,6 +106,14 @@ succeed, the private decryption key of the account must be available in the ``concordium-client`` configuration. The user is asked for the password for accessing the decryption key. +.. note:: + + Functionalities related to shielding a balance are deprecated in protocol 7 and above. + No additional shielded balance can be added to an account and no transfer of shielded balance is possible. + Only unshielding of an already shielded balance is possible and recommended to be done. + Wallets and command-line tools will continue to display shielded balances and support the + unshielding flow to recover already shielded funds. + Transaction status ================== diff --git a/source/mainnet/net/references/transactions.rst b/source/mainnet/net/references/transactions.rst index 8af7fb397e..c1a2f5c74a 100644 --- a/source/mainnet/net/references/transactions.rst +++ b/source/mainnet/net/references/transactions.rst @@ -23,8 +23,6 @@ Transaction commands +=====================================+================================================+ | ``transaction send`` | Transfer CCD tokens | +-------------------------------------+------------------------------------------------+ -| ``transaction send-shielded`` | Transfer CCD tokens between shielded balances | -+-------------------------------------+------------------------------------------------+ | ``transaction send-scheduled`` | Make a transfer that will be released | | | gradually | +-------------------------------------+------------------------------------------------+ @@ -46,9 +44,6 @@ Transaction commands | ``account update-keys`` | Update credentials keys for a specific | | | credential | +-------------------------------------+------------------------------------------------+ -| ``account shield`` | Transfer part of the public balance to the | -| | shielded balance | -+-------------------------------------+------------------------------------------------+ | ``account unshield`` | Transfer part of the shielded balance to the | | | public balance | +-------------------------------------+------------------------------------------------+ @@ -183,7 +178,7 @@ To show the identity disclosure authorities, enter: Commands for transferring CCD ============================= -The commands for transferring CCD (both plain transfers and shielded transfers) +The commands for transferring CCD are described in the following table. The add, remove, and configure bakers commands are described in the topic :ref:`becoming a baker using the Concordium Client`. @@ -250,110 +245,17 @@ sender account A has three transaction signing keys 0, 1, and 3. [13:05:27] Waiting for the transaction to be finalized... [13:05:27] Transaction finalized. -Make a shielded transfer ------------------------- - -A :term:`shielded transfer` is a transfer from a :term:`shielded balance` to a shielded -balance of another account. The command is very similar to a standard transfer. - -.. code-block:: console - - $concordium-client transaction send-shielded --sender A --receiver B --amount 8 - -This command does the following: - -- queries the chain for the shielded balance of account A from the - Concordium network. -- decrypts it. -- queries the encryption key of account B from the Concordium network -- sends the transaction. - -The interaction looks like the following: - -.. code-block:: console - - $concordium-client transaction send-shielded --sender A --receiver B --amount 8 - Using default energy amount of 30176 NRG. - Enter password for decrypting the secret encryption key: ... - Transferring 8.000000 CCD from shielded balance of account '4s9jugBpiZuDKNJu9PGAj57JseAze8fGaGJC2y3HmtCbBeTLAJ' (A) to '47JNHkJZo9ShomDypbiSJzdGN7FNxo8MwtUFsPa49KGvejf7Wh' (B). - Allowing up to 30176 NRG to be spent as transaction fee. - Transaction expires at Sun, 4 Oct 2020 11:28:47 UTC. - Confirm [yN]: y - Enter password for signing key with index 0: ... - Enter password for signing key with index 1: ... - Enter password for signing key with index 3: ... - Transaction 'af220cdeb5c092847de25e4681515d7d318a98223fc4d1dc9c65bda9f2060b19' sent to the baker. - Waiting for the transaction to be committed and finalized. - You may skip this step by interrupting the command using Ctrl-C (pass flag '--no-wait' to do this by default). - The transaction will still get processed and may be queried using - 'transaction status af220cdeb5c092847de25e4681515d7d318a98223fc4d1dc9c65bda9f2060b19'. - [13:20:24] Waiting for the transaction to be committed.............. - Transaction is finalized into block 552c32da51ca67a6579c1c151ee67440ade5a44f9ca69e13a4a042e7fcc1ee4c with status "success" and cost 3.012300 CCD (30123 NRG). - [13:20:46] Waiting for the transaction to be finalized... - [13:20:46] Transaction finalized. - -This command has all of the additional options of ``send``, as well as an -additional flag ``--index.`` If given, this flag is used to select which -:term:`incoming shielded amounts` that will be used as input to the transaction. - -This is illustrated with the following example. :ref:`Querying an account` can display the -list of incoming amounts on account. An output could look like this: - -.. code-block:: console - - ... - Encrypted balance: - Incoming amounts: - 7: 8c0faff6739bffc531c5... - 8: a7620250f8b4307565a8... - 9: a67a39e44765e90987c4... - Self balance: c0000000000000000000... - ... - -If you want to ``send-shielded`` from the account while supplying index 8, -only the shielded amount ``8c0faff6739bffc531c5...`` and the :term:`self balance` -will be used as input of the shielded transfer. - -If the supplied index is out of range ``concordium-client`` will refuse to send -the transaction. - -Shield an amount ----------------- - -The command to :term:`shield` an amount with ``concordium-client`` is ``account -shield``. For example, an interaction to shield 10 CCD on account A looks like the following. - -The command is: - -.. code-block:: console - - $concordium-client account shield --amount 10 --sender A - -The command supports all of the same additional flags as the transfer transaction, except the ``--receiver`` since a transfer from a public to a shielded balance is always on the same account. The output looks like the following: - -.. code-block:: console - - Using default energy amount of 265 NRG. - Transferring 10.000000 CCD from public to shielded balance of account '4s9jugBpiZuDKNJu9PGAj57JseAze8fGaGJC2y3HmtCbBeTLAJ' (A). - Allowing up to 265 NRG to be spent as transaction fee. - Transaction expires at Sun, 4 Oct 2020 11:25:02 UTC. - Confirm [yN]: y - Enter password for signing key with index 0: ... - Enter password for signing key with index 1: ... - Enter password for signing key with index 3: ... - Transaction '9a74be8f99e26dfa0c269725205fb63d447c357ea61b8e6e4df8230059ba22f5' sent to the baker. - Waiting for the transaction to be committed and finalized. - You may skip this step by interrupting the command using Ctrl-C (pass flag '--no-wait' to do this by default). - The transaction will still get processed and may be queried using - 'transaction status 9a74be8f99e26dfa0c269725205fb63d447c357ea61b8e6e4df8230059ba22f5'. - [13:15:10] Waiting for the transaction to be committed..... - Transaction is finalized into block c12e7772190d1361dc7d59a1cc873906436742e726d12213cb599eb48b97bd2c with status "success" and cost 0.021200 CCD (212 NRG). - [13:15:14] Waiting for the transaction to be finalized... - [13:15:14] Transaction finalized. - Unshield an amount ------------------ +.. note:: + + Functionalities related to shielding a balance are deprecated in protocol 7 and above. + No additional shielded balance can be added to an account and no transfer of shielded balance is possible. + Only unshielding of an already shielded balance is possible and recommended to be done. + Wallets and command-line tools will continue to display shielded balances and support the + unshielding flow to recover already shielded funds. + The command to unshield an amount with ``concordium-client`` is ``account unshield``. For example, an interaction to unshield 7 CCD on account B looks like the following: @@ -370,9 +272,9 @@ This - decrypts the shielded balance and checks that there is sufficient funds. - sends the transaction. -The command supports the same optional flags as ``shield`` with the addition -of ``--index``, which has the same meaning as in the -``send-shielded`` command. +This command has all of the additional options of ``send``, as well as an +additional flag ``--index.`` If given, this flag is used to select which +:term:`incoming shielded amounts` that will be used as input to the transaction. .. code-block:: console diff --git a/source/mainnet/net/resources/ccd-scan-accounts.rst b/source/mainnet/net/resources/ccd-scan-accounts.rst index e5d32cc3ea..8b780ca4e6 100644 --- a/source/mainnet/net/resources/ccd-scan-accounts.rst +++ b/source/mainnet/net/resources/ccd-scan-accounts.rst @@ -19,7 +19,7 @@ Below the graphs, the table contains the following: - **Account age**: how long the account has existed. - **Transactions**: number of transactions the account has sent. - **Delegated stake**: total amount of CCD the account has delegated. -- **Balance**: The publicly visible balance of the account. Does not include shielded amounts. +- **Balance**: The publicly visible balance of the account. You can sort the information in the table using the following sort options: diff --git a/source/mainnet/net/resources/glossary.rst b/source/mainnet/net/resources/glossary.rst index 68ca65c49b..97b5fab4b7 100644 --- a/source/mainnet/net/resources/glossary.rst +++ b/source/mainnet/net/resources/glossary.rst @@ -13,7 +13,7 @@ Also see the Concordium `Whitepaper `, in cooperation with the account's :term:`identity provider`. + An addressable store of funds on the blockchain. An account is associated with one or more *account keys* that can be used to authorize transactions originating from the account, as well as with an :term:`encryption key`. An account is also associated with the account holder's :term:`identity`, although this association is encrypted. This identity can only be disclosed by :term:`identity disclosure authorities`, in cooperation with the account's :term:`identity provider`. Account credential @@ -182,7 +182,7 @@ Also see the Concordium `Whitepaper ` on the account. + An `ElGamal`_ public key associated to an account which is used to encrypt all :term:`shielded amounts` (:ref:`deprecated`) on the account. Endpoint @@ -350,10 +350,14 @@ Also see the Concordium `Whitepaper `): + An amount of :term:`CCD` that is encrypted with the public key of an account. Only the owner of the secret key can determine how many CCDs are contained in the encryption. Shielded balance + (:ref:`deprecated`): + The part of the balance of an :term:`account` that only the owner of the account can see. This is achieved by encrypting transfers to an account with the account's :term:`encryption key`. Every participant of the Concordium network can see the `ciphertexts`_ of all the transfers, however they provide no information on how many CCDs were transferred. The receiver of the transfer can use their secret key to decrypt the ciphertexts, and seeing how many CCDs they have received. For technical reasons the shielded balance of the account consists of two parts, the "self balance" and the "incoming shielded amounts". @@ -364,10 +368,14 @@ Also see the Concordium `Whitepaper `): + Transfer from :term:`shielded balance` of an account to a shielded balance of another account. The amount that is transferred is only visible to the sender and the receiver. Shielding + (:ref:`Deprecated`): + The action of transferring a part of the public balance to the :term:`shielded balance`. Slot @@ -424,7 +432,7 @@ Also see the Concordium `Whitepaper `): + The action of transferring a part of the :term:`shielded balance` to the public balance. User identity certificate @@ -475,7 +485,7 @@ Also see the Concordium `Whitepaper `) of the revealed accounts. All of these actions are subject to rules and processes, and only the relevant entities learn any information about the account owner. No information is publicly revealed. diff --git a/source/mainnet/net/voting/gc-voting.rst b/source/mainnet/net/voting/gc-voting.rst index 47119abca1..e9eabfc471 100644 --- a/source/mainnet/net/voting/gc-voting.rst +++ b/source/mainnet/net/voting/gc-voting.rst @@ -9,7 +9,7 @@ Concordium Governance Committee elections are a vital part of decentralization, A user with multiple accounts should vote from all accounts for their vote to have maximum :term:`weight`. If the *same account* votes multiple times, only the last vote will count. -Staked CCD, whether it is by validators or delegators, is still held in the user’s wallet, so it counts towards the weight of the vote. But shielded CCD cannot be seen by anyone other than the wallet owner, so it cannot be part of the weight. And CCD locked in smart contracts cannot be used to vote either. Furthermore tokens that are in a custody wallet, e.g., on a centralized exchange, will not count as part of the weight of the token owner, but as part of the weight of the custodian. It is thus important for all CCD owners who want to vote (or who don’t want custodians to vote in their name) to transfer all CCD to wallets of their own. +Staked CCD, whether it is by validators or delegators, is still held in the user’s wallet, so it counts towards the weight of the vote. And CCD locked in smart contracts cannot be used to vote either. Furthermore tokens that are in a custody wallet, e.g., on a centralized exchange, will not count as part of the weight of the token owner, but as part of the weight of the custodian. It is thus important for all CCD owners who want to vote (or who don’t want custodians to vote in their name) to transfer all CCD to wallets of their own. The voting system chosen for this election is called :term:`approval voting`. The voter may choose as many :term:`candidates` as they like, i.e., they assign either 0 or 1 to every candidate. In standard approval voting, all votes are added up and the candidates with the most votes get the seats. In our weighted case, every candidate that receives a vote receives the corresponding full weight of the account from which the voter was cast — the weights are not split amongst the candidates that receive a vote. For example, suppose that there are four candidates, Peppa Pig, Rebecca Rabbit, Suzy Sheep and Zoe Zebra. And suppose that Alice has 4000 CCD and votes for Peppa, Bob has 2000 CCD and votes for Rebecca and Suzy, and Charlie has 3000 CCD and votes for Suzy and Zoe. Then the final tally is 4000 votes for Peppa, 2000 for Rebecca, 5000 for Suzy and 3000 for Zoe. diff --git a/source/mainnet/smart-contracts/general/develop-contracts.rst b/source/mainnet/smart-contracts/general/develop-contracts.rst index b9cbfa2d0a..2f04dc4ce8 100644 --- a/source/mainnet/smart-contracts/general/develop-contracts.rst +++ b/source/mainnet/smart-contracts/general/develop-contracts.rst @@ -298,7 +298,7 @@ or the current exchange rates. // Query the balance of an account. let account_balance = host.account_balance(account_address)?; - Assuming the account exists, this returns the public/unshielded balance of an account, the currently staked balance, and balance locked in release schedules. + Assuming the account exists, this returns the public balance of an account, the currently staked balance, and balance locked in release schedules. Any amount received during the transaction until the point of querying is reflected in the balance. When sending a smart contract update transaction, the invoker provides a max energy cost for the execution.