Contract ABIs for the Ronin Network.
npm install @roninnetwork/contracts
# or
pnpm add @roninnetwork/contracts
# or
bun add @roninnetwork/contracts
This is the only supported approach as it minimizes the bundle size for your application.
import MY_CONTRACT from '@roninbuilders/contracts/my_contract';
// or for CommonJS
const MY_CONTRACT = require('@roninbuilders/contracts/my_contract');
To ensure optimal bundle size, named imports from the main package are not available:
import AXIE_PROXY from '@roninbuilders/contracts/axie_proxy'
import KATANA_ROUTER from '@roninbuilders/contracts/katana_router'
Each contract export includes:
- Contract ABI
- Contract address
- Metadata (name, deprecation status, creation date)
Example:
import AXIE_PROXY from '@roninbuilders/contracts/axie_proxy'
console.log(AXIE_PROXY.address) // Contract address
console.log(AXIE_PROXY.abi) // Contract ABI
console.log(AXIE_PROXY.proxy_abi) // Proxy ABI
console.log(AXIE_PROXY.is_deprecated) // Deprecation status
Using viem to interact with contracts:
import { createPublicClient, http } from 'viem'
import AXIE_PROXY from '@roninbuilders/contracts/axie_proxy'
import WRAPPED_ETHER from '@roninbuilders/contracts/wrapped_ether'
const client = createPublicClient({
chain: {
id: 2020,
name: 'Ronin',
network: 'ronin',
nativeCurrency: {
decimals: 18,
name: 'Ronin',
symbol: 'RON'
},
rpcUrls: {
default: { http: ['https://api.roninchain.com/rpc'] }
}
},
transport: http()
})
// Read contract data
const balance = await client.readContract({
address: WRAPPED_ETHER.address,
abi: WRAPPED_ETHER.abi,
functionName: 'balanceOf',
args: [address]
})
Using ethers.js to interact with contracts:
import { ethers } from 'ethers'
import AXIE_PROXY from '@roninbuilders/contracts/axie_proxy'
import WRAPPED_ETHER from '@roninbuilders/contracts/wrapped_ether'
const provider = new ethers.JsonRpcProvider('https://api.roninchain.com/rpc')
// Create contract instance
const contract = new ethers.Contract(
WRAPPED_ETHER.address,
WRAPPED_ETHER.abi,
provider
)
// Read contract data
const balance = await contract.balanceOf(address)
Update contracts from Ronin Explorer:
bun run update
Build the package:
bun run build
Format code:
bun run format
See CONTRIBUTING.md for contribution guidelines.