SDK Reference
Quick-start guides and code examples for 43 blockchain developer SDKs across every major ecosystem — EVM, Solana, Cosmos, Polkadot, NEAR, Aptos, Starknet, and more. Each card includes install instructions and a working code example.
ethers.js
v6javascriptComplete Ethereum wallet and smart contract library for JavaScript.
Install
npm install ethersQuick Start
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://rpc.ankr.com/eth");
const balance = await provider.getBalance("0x...");
console.log(ethers.formatEther(balance));viem
v2typescriptTypeScript interface for Ethereum — fast, lightweight, modular.
Install
npm install viemQuick Start
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
const client = createPublicClient({
chain: mainnet,
transport: http(),
});
const blockNumber = await client.getBlockNumber();web3.js
v4javascriptEthereum JavaScript API — interact with smart contracts and nodes.
Install
npm install web3Quick Start
import Web3 from "web3";
const web3 = new Web3("https://rpc.ankr.com/eth");
const balance = await web3.eth.getBalance("0x...");
console.log(web3.utils.fromWei(balance, "ether"));wagmi
v2typescriptReact Hooks for Ethereum — wallets, contracts, transactions.
Install
npm install wagmi viemQuick Start
import { useAccount, useBalance } from "wagmi";
function Wallet() {
const { address } = useAccount();
const { data: balance } = useBalance({ address });
return <p>{balance?.formatted} {balance?.symbol}</p>;
}solana-web3
v1javascriptSolana JavaScript SDK for interacting with the Solana blockchain.
Install
npm install @solana/web3.jsQuick Start
import { Connection, PublicKey } from "@solana/web3.js";
const conn = new Connection("https://api.mainnet-beta.solana.com");
const balance = await conn.getBalance(
new PublicKey("...")
);
console.log(balance / 1e9);web3.py
v6pythonPython library for interacting with Ethereum.
Install
pip install web3Quick Start
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://rpc.ankr.com/eth"))
balance = w3.eth.get_balance("0x...")
print(w3.from_wei(balance, "ether"))RainbowKit
v2typescriptReact wallet connection UI built on wagmi — beautiful, customizable.
Install
npm install @rainbow-me/rainbowkit wagmi viemQuick Start
import { getDefaultConfig, RainbowKitProvider } from "@rainbow-me/rainbowkit";
import "@rainbow-me/rainbowkit/styles.css";
const config = getDefaultConfig({
appName: "My DApp",
projectId: "YOUR_PROJECT_ID",
chains: [mainnet],
ssr: true,
});
export default function App() {
return (
<RainbowKitProvider>
<YourApp />
</RainbowKitProvider>
);
}ConnectKit
v1typescriptFamily-friendly wallet connector for React built on wagmi.
Install
npm install connectkit wagmi viemQuick Start
import { ConnectKitProvider, getDefaultConfig } from "connectkit";
const config = getDefaultConfig({
appName: "My DApp",
walletConnectProjectId: "YOUR_PROJECT_ID",
chains: [mainnet],
});Web3-Onboard
v2typescriptFramework-agnostic wallet connection framework by Blocknative.
Install
npm install @web3-onboard/reactQuick Start
import Onboard from "@web3-onboard/core";
const onboard = Onboard({
wallets: [injectedModule()],
chains: [{ id: "0x1", token: "ETH", label: "Ethereum", rpcUrl: "https://rpc.ankr.com/eth" }],
appMetadata: { name: "My DApp" },
});Moralis
v2typescriptUnified API for NFTs, tokens, transactions, and blockchain data across chains.
Install
npm install moralisQuick Start
import Moralis from "moralis";
await Moralis.start({ apiKey: "YOUR_API_KEY" });
const balance = await Moralis.EvmApi.token.getWalletTokenBalances({
address: "0x...",
chain: "0x1",
});Alchemy SDK
v3typescriptOfficial SDK for Alchemy APIs — enhanced NFT, token, and transaction data.
Install
npm install @alchemy/alchemy-sdkQuick Start
import { Alchemy, Network } from "alchemy-sdk";
const alchemy = new Alchemy({ apiKey: "demo", network: Network.ETH_MAINNET });
const balance = await alchemy.core.getBalance("0x...");
console.log(balance);Hardhat
v2javascriptEthereum development environment for compiling, testing, and deploying contracts.
Install
npm install --save-dev hardhatQuick Start
// scripts/deploy.js
const hre = require("hardhat");
async function main() {
const Token = await hre.ethers.getContractFactory("Token");
const token = await Token.deploy();
await token.waitForDeployment();
console.log("Deployed to:", await token.getAddress());
}
main();Foundry
v1rustBlazing-fast Solidity toolkit — forge, cast, anvil. Written in Rust.
Install
curl -L https://foundry.paradigm.xyz | bashQuick Start
// Deploy & verify with forge
forge create --rpc-url $RPC \
--private-key $PK \
src/Token.sol:Token \
--verify --etherscan-api-key $KEY
// Cast a call to read balance
cast call 0xTOKEN "balanceOf(address)(uint256)" 0xUSER \
--rpc-url $RPCOpenZeppelin
v5solidityBattle-tested smart contract libraries — ERC-20, ERC-721, access control, security.
Install
npm install @openzeppelin/contractsQuick Start
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor() ERC20("MyToken", "MTK") {
_mint(msg.sender, 1_000_000 * 10 ** decimals());
}
}Solady
v0.1solidityGas-optimized Solidity snippets and alternative to OpenZeppelin.
Install
forge install vectorized/soladyQuick Start
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import { ERC20 } from "solady/tokens/ERC20.sol";
contract MyToken is ERC20 {
function name() public pure override returns (string memory) { return "MyToken"; }
function symbol() public pure override returns (string memory) { return "MTK"; }
}Brownie
v1pythonPython-based development and testing framework for Solidity smart contracts.
Install
pip install eth-brownieQuick Start
from brownie import accounts, Token
def main():
acct = accounts.load("dev")
token = Token.deploy("MyToken", "MTK", 1e24, {"from": acct})
print(f"Deployed: {token.address}")Ape
v0.8pythonSmart contract development framework for Python — the successor to Brownie.
Install
pip install apeQuick Start
from ape import accounts, project
def main():
acct = accounts.load("dev")
token = acct.deploy(project.Token)
print(f"Deployed: {token.address}")Truffle
v5javascriptClassic Ethereum development suite for contracts, tests, and migrations.
Install
npm install -g truffleQuick Start
// migrations/2_deploy.js
const Token = artifacts.require("Token");
module.exports = function (deployer) {
deployer.deploy(Token);
};ethers.rs
v2rustRust port of ethers.js — EVM wallet, provider, and contract bindings.
Install
cargo add ethersQuick Start
use ethers::providers::{Provider, Http};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let provider = Provider::<Http>::try_from("https://rpc.ankr.com/eth")?;
let block = provider.get_block_number().await?;
println!("Block: {block}");
Ok(())
}go-ethereum
v1.14goOfficial Go implementation of Ethereum — Geth client and ethclient SDK.
Install
go get github.com/ethereum/go-ethereumQuick Start
package main
import (
"context"
"fmt"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, _ := ethclient.Dial("https://rpc.ankr.com/eth")
block, _ := client.BlockByNumber(context.Background(), nil)
fmt.Println("Block:", block.Number())
}cosmos-sdk
v0.50goFramework for building application-specific blockchains in the Cosmos ecosystem.
Install
go get github.com/cosmos/cosmos-sdkQuick Start
package main
import (
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/types/tx"
)
// Broadcast a Cosmos transaction
func main() {
ctx := client.Context{}
_ = ctx.WithTxConfig(tx.NewTxConfig())
}CosmWasm
v2rustSmart contract platform for Cosmos chains — write contracts in Rust.
Install
cargo install cosmwasm-checkQuick Start
use cosmwasm_std::{entry_point, DepsMut, MessageInfo, Response};
#[entry_point]
pub fn execute(
_deps: DepsMut,
_info: MessageInfo,
msg: ExecuteMsg,
) -> Result<Response, cosmwasm_std::StdError> {
match msg {
ExecuteMsg::Increment {} => Ok(Response::new()
.add_attribute("action", "increment")),
}
}polkadot.js
v14typescriptJavaScript SDK for Polkadot & Substrate chains — RPC, keys, extrinsics.
Install
npm install @polkadot/apiQuick Start
import { ApiPromise, WsProvider } from "@polkadot/api";
const provider = new WsProvider("wss://rpc.polkadot.io");
const api = await ApiPromise.create({ provider });
const block = await api.rpc.chain.getBlock();
console.log("Block:", block.block.header.number.toString());near-api-js
v3javascriptJavaScript SDK for NEAR Protocol — accounts, contracts, transactions.
Install
npm install near-api-jsQuick Start
import { connect, keyStores } from "near-api-js";
const near = await connect({
networkId: "mainnet",
keyStore: new keyStores.BrowserLocalStorageKeyStore(),
nodeUrl: "https://rpc.mainnet.near.org",
});
const account = await near.account("example.near");
const balance = await account.getAccountBalance();
console.log(balance.total);aptos-sdk
v1typescriptOfficial SDK for the Aptos blockchain — accounts, transactions, resources.
Install
npm install @aptos-labs/ts-sdkQuick Start
import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";
const aptos = new Aptos(new AptosConfig({ network: Network.MAINNET }));
const balance = await aptos.getAccountBalance({
accountAddress: "0x...",
});
console.log(balance);starknet.js
v6typescriptJavaScript SDK for Starknet — accounts, contracts, and RPC calls.
Install
npm install starknetQuick Start
import { RpcProvider, Account } from "starknet";
const provider = new RpcProvider({ nodeUrl: "https://starknet-mainnet.public.blastapi.io" });
const account = new Account(provider, "0x...", "0x...");
const balance = await account.getBalance();
console.log(balance);fuels-ts
v0.95typescriptTypeScript SDK for Fuel Network — the fastest modular execution layer.
Install
npm install fuelsQuick Start
import { Provider, Wallet } from "fuels";
const provider = await Provider.create("https://mainnet.fuel.network/v1/graphql");
const wallet = Wallet.fromPrivateKey("0x...", provider);
const balance = await wallet.getBalance();
console.log(balance.toString());hedera-sdk
v2javascriptOfficial SDK for Hedera Hashgraph — crypto transfers, tokens, smart contracts.
Install
npm install @hashgraph/sdkQuick Start
import { Client, AccountBalanceQuery } from "@hashgraph/sdk";
const client = Client.forMainnet();
client.setOperator(myAccountId, myPrivateKey);
const balance = await new AccountBalanceQuery()
.setAccountId("0.0.1")
.execute(client);
console.log(balance.hbars.toString());tronweb
v6javascriptJavaScript SDK for TRON — interact with nodes, contracts, and TRC tokens.
Install
npm install tronwebQuick Start
import TronWeb from "tronweb";
const tronWeb = new TronWeb({
fullHost: "https://api.trongrid.io",
privateKey: "YOUR_PRIVATE_KEY",
});
const balance = await tronWeb.trx.getBalance("...");
console.log(balance / 1e6);eosjs
v22javascriptJavaScript SDK for EOSIO blockchains — actions, transactions, and RPC.
Install
npm install eosjsQuick Start
import { Api, JsonRpc } from "eosjs";
const rpc = new JsonRpc("https://eos.greymass.com", { fetch });
const api = new Api({ rpc });
const info = await rpc.get_info();
console.log(info.head_block_num);taquito
v22typescriptTypeScript SDK for Tezos — smart contracts, wallets, and baking operations.
Install
npm install @taquito/taquitoQuick Start
import { TezosToolkit } from "@taquito/taquito";
const Tezos = new TezosToolkit("https://mainnet.api.tez.ie");
const balance = await Tezos.tz.getBalance("tz1...");
console.log(balance.toNumber() / 1e6);stellar-sdk
v12javascriptOfficial JavaScript SDK for Stellar — payments, assets, and transactions.
Install
npm install stellar-sdkQuick Start
import { Horizon } from "stellar-sdk";
const server = new Horizon.Server("https://horizon.stellar.org");
const account = await server.loadAccount("G...");
console.log(account.balances);cardano-serialization-lib
v14rustRust library for Cardano transaction building, signing, and serialization.
Install
npm install @emurgo/cardano-serialization-lib-browserQuick Start
import * as CSL from "@emurgo/cardano-serialization-lib-browser";
const amount = CSL.Value.new(CSL.BigNum.from_str("1000000"));
console.log(amount.coin().to_str());multiversx-sdk
v13typescriptOfficial SDK for Multiversx (formerly Elrond) — wallets, transactions, contracts.
Install
npm install @multiversx/sdk-core @multiversx/sdk-network-providersQuick Start
import { ApiNetworkProvider } from "@multiversx/sdk-network-providers";
const provider = new ApiNetworkProvider("https://api.multiversx.com");
const account = await provider.getAccount("erd1...");
console.log(account.balance);avalanchejs
v4typescriptJavaScript SDK for Avalanche — C-Chain, P-Chain, X-Chain, and subnets.
Install
npm install avalancheQuick Start
import { Avalanche } from "avalanche";
const avax = new Avalanche("api.avax.network", 443, "https");
const xchain = avax.XChain();
const balance = await xchain.getBalance("X-avax1...", "AVAX");
console.log(balance.balance);neo3
v3javascriptJavaScript SDK for NEO N3 blockchain — smart contracts and wallets.
Install
npm install @cityofzion/neon-jsQuick Start
import { rpc } from "@cityofzion/neon-js";
const client = new rpc.RPCClient("https://mainnet1.neo.coz.io:443");
const block = await client.getBlockCount();
console.log("Block:", block);flow-js
v1javascriptJavaScript SDK for Flow blockchain — Cadence scripts, transactions, and accounts.
Install
npm install @onflow/fclQuick Start
import * as fcl from "@onflow/fcl";
fcl.config()
.put("accessNode.api", "https://rest-mainnet.onflow.org");
const balance = await fcl.query({
cadence: `
import FungibleToken from 0xf233dcee88fe0abe
pub fun main(addr: Address): UFix64 {
return 0.0
}
`,
args: (arg, t) => [arg("0x...", t.Address)],
});
console.log(balance);iota-sdk
v1typescriptOfficial SDK for IOTA — Tangle-based transactions and digital assets.
Install
npm install @iota/sdkQuick Start
import { Client } from "@iota/sdk";
const client = new Client({ nodes: ["https://api.mainnet.iota.cafe"] });
const info = await client.getInfo();
console.log(info.nodeInfo.name);lisk-sdk
v6javascriptSDK for building Lisk-compatible sidechains and applications.
Install
npm install lisk-sdkQuick Start
import { apiClient } from "lisk-sdk";
const client = await apiClient.createWSClient("wss://mainnet.lisk.com/ws");
const info = await client.node.getNodeInfo();
console.log(info.height);gear-js
v0.42typescriptJavaScript SDK for Gear Network — wasm smart contracts on Substrate.
Install
npm install @gear-js/apiQuick Start
import { GearApi } from "@gear-js/api";
const api = await GearApi.create({ providerAddress: "wss://rpc-vara.gear-tech.io" });
const block = await api.blocks.getLatest();
console.log(block);ethers-php
v0.3phpPHP Ethereum client and wallet library, inspired by ethers.js.
Install
composer require web3p/ethersQuick Start
use Ethers\Provider\Provider;
$provider = Provider::fromJsonRpc("https://rpc.ankr.com/eth");
$balance = $provider->getBalance("0x...");
echo $balance->toString();Nethereum
v4csharp.NET integration library for Ethereum — RPC, contracts, signing.
Install
dotnet add package Nethereum.Web3Quick Start
using Nethereum.Web3;
var web3 = new Web3("https://rpc.ankr.com/eth");
var balance = await web3.Eth.GetBalance.SendRequestAsync("0x...");
Console.WriteLine(balance.Value);web3j
v4javaJava/Android library for Ethereum — wallets, smart contracts, and RPC.
Install
implementation 'org.web3j:core:4.12.0'Quick Start
import org.web3j.protocol.Web3j;
import org.web3j.protocol.http.HttpService;
Web3j web3 = Web3j.build(new HttpService("https://rpc.ankr.com/eth"));
var balance = web3.ethGetBalance("0x...", DefaultBlockParameterName.LATEST)
.send();
System.out.println(balance.getBalance());