Role-based Account Key
AccountKeyRoleBased represents a role-based key. If an account has an AccountKeyRoleBased object and the transaction type is one except account update, the validation process is done according to each roles like below:
Import the @kaiachain/web3js-ext packages to add kaia features on web3
Define sender's address, private key and others role-based private keys
Set up the provider with the specified kaia Baobab testnet URL. A provider in web3js is a read-only abstraction to access the blockchain data.
Also, you can change the provider URL from baobab to allthatnode
Define a web3 instance using the provider
Create a sender's wallet with the transaction role private key and provider
Define a message to be signed and recovered
Sign the message with sender's wallet
Recover the address from signed message using web3.eth.accounts.recover
Recover the address from signed message using web3.klay.recoverFromMessage