Kiln docs

SOL - Tag a stake

Stakes can be taggued using the Solana memo feature to enable Kiln to distinguish your stakes on-chain.

Solana memo instruction

A Solana transaction is composed of multiple instructions, executed one after the other. Here is an example of instructions you can define with the standard Solana @solana/web3.js package.
const memoProgram = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
const memo = 'hello, world!';
const instructions = [
// 1 - add memo to transaction
new TransactionInstruction({
keys: [
pubkey: staker,
isSigner: true,
isWritable: true,
programId: new PublicKey(memoProgram),
data: Buffer.from(memo),
// 2 - create stake account
/** The account that will transfer lamports to the created account */
fromPubkey: publicKey,
/** Public key of the created account. Must be pre-calculated with PublicKey.createWithSeed() */
newAccountPubkey: stakeKey.publicKey,
/** Amount of lamports to transfer to the created account */
lamports: solToLamports(parsedStakeAmount),
/** Amount of space in bytes to allocate to the created account */
space: 200,
/** Public key of the program to assign as the owner of the created account */
// 3 - init stake account
stakePubkey: stakeKey.publicKey,
authorized: {
/** stake authority */
staker: publicKey,
/** withdraw authority */
withdrawer: publicKey,
lockup: {
/** Unix timestamp of lockup expiration */
unixTimestamp: 0,
/** Epoch of lockup expiration */
epoch: 0,
/** Lockup custodian authority */
custodian: new PublicKey('11111111111111111111111111111111'),
// 4 - delegate stake account
stakePubkey: stakeKey.publicKey,
authorizedPubkey: publicKey,
votePubkey: new PublicKey(SOL_VOTE_ACCOUNT_ADDRESS),
This transaction will be taggued with the hello, world! memo and will create, initialize and delegate a stake account.

What value should we use for the memo?

Kiln gives to each partner a fix value to include as memo in all the transactions they craft with the following format: kiln_{uuidv4}.
Last modified 5mo ago