API reference
Create a new nomination pool

Create a new nomination pool

On-chain name of method: nominationPools_create

Parameters

parametertypeoptionaldescription
amountBNfalseThe amount of funds to delegate to the pool
rootstringfalseThe account to set as [PoolRoles::root]
nominatorstringfalseThe account to set as the [PoolRoles::nominator]
bouncerstringfalseThe account to set as the [PoolRoles::bouncer]
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 for the failure is returned. On success, the function will return a object of type PoolCreateTxSuccess. This object contains the details of the transaction and your newly created nomination pool.

Minimal example

  1. You will need to set up the dev enviornment 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 { SDK, WaitFor, Keyring, BN } from "avail-js-sdk"
 
const main = async () => {
  const providerEndpoint = "wss://turing-rpc.avail.so/ws";
  const sdk = await SDK.New(providerEndpoint);
 
  const Alice = 'This is a random seed phrase please do not use it';
  const account = new Keyring({ type: "sr25519" }).addFromUri(Alice);
  const amount = new BN(10).pow(new BN(18)).mul(new BN(10000)) // 10_000 Avail
 
  const root: string = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" // Alice
  const nominator: string = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" // Alice
  const bouncer: string = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" // Alice
 
  const result = await sdk.tx.nominationPools.create(amount, root, nominator, bouncer, WaitFor.BlockInclusion, account)
  if (result.isErr) {
    console.log(result.reason)
    process.exit(1)
  }
 
  console.log(JSON.stringify(result, null, 4))
  process.exit()
}
main()
  1. Run the code using:
ts-node your-file-name.ts

Sample Response:
{
    "isErr": false,
	"event": {
        "depositor": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
        "poolId": "1"
    },
    "event2": {
        "member": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
        "poolId": "1",
        "bonded": "10000",
        "joined": "true"
    },
    "event": {
        "key": "0x4d79417765736f6d654b6579",
        "owner": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
        "id": "10"
    },
    "events": [...],
    "txHash": "0x5ae9edbd2a2da96eeffc14cf9050d711082890fa6bfb8749ad2c4947565f3bd2",
    "txIndex": 1,
    "blockHash": "0x152338c1b0696d12664cf3d4c159af3d54beca151ba1ea8b00989a66dc8050b0",
    "blockNumber": 1
}