Multisig Account Key
AccountKeyWeightedMultiSig is an account key type containing a threshold and WeightedPublicKeys which contains a list consisting of a public key and its weight.
In order for a transaction to be valid for an account associated with AccountKeyWeightedMultiSig, the following conditions should be satisfied: _ The weighted sum of the signed public keys should be larger than the threshold. _ The invalid signature should not be included in the transaction. * The number of signed public keys should be less than the number of weightedPublicKeys.
Import the @kaiachain/web3js-ext packages to add kaia features on web3
Define sender's address, private key and others weighted multi-sig private keys
Define receiver's address
Set up the provider with the specified kairos testnet URL. A provider in web3js is a read-only abstraction to access the blockchain data.
Also, you can change the provider URL from kairos to quicknode
Define a web3 instance using the provider
Create 3 different wallets with the weighted multi-sig private keys and provider
Create a value transfer transaction with type: TxType.ValueTransfer
Sign the transaction with first wallet
Sign the transaction with second wallet
Sign the transaction with the third wallet
Send the signed transaction to kaia network and print the receipt
Recover the address from signed transaction using web3.klay.recoverFromTransaction