🚀
Tonomy Developer Docs
  • Introduction
    • Features
  • Build Web4 Apps
    • Install
    • Register your Web4 App
    • Login
    • User Data and Logout
    • Sign Verifiable Credentials
    • Server Authentication
    • Smart Contracts
      • Develop
      • Deploy
      • 1-Click Transactions
      • Wallet Signing
    • Send P2P Messages
    • Troubleshooting
  • Multi-Chain Transactions + Crypto
    • Wallet Connect
    • Antelope Sigining Request (ESR)
  • Run Tonomy Infrastructure
    • Overview
      • Configuration
      • What software to run?
    • Node Setup
      • Setup
      • Run an API Node
      • Run a Block Producer Node
      • Becoming a Block Producer on Tonomy
    • API Endpoints
    • Hardware Requirement
    • Troubleshooting
  • Connect as an Exchange
  • Run Tonomy Gov OS
    • Technical requirements
    • Deploy Tonomy ID
    • Deploy a web wallet with the SDK
    • Reference
      • Application Interface (API)
      • Software Development Kit (SDK)
    • Troubleshooting
Powered by GitBook
On this page
  • Install tools
  • Step 1: Create keys
  • Step 2: Create an account
  • Step 3: Get some TONO for allocation to investors
  • Step 4: Collect user's Tonomyaccount
  • Step 5: Withdraw TONO or allocate vested TONO
  • Troubleshooting

Connect as an Exchange

PreviousTroubleshootingNextRun Tonomy Gov OS

Last updated 14 days ago

Exchanges must connect to the Tonomy network to allow users to withdraw coins. This guide provides the steps to set up an account that can act as a TONO token custodian for exchange coins and allow the exchange to withdraw vested or unvested coins to external Tonomy accounts.

You can connect using the , or the with command line using nodejs or by integrating the Javascript library into your tools.

Install tools

Install the official Antelope node CLI "cleos" binary on Ubuntu 22.04. Please use a for other operating systems. Check the 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 cleostonomy="cleos -u https://blockchain-api.tonomy.io"

# check working
cleostonomy get info

Install the Tonomy Javascript CLI on Ubuntu 22.04 with Nodejs 22.3.0. Check the 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
npm i @tonomy/tonomy-id-sdk
# or
yarn add @tonomy/tonomy-id-sdk

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.

"resolutions": {
    "jsonld": "link:./node_modules/@digitalcredentials/jsonld"
  },

Step 1: Create keys

Create 2x keys to manage your account on Tonomy 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.

cleostonomy create key --to-console
yarn run cli keys create
import { setSettings, generateRandomKeyPair } from '@tonomy/tonomy-id-sdk';

setSettings({ blockchainUrl: "https://blockchain-api.tonomy.io" });

const keyPair = generateRandomKeyPair();

console.log('Public key: ', keyPair.publicKey.toString());
console.log('Private key: ', keyPair.privateKey.toString());

Store both keys in secure storage.

Step 2: Create an account

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 TONO for allocation to investors

As per your TONO token issuance contract with the Tonomy Foundation, ensure that after your account is created it is allocated the correct amount of TONO. You can look at your account and its tokens on the Tonomy block explorer:

Step 4: Collect user's Tonomyaccount

They can then send you their account name to which you can withdraw TONO.

If you want to verify if the account exists you can do so:

cleostonomy get account pegcnjcnnaqd

Not available yet. Let us know if you need this.

import { setSettings, getAccount } from '@tonomy/tonomy-id-sdk';

setSettings({ blockchainUrl: "https://blockchain-api.tonomy.io" });

const accountName = "pegcnjcnnaqd";
const account = await getAccount(accountName);

Step 5: Withdraw TONO or allocate vested TONO

The quantity must be sent with exactly 6 decimal places in the following format "10.000000 TONO"

Allocate vested TONO

Vested TONO should be allocated during the private sale (seed) rounds.

cleostonomy wallet create --to-console
# import your active key:
cleostonomy wallet import

SENDER=binancelists
RECIPIENT=pegcnjcnnaqd
AMOUNT="10.000000 TONO"
# use category 8 for seed round 1 "early bird, and category 9 for seed round 2 "last chance"
CATEGORY=8

cleostonomy 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 TONO"
# 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}"
import { setSettings, VestingContract, createSigner } from '@tonomy/tonomy-id-sdk';
import { PrivateKey } from '@wharfkit/antelope';

setSettings({ blockchainUrl: "https://blockchain-api.tonomy.io" });

const vestingContract = VestingContract.Instance;
const privateKey = PrivateKey.from('PVT_K1_2jFrRPkFNLiZiqLb9QjWxec3Xr7o4Jf4TShxCFq1R1a7e71iSV');
const signer = createSigner(privateKey);

const sender = "binancelists"
const recipient = "pegcnjcnnaqd"
const amount = "10.000000 TONO"
// use category 8 for seed round 1 "early bird, and category 9 for seed round 2 "last chance"
const category = 8

await vestingContract.assignTokens(sender, recipient, amount, category, signer);

Withdraw (unvested) TONO

TONO withdrawals can be used during the public sale or after to send users unvested TONO.

cleostonomy wallet create --to-console
# import your active key:
cleostonomy wallet import

SENDER=eosusa
RECIPIENT=pegcnjcnnaqd
AMOUNT="10.000000 TONO"
MEMO="my transfer memo"

cleostonomy 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 TONO"

yarn run cli transfer "${SENDER}" "${RECIPIENT}" "${AMOUNT}"
import { setSettings, EosioTokenContract, createSigner } from '@tonomy/tonomy-id-sdk';
import { PrivateKey } from '@wharfkit/antelope';

setSettings({ blockchainUrl: "https://blockchain-api.tonomy.io" });

const tokenContract = EosioTokenContract .Instance;
const privateKey = PrivateKey.from('PVT_K1_2jFrRPkFNLiZiqLb9QjWxec3Xr7o4Jf4TShxCFq1R1a7e71iSV');
const signer = createSigner(privateKey);

const senderi= "eosusa"
const recipient = "pegcnjcnnaqd"
const amount = "10.000000 TONO"

await tokenContract.transfer(sender, recipient, amount, signer);

Troubleshooting

If your users want to create a Tonomy account they can do this by downloading and creating a new account on the Tonomy ID:

You can also batch multiple actions together. This can be done by adding multiple actions in one transaction. Check the or documentation for more information.

Antelope documentation:

Antelope telegram group:

Tonomy telegram group:

official Antelope CLI tool called "cleos"
Tonomy Javascript SDK
different release asset
documentation
documentation
https://explorer.tonomy.io
https://tonomy.io/tonomy-id
Cleos
Javascript
https://docs.eosnetwork.com/docs/latest/quick-start/introduction
https://t.me/antelopedevs
https://t.me/tonomyIO