Get Ledger History

The ledger history is the record of how the ledger state came to be. It is represented by the set of vote staples which have been applied to the ledger.

This is expressed in two different ways in the KeetaNet SDK

These two differ in that the history method returns all vote staples which affected an account, even if they were not issued by the account -- for example if a transfer was made to the account, the history method would return the vote staple which included the transfer, but the chain method would not because it was not issued by the account.

Additionally there is a method to filter a list of vote staples to a list of operations which are relevant to a specific account. This is useful because the list of operations in a vote staple may include changes that are uninteresting from an account perspective.

History via predefined seed

The script above demonstrates how to connect to the KeetaNet testnet and retrieve the account history using a predefined demo seed.

import * as KeetaNet from '@keetanetwork/keetanet-client';
import util from 'node:util';

// Demo seed — Replace with real seed
const DEMO_SEED = 'D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0D3M0';

async function main() {
  // Create an account from the seed (index 0)
  const account = KeetaNet.lib.Account.fromSeed(DEMO_SEED, 0);

  // Connect to KeetaNet testnet using the account
  const client = KeetaNet.UserClient.fromNetwork('test', account);

  // Fetch the account history
  const history = await client.history();

  // Print the account history in readable format
  console.log(
    '📜 Account history:',
    util.inspect(KeetaNet.lib.Utils.Helper.debugPrintableObject(history), {
      depth: 10,
      colors: true
    })
  );
}

main().catch((err) => {
  console.error('❌ Error:', err);
  process.exit(1);
});

History of a public account

To retrieve the transaction history using a public Keeta address, you can use the provided script that demonstrates connecting to the KeetaNet testnet. By substituting a valid KeetaNet public key string, the script fetches the account's transaction history.

import * as KeetaNet from '@keetanetwork/keetanet-client';
import util from 'node:util';

async function main() {
  // Replace this with any valid KeetaNet public key string
  const publicKeyString = 'keeta_aabrrk5663nikbzhc3vr24nvwabyseqvlbf4ritnsoca2ujfurk6jqprplnm66y';

  // Create an account object from the public key string
  const account = KeetaNet.lib.Account.fromPublicKeyString(publicKeyString);

  // Connect to the KeetaNet testnet
  const client = KeetaNet.UserClient.fromNetwork('test', account);

  // Fetch the account's transaction history
  const history = await client.history();

  // Display the history in a readable format
  console.log(
    '📜 Account history for', publicKeyString,
    util.inspect(KeetaNet.lib.Utils.Helper.debugPrintableObject(history), {
      depth: 10,
      colors: true
    })
  );
}

main().catch((err) => {
  console.error('❌ Error:', err);
  process.exit(1);
});

Last updated