The Crypto.com Developer Platform Client.ts is a TypeScript/JavaScript SDK designed to interact with the Crypto.com Developer Platform Service API. This client simplifies working with the Cronos blockchain, covering native tokens, ERC20/ERC721 tokens, smart contracts, DeFi, exchange, and transaction services.
- Native and ERC20/ERC721 token operations
- Token transfers, wrapping, swapping
- Contract ABI and bytecode fetching
- Cronos ID (name ↔ address resolution)
- Blockchain transactions and block data
- DeFi protocols (farms, whitelisted tokens)
- Crypto.com exchange data
- Supports Cronos EVM and Cronos ZK EVM
npm install @crypto.com/developer-platform-client
Here’s how you can use the Crypto.com Developer Platform Client.ts in your project:
First, initialize the client with your API key. To get an API Key, please create an account and a project at https://developer.crypto.com.
import { Client, CronosZkEvm } from '@crypto.com/developer-platform-client';
Client.init({
apiKey: 'YOUR_API_KEY',
provider: 'https://your-provider-url.com', // Optional
});
const wallet = await Wallet.create();
console.log(wallet);
const balance = await Wallet.balance('0xYourWallet');
console.log(balance);
const native = await Token.getNativeTokenBalance('0xYourWallet');
console.log(native);
const erc20 = await Token.getERC20TokenBalance('0xYourWallet', '0xToken');
console.log(erc20);
const transfer = await Token.transfer({ to: '0xRecipient', amount: 5 });
console.log(transfer);
const wrap = await Token.wrap({ amount: 10 });
console.log(wrap);
const swap = await Token.swap({
fromContractAddress: '0xFrom',
toContractAddress: '0xTo',
amount: 2,
});
console.log(swap);
const balance721 = await Token.getERC721TokenBalance('0xYourWallet', '0xERC721Contract');
console.log(balance721);
const owner = await Token.getTokenOwner('0xERC721Contract', '1');
console.log(owner);
const uri = await Token.getTokenURI('0xERC721Contract', '1');
console.log(uri);
const metadata721 = await Token.getERC721Metadata('0xERC721Contract');
console.log(metadata721);
const metadata20 = await Token.getERC20Metadata('0xERC20Contract');
console.log(metadata20);
const txs = await Transaction.getTransactionsByAddress('0xAddress', 'explorerKey');
console.log(txs);
const tx = await Transaction.getTransactionByHash('0xHash');
console.log(tx);
const status = await Transaction.getTransactionStatus('0xHash');
console.log(status);
const count = await Transaction.getTransactionCount('0xWallet');
console.log(count);
const gasPrice = await Transaction.getGasPrice();
console.log(gasPrice);
const fee = await Transaction.getFeeData();
console.log(fee);
const estimate = await Transaction.estimateGas({
from: '0xFrom',
to: '0xTo',
value: '0xValue',
data: '0xData',
});
console.log(estimate);
const abi = await Contract.getContractABI('0xContract', 'explorerKey');
console.log(abi);
const bytecode = await Contract.getContractCode('0xContract');
console.log(bytecode);
const current = await Block.getCurrentBlock();
console.log(current);
const block = await Block.getBlockByTag('latest');
console.log(block);
const resolved = await CronosId.forwardResolve('alice.cro');
console.log(resolved);
const reverse = await CronosId.reverseResolve('0xYourWallet');
console.log(reverse);
const tokens = await Defi.getWhitelistedTokens(DefiProtocol.H2);
console.log(tokens);
const farms = await Defi.getAllFarms(DefiProtocol.VVS);
console.log(farms);
const farm = await Defi.getFarmBySymbol(DefiProtocol.H2, 'zkCRO-MOON');
console.log(farm);
const all = await Exchange.getAllTickers();
console.log(all);
const ticker = await Exchange.getTickerByInstrument('BTC_USDT');
console.log(ticker);
Client.init(config)
: Initializes the client with an API key, chain, and optional provider.Client.getApiKey()
: Returns the currently configured API key.Client.getProvider()
: Returns the configured provider URL.Client.getChainId()
: Returns the selected chain ID.
Wallet.create()
: Creates a new wallet and returns its address, private key, and mnemonic.Wallet.balance(address)
: Fetches the native token balance for a wallet address.
Token.getNativeTokenBalance(address)
: Returns the native token balance for a given wallet or CronosId.Token.getERC20TokenBalance(address, contractAddress, blockHeight?)
: Returns the ERC20 token balance.Token.transfer({ to, amount, contractAddress? })
: Transfers native or ERC20 tokens.Token.wrap({ amount })
: Wraps tokens.Token.swap({ fromContractAddress, toContractAddress, amount })
: Swaps tokens.Token.getERC721TokenBalance(address, contractAddress)
: Returns ERC721 token balance.Token.getTokenOwner(contractAddress, tokenId)
: Returns the owner of a specific ERC721 token.Token.getTokenURI(contractAddress, tokenId)
: Returns the token URI of an ERC721 token.Token.getERC721Metadata(contractAddress)
: Returns metadata for an ERC721 contract.Token.getERC20Metadata(contractAddress)
: Returns metadata for an ERC20 contract.
Transaction.getTransactionsByAddress(address, explorerKey, session?, limit?, startBlock?, endBlock?)
: Returns transaction list.Transaction.getTransactionByHash(txHash)
: Returns a transaction by hash.Transaction.getTransactionStatus(txHash)
: Returns transaction status.Transaction.getTransactionCount(address)
: Returns the nonce/transaction count for a wallet.Transaction.getGasPrice()
: Returns the current gas price.Transaction.getFeeData()
: Returns fee-related data.Transaction.estimateGas(payload)
: Estimates the gas for a transaction.
Contract.getContractABI(contractAddress, explorerKey)
: Returns the ABI of a smart contract.Contract.getContractCode(contractAddress)
: Returns bytecode of a smart contract.
Block.getCurrentBlock()
: Returns the latest block.Block.getBlockByTag(tag, txDetail?)
: Fetches block by tag or number.
CronosId.forwardResolve(cronosId)
: Resolves a CronosId to a wallet address.CronosId.reverseResolve(address)
: Resolves an address to its CronosId (if any).
Defi.getWhitelistedTokens(protocol)
: Returns whitelisted tokens for a protocol.Defi.getAllFarms(protocol)
: Returns all farms for a protocol.Defi.getFarmBySymbol(protocol, symbol)
: Returns farm details by symbol.
Exchange.getAllTickers()
: Returns all market tickers.Exchange.getTickerByInstrument(instrumentName)
: Returns market data for a given trading pair.
The SDK supports both Cronos EVM and Cronos ZK EVM networks.
CronosEvm.Mainnet; // Chain ID: 25
CronosEvm.Testnet; // Chain ID: 338
CronosZkEvm.Mainnet; // Chain ID: 388
CronosZkEvm.Testnet; // Chain ID: 240
This project is licensed under the MIT License.
If you have any questions or comments about the library, please feel free to open an issue or a pull request on our GitHub repository.