🆔Associate Address with web3name

Associating your Decentralised Identifier (DID) on KILT Network with any of your other web3 accounts:

To create your DID in KILT network you can follow these instructions.

To claim your web3name on the KILT network you can follow these instructions.

There is currently no user-friendly interface for linking account information and web3name alias, work on them is ongoing hopefully they will appear soon. Now in order to perform this activity you will need:

To associate web3name with your account you should follow a few steps:

  1. Create a file with your accounts based on specification. Example of that file:

{
"polkadot:91b171bb158e2d3848fa23a9f1c25182/slip44:354": [
    {
      "account": "121eb2BdXbD2AbSno4qSpiGKL28TNGngzvfvLXQtN6qCmG7N",
      "description": "Polkadot Address"
    }
  ],
"polkadot:fc41b9bd8ef8fe53d58c7ea67c794c7e/slip44:787": [
    {
      "account": "251TW6p8iJCcg8Q2umib8QV9sfMAtVecX3o7vMqmMdzLYif7",
      "description": "Acala Address"
    }
  ]
}

Please ensure to validate your JSON before submitting it!

  1. Publish that file somewhere like GitHub, IPFS, etc, store the link it will need in next step

  2. Generate hash for this file (refer to this repo for more details)

    • Clone the repo on your local machine

      git clone git@github.com:nova-wallet/w3n_hash.git
      cd web3n_hash
    • Install dependancies, ensure that you have node.js installed.

      npm install
    • Change path to file in index.ts with yours:

      main("https://url/to/yours/file")
    • Run the app

      npm start
    • As a result you will get a file content and the hash which will be used in next steps as serviceEndpoint.id Example of script output:

  3. Now we need to go to the polkadot.js apps and generate encoded data for another script which will operate directly with our DID.

    • In order to do that open polkadot.js apps and select KILT network

    • Open Developer > Extrinsics menu and select did.addServiceEndpoint()

    • Put our hash from previous operations as an id

    • serviceEndpoint.serviceTypes specify as KiltTransferAssetRecipientV1

    • In serviceEndpoints.urls put url to your accounts from previous steps

    • Now you can copy encoded call data, as shown on the screen bellow, the signer account does not matter. Save it it will need in next steps.

  1. Now we are ready to generate a call itself, which associate your web3name with accounts from file.

  • Clone the repo on your local machine

    git clone git@github.com:KILTprotocol/kilt-did-utilities.git
    cd kilt-did-utilities
  • Install dependencies

    yarn install
  • Export all necessary parameters

    // all this parameters for example
    export SUBMITTER_ADDRESS="4oeAGb7uYHmjJH4X7drV4AfEfUxCLMkzciAH3WYGoPKY5G93"
    export WS_ADDRESS="wss://spiritnet.kilt.io"
    export ENCODED_CALL="0×40084554c374137436461674248754a6d75572d375341697864556d37614c63702d774f4b6d50515a626d556467733d04704696c745472616736665724173736574526563697069656745631046d0168747470733a22726177267697468756275736572636f674656742636f6d2ÂŖ665668617226e676612d7574696c732f6d61737465722746573747326461746126173736574735776562336616d657326a736f6e"
    export DID_URI="did:kilt:409ngk66UATEdjxs9xUWYzHPrJMHWCZ6eATfJZHRuYjjEjjS"

    You can find all information about that parameters in repo itself, here a short description:

    SUBMITTER_ADDRESS: The KILT address (encoded with the KILT network prefix 38) that is authorized to submit the transaction.

    ENCODED_CALL: The HEX-encoded call to DID-sign.

    DID_URI: The URI of the DID authorizing the operation

  • Run script

    yarn run call-authorize
  • As a result we will get an encoded DID-authorized operation, example bellow, save it for future step.

  1. Now we need to return to the polkadot.js app, switch tab to Decode and put encoded operation from previous step, as it shown on a screen:

  2. Switch to Submission tab and sign it from SUBMITTER_ADDRESS

  3. If everything was OK, you can find all accounts from file associated with your web3name alias in the Nova Wallet.

Last updated