Exchanges must connect to the Pangea network to allow users to withdraw coins. This guide provides the steps to set up an account that can act as a LEOS token custodian for exchange coins and allow the exchange to withdraw vested or unvested coins to external Pangea accounts.
Install the official Antelope node CLI "cleos" binary on Ubuntu 22.04. Please use a different release asset for other operating systems. Check the documentation for more details.
wget https://github.com/AntelopeIO/leap/releases/download/v4.0.6/leap_4.0.6-ubuntu22.04_amd64.deb
sudo apt install ./leap_4.0.6-ubuntu22.04_amd64.deb
rm ./leap_4.0.6-ubuntu22.04_amd64.deb
# create an alias that connects to the correct API
alias cleospangea="cleos -u https://blockchain-api.pangea.web4.world/"
# check working
cleospangea get info
Install the Pangea Javascript CLI on Ubuntu 22.04 with Nodejs 22.3.0. Check the documentation for more details.
git clone https://github.com/Tonomy-Foundation/Tonomy-ID-SDK
cd Tonomy-ID-SDK
corepack enable
yarn
export NODE_ENV=production
yarn run build:cli
# check working
yarn run cli --help
Compatibility
The Tonomy SDK requires nodejs v20+
Notes for yarn v2+
If using yarn v2+ then you will need to also add the following to your package.json file.
Create 2x keys to manage your account on Pangea Blockchain. One key is treated as high security and used for recovery called the "owner" key, while the other is used for day-to-day operation and can be replaced by the recovery key (if compromised) called the "active" key.
Send the following information to the Tonomy Foundation through a secure pre-established channel:
Choose your account name which is a 12-character [a-z1-5.] word e.g. binancelists
Choose your username which is an English character lower case word with 2+ characters e.g. @binanceexchange
The name, domain name (website) and logo to use for your exchange
The public key of your "owner" key. Don't send your private key.
The public key of your "active" key. Don't send your private key.
Step 3: Get some LEOS for allocation to investors
As per your LEOS token issuance contract with the Tonomy Foundation, ensure that after your account is created it is allocated the correct amount of LEOS. You can look at your account and its tokens on the Pangea block explorer:
If your users want to create a Pangea account they can do this by downloading and creating a new account on the Pangea ID: https://pangea.web4.world/pangea-id
They can then send you their account name to which you can withdraw LEOS.
If you want to verify if the account exists you can do so:
The quantity must be sent with exactly 6 decimal places in the following format "10.000000 LEOS"
You can also batch multiple actions together. This can be done by adding multiple actions in one transaction. Check the Cleos or Javascript documentation for more information.
Allocate vested LEOS
Vested LEOS should be allocated during the private sale (seed) rounds.
cleospangea wallet create --to-console
# import your active key:
cleospangea wallet import
SENDER=binancelists
RECIPIENT=pegcnjcnnaqd
AMOUNT="10.000000 LEOS"
# use category 8 for seed round 1 "early bird, and category 9 for seed round 2 "last chance"
CATEGORY=8
cleospangea push action vesting.tmy assigntokens "{\"sender\":\"${SENDER}\",\"holder\":\"${RECIPIENT}\",\"amount\":\"${AMOUNT}\",\"category\":${CATEGORY}" -p "${SENDER}@active"
export NODE_ENV=production
# use your active private key:
export SIGNING_KEY=PVT_K1_2jFrRPkFNLiZiqLb9QjWxec3Xr7o4Jf4TShxCFq1R1a7e71iSV
SENDER=binancelists
RECIPIENT=pegcnjcnnaqd
AMOUNT="10.000000 LEOS"
# use category 8 for seed round 1 "early bird, and category 9 for seed round 2 "last chance"
CATEGORY=8
yarn run cli vesting assign "${SENDER}" "${RECIPIENT}" "${AMOUNT}" "${CATEGORY}"
LEOS withdrawals can be used during the public sale or after to send users unvested LEOS.
cleospangea wallet create --to-console
# import your active key:
cleospangea wallet import
SENDER=eosusa
RECIPIENT=pegcnjcnnaqd
AMOUNT="10.000000 LEOS"
MEMO="my transfer memo"
cleospangea transfer "${SENDER}" "${RECIPIENT}" "${AMOUNT}" "${MEMO}" -p "${SENDER}@active"
export NODE_ENV=production
# use your active private key:
export SIGNING_KEY=PVT_K1_2jFrRPkFNLiZiqLb9QjWxec3Xr7o4Jf4TShxCFq1R1a7e71iSV
SENDER=eosusa
RECIPIENT=pegcnjcnnaqd
AMOUNT="10.000000 LEOS"
yarn run cli transfer "${SENDER}" "${RECIPIENT}" "${AMOUNT}"