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

Currently in beta: Expect frequent updates and potential changes in future releases.

  • Supports Cronos EVM and Cronos 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 Dashboard
import { 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?