Skip to Content
API ReferenceAvail node API referenceCreate a new App ID on Avail DA

App Ids are core to the dev experience on Avail DA, and we highly recommend you understand how they work before you start working with them. You can check out our docs for the same.

Create a new App ID on Avail DA

On-chain name of extrinsic: dataAvailability_createApplicationKey

Parameters

parametertypeoptionaldescription
keystringfalsename of the application key
waitForWaitForfalsewait for block inclusion or finalization
accountKeyringPairfalseaccount that will send and sign the transaction
optionsSignerOptionstrueused to overwrite existing signer options

Returns

On failure, a reason of failure is returned. On Success, ApplicationKeyCreated event, transaction hash and block hash is returned.

Minimal Example

  1. You will need to set up the dev environment required to run this example. For instructions, check out our docs here.

  2. If you’re sending an extrinsic (i.e conducting a transaction) you will need to replace the demo seed phrase with your own seed phrase. The rest of the code should work as is.

  1. Inside your-file-name.ts, add the following code:
avail-js
import * as dotenv from 'dotenv'; import { Account, SDK, Pallets } from 'avail-js-sdk'; dotenv.config(); export async function createApplicationKey() { // Initialize SDK with Turing endpoint const sdk = await SDK.New('wss://turing-rpc.avail.so/ws'); // Create account from seed in .env file const seed = process.env.SEED; if (!seed) { throw new Error("SEED environment variable is not set"); } // Create account from seed const account = Account.new(seed); console.log("Account Address: ", account.address); // Use a fixed key string const key = "my Application Key Name"; // Create application key transaction const tx = sdk.tx.dataAvailability.createApplicationKey(key); console.log("Submitting transaction to create application key..."); // Execute and wait for inclusion const res = await tx.executeWaitForInclusion(account, {}); // Check if transaction was successful const isOk = res.isSuccessful(); if (isOk === undefined) { throw new Error("Cannot check if transaction was successful"); } else if (!isOk) { throw new Error("Transaction failed"); } // Extract event data if (res.events === undefined) throw new Error("No events found"); const event = res.events.findFirst(Pallets.DataAvailabilityEvents.ApplicationKeyCreated); if (event === undefined) throw new Error("ApplicationKeyCreated event not found"); const appId = event.id; console.log(`Application created successfully:`); console.log(`Owner: ${event.owner}`); console.log(`Key: ${event.keyToString()}`); console.log(`App Id: ${appId}`); console.log(`Transaction Hash: ${res.txHash}`); process.exit(0); } // Execute the function createApplicationKey()
  1. Run the code using:
terminal
ts-node your-file-name.ts
Last updated on