Skip to main content

Value Transfer Memo

TxTypeValueTransferMemo is used when a user wants to send KAIA with a specific message.

Import the web3 and @kaiachain/web3js-ext packages to add kaia features on web3

Define sender, receiver address and sender private key

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 default provider. For example, using the alchemy provider.

Create a KlaytnWeb3 instance using the provider

Define the transaction object.

Sign the transaction with the sender's account.

Send the signed transaction to the kaia network.

TxTypeValueTransferMemo.js

const { KlaytnWeb3, TxType, toPeb } = require("@kaiachain/web3js-ext");
const { Web3 } = require("web3");
const recieverAddr = "0xc40b6909eb7085590e1c26cb3becc25368e249e9";
const senderAddr = "0xa2a8854b1802d8cd5de631e690817c253d6a9153";
const senderPriv = "0x0e4ca6d38096ad99324de0dde108587e5d7c600165ae4cd6c2462c597458c2b8";
async function main() {
const provider = new Web3.providers.HttpProvider("https://public-en-kairos.node.kaia.io");
const web3 = new KlaytnWeb3(provider);
const senderAccount = web3.eth.accounts.privateKeyToAccount(senderPriv);
const tx = {
type: TxType.ValueTransferMemo,
from: senderAddr,
to: recieverAddr,
value: toPeb("0.01"),
gasLimit: 50000,
data: "0x1234567890",
};
const signResult = await senderAccount.signTransaction(tx);
console.log("rawTx", signResult.rawTransaction);
const receipt = await web3.eth.sendSignedTransaction(signResult.rawTransaction);
console.log("receipt", receipt);
}
main();

output

❯ node TxTypeValueTransferMemo.js
signedTx 0x237f8d5598bb5235ba87b0e9fc8ded203c6dd270cc71f1add0ae47c63d13da5d
receipt {
blockHash: '0x90b6753c8fa1ee401775c57974318bb6c0746834170f4d0a132b8a9d10fb37f5',
blockNumber: 148742510n,
cumulativeGasUsed: 21500n,
effectiveGasPrice: 25000000000n,
from: '0xa2a8854b1802d8cd5de631e690817c253d6a9153',
gasUsed: 21500n,
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
status: 1n,
to: '0xc40b6909eb7085590e1c26cb3becc25368e249e9',
transactionHash: '0x237f8d5598bb5235ba87b0e9fc8ded203c6dd270cc71f1add0ae47c63d13da5d',
transactionIndex: 0n,
type: 0n
}