Quick Start

The SDK is available as a NPM package. Install using
yarn add @charged-particles/sdk
npm install @charged-particles/sdk

// Node
import Charged from '@charged-particles/sdk'
// Creating a signer. This is optional, used for making transactions.
const wallet = ethers.wallet.fromMnemonic(seedPhrase);
// Multiple providers array
const mySpecialProviders = [
network: 1,
service: {
'alchemy': 'apiKey',
network: 42,
service: {
'rpcUrl': '<https://eth-kovan.alchemyapi.io/v2/><key>'
const charged = new Charged({providers: mySpecialProviders, signer: wallet});
// Ethers
const ethersProvider = ethers.getDefaultProvider();
const charged = new Charged({providers: ethersProvider, signer: wallet});
// Web3
var web3 = new Web3('<http://localhost:8545>');
const charged = new Charged({providers: ethersProvider, signer: wallet});
// Web
import Charged from '@charged-particles/sdk'
const charged = new Charged({providers: window.ethereum});
Be careful not to keep your secrets, or private key in clear text !

Charged class object constructor config parameter.
sdk: {
// checks that signer network matches respective contract
NftBridgeCheck: false
transactionOverride: {
from: ''
value: ''
gasPrice: ''
gasLimit: ''
blockTag: ''
nonce: ''

When reading and/or writing you will need to define which NFT you are working with.
Before you call any functions on a specific particle, you'll need to specify
which one you are going to work with.
const contractAddress = '0x1234';
const tokenId = 33;
const nft = charged.NFT(contractAddress, tokenId);
// This energizes our nft with 47 DAI tokens.
const txReciept = await nft.energize(
// Get the energized mass
const massBN = await nft.getMass('aave.B', '0xDAI');
// Discharges all of the interest accrued by the DAI tokens to my wallet.
const txReceipt2 = await nft.discharge('0xMYADDRESS', 'aave.B', '0xDAI');

The SDK provides a set of utility functions. The example below shows the format that all the functions are called by.
// This will fetch the addresses of a contract associated with the main contract
const stateAddress = await charged.utils.getStateAddress()
Copy link
On this page
Getting started
Interacting with the protocol