Setup
Overview
This documentation will guide you through the process of setting up the SDK.
Prerequisites
Before you can start using the Chromatic Protocol SDK, make sure you have the following:
- Node.js (v18 or higher)
- npm (Node Package Manager)
- An Arbitrum Ethereum provider or a local Arbitrum Ethereum node
- An Ethereum wallet or signer (such as MetaMask) with a funded account on the Arbitrum chain
Installation
To install the Chromatic Protocol SDK, run one of following command among targets in your project directory:
ethers-v5
- npm
- Yarn
- pnpm
npm install @chromatic-protocol/sdk-ethers-v5
yarn add @chromatic-protocol/sdk-ethers-v5
pnpm add @chromatic-protocol/sdk-ethers-v5
ethers-v6
- npm
- Yarn
- pnpm
npm install @chromatic-protocol/sdk-ethers-v6
yarn add @chromatic-protocol/sdk-ethers-v6
pnpm add @chromatic-protocol/sdk-ethers-v6
viem
- npm
- Yarn
- pnpm
npm install @chromatic-protocol/sdk-viem
yarn add @chromatic-protocol/sdk-viem
pnpm add @chromatic-protocol/sdk-viem
Setting up the Client
To interact with the Chromatic Protocol, you need to create a Client instance. The Client class acts as the entry point for accessing various functionalities provided by the SDK. It requires a signer or provider object.
Here's an example of setting up the Client:
- ethers-v5
- ethers-v6
- viem
import { Signer } from 'ethers';
import { Client } from "@chromatic-protocol/sdk-ethers-v5"
const chain: string = "arbitrum"; // Specify "arbitrum" as the chain name for the Arbitrum chain
const signer: Signer = ...; // Replace with your Ethereum signer or wallet instance
const client: Client = new Client(chain, signer);
Replace "arbitrum" with the name of the Arbitrum chain you want to connect to.
Make sure to replace ... with your actual Ethereum signer or wallet instance.
import { Signer } from 'ethers';
import { Client } from "@chromatic-protocol/sdk-ethers-v6"
const chain: string = "arbitrum"; // Specify "arbitrum" as the chain name for the Arbitrum chain
const signer: Signer = ...; // Replace with your Ethereum signer or wallet instance
const client: Client = new Client(chain, signer);
Replace "arbitrum" with the name of the Arbitrum chain you want to connect to.
Make sure to replace ... with your actual Ethereum signer or wallet instance.
import { createWalletClient, custom, getAccount, createPublicClient, http } from 'viem'
import { arbitrumSepolia, arbitrum } from 'viem/chains'
import { Client } from "@chromatic-protocol/sdk-viem"
const publicClient = createPublicClient({
chain: arbitrumSepolia, // or arbitrum
transport: http()
})
const walletClient = createWalletClient({
chain: arbitrumSepolia, // or arbitrum
transport: custom(window.ethereum)
})
const client = new Client({walletClient, publicClient})
Replace "chain" and chain with the name of the Arbitrum chain you want to connect to.
Make sure to replace ... with your actual walletClient or publicClient