create

Call Re-added v210 → v323, v326 → current #2

Deploys a new smart contract using CREATE opcode logic.

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: developers

The Big Picture

Contract deployment creates permanent on-chain code at a deterministic address.

Use Cases

  • Deploy ERC-20 tokens
  • Deploy DeFi protocols
  • Deploy NFT contracts

From Chain Metadata

Issue an EVM create operation. This is similar to a contract creation transaction in Ethereum.

Input Parameters

#NameTypeDescription
0
source
H160 source (H160)
1
init
Vec<u8> Vecinit (Vec<u8>)
2
value
U256 value (U256)
3
gas_limit
u64 gas_limit (u64)
4
max_fee_per_gas
U256 max_fee_per_gas (U256)
5
max_priority_fee_per_gas
Option max_priority_fee_per_gas (Option)
6
nonce
Option nonce (Option)
7
access_list
Vec<(H160, Vec<H256>)> Vecaccess_list (Vec<(H160, Vec<H256>)>)
8
authorization_list
Vec<AuthorizationListItem> Vecauthorization_list (Vec<AuthorizationListItem>)

Permissions

Origin
Unknown
Required Role

Permission data inferred from metadata. May be incomplete.

Requirements

  • Valid init code
  • Sufficient gas
  • Whitelisted if required

Effects

Postconditions

  • Contract at deterministic address
  • AccountCodes updated

Side Effects

  • Address derived from sender + nonce

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Build create call
const source = 0 as any /* H160 */;
const init = 0;
const value = 0 as any /* U256 */;
const gas_limit = 0;
const max_fee_per_gas = 0 as any /* U256 */;
const max_priority_fee_per_gas = 0 as any /* Option */;
const nonce = 0 as any /* Option */;
const access_list = 0 as any /* Vec<(H160, Vec<H256>)> */;
const authorization_list = 0 as any /* Vec<AuthorizationListItem> */;

const call = api.tx[stringCamelCase("EVM")][stringCamelCase("create")](
  source,
  init,
  value,
  gas_limit,
  max_fee_per_gas,
  max_priority_fee_per_gas,
  nonce,
  access_list,
  authorization_list
);

Version History

v210 block 4,345,556 8 args
v326 block 6,608,228 9 args Current

Runtime Info

Pallet Index
22
Call Index
2
First Version
v210
Current Version
v393