Crypto.com On-Chain Developer Platform
Introduction
The Crypto.com On-Chain Developer Platform Client SDK is designed to interact seamlessly with the Crypto.com Developer Platform Service API. This client library simplifies interactions with the Cronos blockchain, supporting native tokens, ERC20 tokens, smart contracts, transactions, blocks, and wallets.
Features
Supports
Cronos EVM
andCronos zkEVM
.Simple and intuitive API for interacting with Cronos blockchain networks.
Native and ERC20/ERC721 token operations
Token transfers, wrapping, and swapping.
Transaction queries by address or hash, and fetching transaction statuses.
Smart contract ABI and bytecode fetching by contract address.
Wallet creation and balance management.
Cronos ID forward/reverse resolution.
DeFi protocols and features, including yield farming and token utilities.
Crypto.com exchange data
Installation
To install the package, run the following command in your project directory:
npm install @crypto.com/developer-platform-client
Usage
Here’s how you can use the Crypto.com Client for Developer Platform in your project:
Initialize the Client
First, initialize the client with your API key. To obtain an API key, please refer to the following page:
Crypto.com Developer Platform Dashboardimport { Client } from '@crypto.com/developer-platform-client';
Client.init({
apiKey: 'YOUR_API_KEY',
provider: 'https://your-provider-url.com', // Optional
});
Supported Chains
The SDK supports both Cronos EVM and Cronos ZK EVM networks.
import { CronosEvm, CronosZkEvm } from '@crypto.com/developer-platform-client';
CronosEvm.Mainnet; // Chain ID: 25
CronosEvm.Testnet; // Chain ID: 338
CronosZkEvm.Mainnet; // Chain ID: 388
CronosZkEvm.Testnet; // Chain ID: 240
Example Operations
Wallet Operations
Create a Wallet:
import { Wallet } from '@crypto.com/developer-platform-client';
const wallet = await Wallet.create();
console.log(wallet);
Get Wallet Balance:
import { Wallet } from '@crypto.com/developer-platform-client';
const balance = await Wallet.balance('0xYourWallet');
console.log(balance);
Token Operations
Fetch Native Token Balance:
import { Token } from '@crypto.com/developer-platform-client';
const native = await Token.getNativeTokenBalance('0xYourWallet');
console.log(native);
Fetch ERC20 Token Balance:
import { Token } from '@crypto.com/developer-platform-client';
const erc20 = await Token.getERC20TokenBalance('0xYourWallet', '0xToken');
console.log(erc20);
Transfer Tokens:
import { Token } from '@crypto.com/developer-platform-client';
const transfer = await Token.transfer({ to: '0xRecipient', amount: 5 });
console.log(transfer);
Wrap Tokens:
import { Token } from '@crypto.com/developer-platform-client';
const wrap = await Token.wrap({ amount: 10 });
console.log(wrap);
Swap Tokens:
import { Token } from '@crypto.com/developer-platform-client';
const swap = await Token.swap({
fromContractAddress: '0xFrom',
toContractAddress: '0xTo',
amount: 2,
});
console.log(swap);
Get ERC721 Token Balance:
import { Token } from '@crypto.com/developer-platform-client';
const balance721 = await Token.getERC721TokenBalance('0xYourWallet', '0xERC721Contract');
console.log(balance721);
Get ERC721 Token Owner:
import { Token } from '@crypto.com/developer-platform-client';
const owner = await Token.getTokenOwner('0xERC721Contract', '1');
console.log(owner);
Get ERC721 Token URI:
import { Token } from '@crypto.com/developer-platform-client';
const uri = await Token.getTokenURI('0xERC721Contract', '1');
console.log(uri);
Get ERC721 Token Metadata:
import { Token } from '@crypto.com/developer-platform-client';
const metadata721 = await Token.getERC721Metadata('0xERC721Contract');
console.log(metadata721);
Get ERC20 Token Metadata:
import { Token } from '@crypto.com/developer-platform-client';
const metadata20 = await Token.getERC20Metadata('0xERC20Contract');
console.log(metadata20);
Transaction Operations
Fetch Transactions by Address:
import { Transaction } from '@crypto.com/developer-platform-client';
const txs = await Transaction.getTransactionsByAddress('0xAddress', 'ExplorerAPIKey');
console.log(txs);
Fetch Transaction by Hash:
import { Transaction } from '@crypto.com/developer-platform-client';
const tx = await Transaction.getTransactionByHash('0xHash');
console.log(tx);
Get Transaction Status:
import { Transaction } from '@crypto.com/developer-platform-client';
const status = await Transaction.getTransactionStatus('0xHash');
console.log(status);
Get Transaction Count:
import { Transaction } from '@crypto.com/developer-platform-client';
const count = await Transaction.getTransactionCount('0xWallet');
console.log(count);
Get Gas Price:
import { Transaction } from '@crypto.com/developer-platform-client';
const gasPrice = await Transaction.getGasPrice();
console.log(gasPrice);
Get Fee Data:
import { Transaction } from '@crypto.com/developer-platform-client';
const fee = await Transaction.getFeeData();
console.log(fee);
Get Estimate Gas:
import { Transaction } from '@crypto.com/developer-platform-client';
const estimate = await Transaction.estimateGas({
from: '0xFrom',
to: '0xTo',
value: '0xValue',
data: '0xData',
});
console.log(estimate);
Contract Operations
Fetch Contract ABI by Address:
import { Contract } from '@crypto.com/developer-platform-client';
const abi = await Contract.getContractABI('0xContract', 'ExplorerAPIKey');
console.log(abi);
Fetch Contract Bytecode by Address:
import { Contract } from '@crypto.com/developer-platform-client';
const bytecode = await Contract.getContractCode('0xContract');
console.log(bytecode);
Block Operations
Fetch Current Block:
import { Block } from '@crypto.com/developer-platform-client';
const current = await Block.getCurrentBlock();
console.log(current);
Fetch Block Data by Tag or Number:
import { Block } from '@crypto.com/developer-platform-client';
const block = await Block.getBlockByTag('latest');
console.log(block);
Cronos ID
Resolve Cronos ID to Address:
import { CronosId } from '@crypto.com/developer-platform-client';
const resolved = await CronosId.forwardResolve('alice.cro');
console.log(resolved);
Reverse Address to Cronos ID:
import { CronosId } from '@crypto.com/developer-platform-client';
const reverse = await CronosId.reverseResolve('0xYourWallet');
console.log(reverse);
Defi
Get Whitelist Tokens:
import { Defi, DefiProtocol } from '@crypto.com/developer-platform-client';
const tokens = await Defi.getWhitelistedTokens(DefiProtocol.H2);
console.log(tokens);
Get All Farms:
import { Defi, DefiProtocol } from '@crypto.com/developer-platform-client';
const farms = await Defi.getAllFarms(DefiProtocol.VVS);
console.log(farms);
Get Farm by Symbol:
import { Defi, DefiProtocol } from '@crypto.com/developer-platform-client';
const farm = await Defi.getFarmBySymbol(DefiProtocol.H2, 'zkCRO-MOON');
console.log(farm);
Exchange
Get All Tickers:
import { Exchange } from '@crypto.com/developer-platform-client';
const all = await Exchange.getAllTickers();
console.log(all);
Get Ticker by Instrument:
import { Exchange } from '@crypto.com/developer-platform-client';
const ticker = await Exchange.getTickerByInstrument('BTC_USDT');
console.log(ticker);
Last updated
Was this helpful?