About
Protocol
Walkthroughs
Integrations
Intro to NFT Metadata
Tutorials
Smart Contracts
Concepts
Playbooks
Learn
Using Arbitrum
The following highlight how to use Arbitrum with the SDK, CLI, and/or smart contracts.
Before diving into the details, be sure to check out the section about Arbitrum in Choosing a Chain, which details the basics about optimistic rollups and various links / resources that may be helpful during development.
SDK
Selecting a chain is rather straightforward when using the SDK. Upon connecting to Tableland, pass the chain
as "arbitrum-goerli"
:
const tableland = await connect({ chain: "arbitrum-goerli" })
From there, chain interactions will now leverage Arbitrum Goerli. For Arbitrum One mainnet, simply do the following:
const tableland = await connect({ chain: "arbitrum" })
CLI
When using the CLI, you can check the different chains supported, which includes both the Arbitrum Goerli testnet and mainnet (since the CLI is built on top of the SDK). To use Arbitrum, specify the chain
in a command — for example, with a read query:
> tableland chains # check the chains, optionally
> tableland read "SELECT * FROM healthbot_421613_1" --chain "arbitrum-goerli"
> tableland read "SELECT * FROM healthbot_42161_1" --chain "arbitrum"
Smart Contracts
Selecting a chain is part of the smart contract deployment process. Since Arbitrum is EVM compatible, it’s easy to port over contracts that may have been developed on Ethereum or with Solidity since Arbitrum has full EVM support.
One of the most popular frameworks for deploying smart contracts is hardhat
. Although the SDK and CLI examples above didn’t mention this, it is a best practice to use a provider for interacting with a chain. This ensures developers are not throttled and have full control of their deployment process.
When using hardhat, first set up a provider API key as well as a wallet private key. Make sure you store these in a .env
that is never shared publicly. Sharing keys publicly could result in the loss of funds or unwanted usage of the API key itself.
In order to run hardhat with Arbitrum, first set up a project with hardhat using npx hardhat
and follow the prompts (e.g., “Create a basic sample project”). Once a project is set up, one could run the following to deploy a contract on Arbitrum:
npx hardhat run scripts/deploy.js --network "arbitrum-goerli"
But first, the hardhat.config.js
should be configured to resemble the following. Use dotenv
as a best practice for accessing local environment variables like PRIVATE_KEY
, ARBITRUM_API_KEY
, and ARBITRUM_GOERLI_API_KEY
. Note that the provider used here is Alchemy, but other providers can also be used with Tableland, too (including Etherscan and Infura):
module.exports = {
solidity: "0.8.4",
networks: {
arbitrum: {
url: `https://arb-mainnet.g.alchemy.com/v2/${process.env.ARBITRUM_API_KEY ?? ""}`,
accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
},
"arbitrum-goreli": {
url: `https://arb-goerli.g.alchemy.com/v2/${process.env.ARBITRUM_GOERLI_API_KEY ?? ""}`,
accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
},
},
}
← Previous
On this page