Celo - Release Gold: Withdrawing Released / Vested Celo


releasegold:withdraw Celo - Release Gold: Withdrawing Released / Vested Celo

Step 1: Verify Funds are available

  • Shows you an overview of the Contract information
  • No ledger required for this step
  • The output will provide important information: 
    • releasePeriod - the frequency, in seconds, at which CELO is released. Some common values: monthly (2628000), every 3 months (7884000)
    • amountReleasedPerPeriod - the amount of CELO to be released each releasePeriod
    • currentReleasedTotalAmount - the total amount of CELO released to the contract since the start of the release schedule. This does not always mean the total of CELO available to be withdrawn
    • totalWithdrawn - the total amount of released CELO withdrawn to date
    • The output of this command does not show you the available released CELO you can withdraw, to calculate that you will need to do the following: currentReleasedTotalAmount - totalWithdrawn = Available CELO to withdraw 
  • Celo Documentation: Releasegold Show
$ celocli releasegold:show --contract 0xEDC6De33AAe68D3579A559dB3c562077C227Cf3A


Step 2: Revoke Votes

  • Currently the released CELO is locked and committed to voting. You can revoke the corresponding votes before unlocking the released CELO..
  • If you are using a signer account to vote, you will need access to the signer account.  The command below assumes your voting signer account is tied to the [1] address on the same Ledger as your beneficiary account.
  • Celo Documentation: Revoke Votes

$ celocli election:revoke --for 0xCc4B2Bcbbc9639ef1E91F47acfD12Bd131525e79 --from 
0xFb4e9Fa3282376B37D189161AE9Bc7865F6245Aa --value 4.631569794887214699446e+22 --useLedger
--ledgerCustomAddresses [1]


Step 3: Unlock CELO

  • After revoking the votes, you will unlock the corresponding CELO. The amount should be exactly the same as the amount you revoked in the previous step. 
  • You will need access to the beneficiary account for this step.  The command below assumes your beneficiary account is tied to the [0] address on your Ledger
  • Celo Documentation: Unlock Celo
celocli releasegold:locked-gold --action unlock --contract 
0xEDC6De33AAe68D3579A559dB3c562077C227Cf3A --value 4.631569794887214699446e+22 --useLedger
--ledgerCustomAddresses [0]



  • Once the CELO has been unlocked you will need to wait an unlock period before moving the CELO (approximately 3 days). The exact unlock time can be confirmed using the command below.  Under the pendingWithdrawal section, the “time” parameter provides a UNIX timestamp that can be converted to a UTC timestamp using Unix TimeStamp Converter (https://www.unixtimestamp.com/).  The “value” parameter should equal the amount of CELO you unlocked.
celocli lockedgold:show 0xEDC6De33AAe68D3579A559dB3c562077C227Cf3A


Step 5: Withdraw CELO to Contract Account

  • Using the command in Step 4, confirm the Unix Timestamp has elapsed.
  • You will need access to the beneficiary account for this step which is on the ledger.
  • Celo Documentation: Withdraw to Contract
$ celocli releasegold:locked-gold --action withdraw --contract 
0xEDC6De33AAe68D3579A559dB3c562077C227Cf3A --value 4.631569794887214699446e+22 --useLedger
--ledgerCustomAddresses [0]


Step 6: Withdraw Celo Gold to Beneficiary Account

  • By now, released gold has been withdrawn to the contract account. After checking the Release Gold Contract’s address balance, the “pending” value should be “0” and the withdrawn amount should be in the “gold” balance. 
$ celocli account:balance 0xEDC6De33AAe68D3579A559dB3c562077C227Cf3A
  • Now, this step is to withdraw from the ReleaseGold Contract balance to the Beneficiary Account’s balance.  Both addresses are explicitly bound to each other so the command only requires the contract’s address 
  • You will need access to the beneficiary account for this step.
  • When complete, the Beneficiary Account’s balance will have increased by the withdrawn amount.
  • Celo Documentation: Withdraw to Beneficiary
$ celocli releasegold:withdraw --contract 0xEDC6De33AAe68D3579A559dB3c562077C227Cf3A 
--value 4.631569794887214699446e+22 --useLedger --ledgerCustomAddresses [0]


2 out of 2 found this helpful



Please sign in to leave a comment.