> ## Documentation Index
> Fetch the complete documentation index at: https://docs.therootnetwork.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Install EVM API

## @therootnetwork/evm

A utility [package](https://www.npmjs.com/package/@therootnetwork/evm) that simplifies EVM development on The Root Network.

## Install

```
yarn add @therootnetwork/evm
```

## Usage

Import and initialize the functionalities you need:

```
import {
  collectionIdToERC721Address,
  ERC721_PRECOMPILE_ABI,
  getPublicProviderUrl,
} from "@therootnetwork/evm";
import { Contract, getDefaultProvider } from "ethers";

const collectionAddress = collectionIdToERC721Address(1);
const providerUrl = getPublicProviderUrl("porcini");
const provider = getDefaultProvider(providerUrl);
const contract = new Contract(collectionAddress, ERC721_PRECOMPILE_ABI, provider);
```

## API

### `function assetIdToERC20Address(assetId: string | number)`

Converts native asset ID to ERC-20 contract address

### `function collectionIdToERC721Address(collectionId: string | number)`

Converts native NFT collection ID to ERC-721 contract address

### `function getPublicProviderUrl(network: NetworkName): HttpProviderUrl`

Returns the Public RPC URls for the corresponding `network`

## Constants

### Addresses

Constant

Description

Address

`NFT_PRECOMPILE_ADDRESS: string`

Precompile address for `nft` pallet

`0x00000000000000000000000000000000000006b9`

`SFT_PRECOMPILE_ADDRESS: string`

Precompile address for `sft` pallet

`0x00000000000000000000000000000000000006c3`

`FUTUREPASS_REGISTRAR_PRECOMPILE_ADDRESS: string`

Precompile address for `futurepass` pallet

`0x000000000000000000000000000000000000FFFF`

`PEG_PRECOMPILE_ADDRESS: string`

Precompile address for `erc20Peg` and `nftPeg` pallets

`0x0000000000000000000000000000000000000793`

`DEX_PRECOMPILE_ADDRESS: string`

Precompile address for `dex` pallet

`0x000000000000000000000000000000000000DdDD`

`FEE_PROXY_PRECOMPILE_ADDRESS`

Precompile address for `feeProxy` pallet

`0x00000000000000000000000000000000000004BB`

<Info>
  **Info**: The precompile addresses are identical across all networks, including Mainnet, Devnet, and Porcini.
</Info>

### ABIs

Constant

Description

`ERC20_ABI: string[]`

ABI for the ERC-20 standard

`ERC721_ABI: string[]`

ABI for the ERC-721 standard

`ERC1155_ABI: string[]`

ABI for the ERC-1155 standard

`NFT_PRECOMPILE_ABI: string[]`

ABI for the `nft` pallet

`SFT_PRECOMPILE_ABI: string[]`

ABI for the `sft` pallet

`FEE_PROXY_PRECOMPILE_ABI: string[]`

ABI for `feeProxy` pallet

`FUTUREPASS_PRECOMPILE_ABI: string[]`

ABI for `futurepass` account

`FUTUREPASS_REGISTRAR_PRECOMPILE_ABI: string[]`

ABI for `futurepass` pallet

`DEX_PRECOMPILE_ABI: string[]`

ABI for the `dex` pallet

<Info>
  **Note**: All exported ABIs are in human-readable format.
</Info>
