Development account

Specifics of the development account (deposit, interacting with private contracts, how to transform own account)

Smart Contracts can only be deployed by an address with the developer role. Here is how you can enable that role on your account.


  1. A Polkadot Account Create with Polkadot.js

  2. An Ethereum Account Create with Metamask

  3. Some ACA or KAR in your Polkadot Account

Enable Contract Development

  1. Go to the Developer Section of the Polkadot App then select Extrinsics.

  2. Select the target account from the top dropdown

  3. Select evm from the extrinsic dropdown menu

  4. Select enableContractDevelopment() from the method/action dropdown

  5. Click Submit Transaction & Sign and Submit

Verify developer status

You can verify your or someone else's developer status by accessing a smart contract like in these examples:

pageWeb3.js usage examplepageEthers.js usage example

Bind Accounts

On Karura/Acala

binding evm and substrate accounts can be done easily on our Dapp UI:

for more details, checkout address binding on acala wiki.

On Mandala

There is no UI available for Mandala address binding, but we can still do this manually.

1) Create the signature of the claim on the EVM+ Playground

  1. Select the right account in Metamask

  2. Fill in:

    • Substrate address: you substrate address

    • Chain id: 595

    • Genesis hash: 0x3035b88c212be330a1a724c675d56d53a5016ec32af1790738832db0227ac54c

  3. Click Sign & copy the signature to the next step

2) Claim Account on the Developer Section of the Polkadot App

The ethAddress should be the same as your metamask wallet address that you used above to generate the signature.

  1. Select evmAcounts from the extrinsic dropdown menu

  2. Select claimAccount(ethAddress, ethSignature) from the method/action dropdown

  3. Fill in the ethAddress & ethSignature

  4. Click Submit Transaction

3) Confirm the bindings

  1. Select the Developer tab, then Chain state from the dropdown

  2. Select Storage and then evmAccounts from the state query dropdown

  3. Click the + button on the right

  4. Double check that the evmAccounts.evmAddresses is indeed the right one.


Last updated