# CLV Accounts Binding

## Why need Account Binding

As explained in this [section](/intro-to-clv/what-is-clv-chain.md), CLV Parachain is a dual blockchain which support both EVM transactions as well as Polkadot like transactions.

Account binding only happens on CLV Parachain, you can bind your CLV address to a CLV EVM address. Once you bind the accounts,  you can use one account to interact with both EVM-based dApps as well as Substrate-based dApps.&#x20;

Here are the features of CLV accounts binding (suppose you have done the accounts binding, for example bind your CLV address: **5DyCG7icXFuq8WtLd7iLi3umczKf84SAvp7w7Rw44RFEU8Yf** with EVM address: **0xe6206C7f064c7d77C6d8e3eD8601c9AA435419cE**)

1. The above addresses will have the same balance. Other people can send CLV to any of the above account, and you can receive the CLV.  At the same time, you can send CLV to other people using any of the above account.
2. If you only have CLV in **0xe6206C7f064c7d77C6d8e3eD8601c9AA435419cE**,  you can't deploy or interact with CLV smart contract. Once you bind the account with a EVM address, you are able to deploy and interact with CLV smart contract.

## How to Bind the Account

1. Using CLV Wallet, the version should be above 1.0.3
2. Using the following sample code：

```javascript
const API = require("@polkadot/api")
const Web3 = require("web3")
const web3 = new Web3("https://rpc-2.clover.finance")
const cloverTypes = require('@clover-network/node-types')

const PUB_KEY = "0xe6206C7f064c7d77C6d8e3eD8601c9AA435419cE"
const PRIV_KEY = "0xa504b64992e478a6846670237a68ad89b6e42e90de0490273e28e74f084c03c8"
const CLOVER_SEEDS = "your 12 seed words"

async function run() {
    const wsProvider = new API.WsProvider('wss://api-2.clover.finance');
    const api = await API.ApiPromise.create({
        provider: wsProvider,
        types: cloverTypes
    });
    const keyring = new API.Keyring({ type: 'sr25519' });
    const alice = keyring.addFromUri(CLOVER_SEEDS);
    let nonce = await api.rpc.system.accountNextIndex(alice.address);
    web3.eth.accounts.wallet.add(PRIV_KEY);
    let signature = await web3.eth.sign(`clover evm:${web3.utils.bytesToHex(alice.publicKey).slice(2)}`, PUB_KEY);

    await api.tx.evmAccounts
        .claimAccount(PUB_KEY, web3.utils.hexToBytes(signature))
        .signAndSend(alice, {
            nonce,
        }, ({ events = [], status }) => {
            if (status.isFinalized) {
                console.log(`${alice.address} has bound with EVM address: ${PUB_KEY}`)
            }
        });
}

run()
```

�


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clv.org/clv-chain-developer-guide/technical-documentations/clover-evm-bind.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
