Plugins
Misc Plugin
Utility functions and helper methods for Solana development
Overview
The Misc Plugin provides essential utility functions including transaction monitoring, account management, data parsing, and other helper methods that don't fit into specific categories.
Installation
npm install @solana-agent-kit/plugin-miscTransaction Utilities
getTransaction()
Fetch detailed transaction information by signature.
import { getTransaction } from '@solana-agent-kit/plugin-misc';
const tx = await getTransaction({
signature: 'TRANSACTION_SIGNATURE'
});
console.log(`Status: ${tx.meta.err ? 'Failed' : 'Success'}`);
console.log(`Fee: ${tx.meta.fee} lamports`);confirmTransaction()
Wait for transaction confirmation with timeout.
import { confirmTransaction } from '@solana-agent-kit/plugin-misc';
const confirmed = await confirmTransaction({
signature: 'TRANSACTION_SIGNATURE',
commitment: 'confirmed',
timeout: 60000 // 60 seconds
});getRecentTransactions()
Get recent transactions for an address.
import { getRecentTransactions } from '@solana-agent-kit/plugin-misc';
const txs = await getRecentTransactions({
address: 'WALLET_ADDRESS',
limit: 10
});Account Management
getAccountInfo()
Fetch detailed account information.
import { getAccountInfo } from '@solana-agent-kit/plugin-misc';
const account = await getAccountInfo({
address: 'ACCOUNT_ADDRESS'
});
console.log(`Owner: ${account.owner.toBase58()}`);
console.log(`Lamports: ${account.lamports}`);getMultipleAccounts()
Fetch multiple accounts in a single request.
import { getMultipleAccounts } from '@solana-agent-kit/plugin-misc';
const accounts = await getMultipleAccounts({
addresses: ['ADDRESS_1', 'ADDRESS_2', 'ADDRESS_3']
});findProgramAddresses()
Derive program-derived addresses (PDAs).
import { findProgramAddress } from '@solana-agent-kit/plugin-misc';
const [pda, bump] = await findProgramAddress({
seeds: [Buffer.from('seed1'), publicKey.toBuffer()],
programId: 'PROGRAM_ID'
});Data Parsing
parseTransaction()
Parse and decode transaction data into human-readable format.
import { parseTransaction } from '@solana-agent-kit/plugin-misc';
const parsed = await parseTransaction({
transaction: txData
});
console.log(`Type: ${parsed.type}`);
console.log(`Instructions: ${parsed.instructions.length}`);decodeAccountData()
Decode account data based on program type.
import { decodeAccountData } from '@solana-agent-kit/plugin-misc';
const decoded = await decodeAccountData({
data: accountData,
programId: 'PROGRAM_ID'
});Network Utilities
getClusterInfo()
Get information about the current cluster.
import { getClusterInfo } from '@solana-agent-kit/plugin-misc';
const info = await getClusterInfo();
console.log(`Epoch: ${info.epoch}`);
console.log(`Slot: ${info.absoluteSlot}`);
console.log(`Block Height: ${info.blockHeight}`);airdrop()
Request SOL airdrop on devnet/testnet.
import { airdrop } from '@solana-agent-kit/plugin-misc';
await airdrop({
address: 'WALLET_ADDRESS',
amount: 1000000000 // 1 SOL
});Format Converters
lamportsToSOL()
Convert lamports to SOL.
import { lamportsToSOL } from '@solana-agent-kit/plugin-misc';
const sol = lamportsToSOL(1000000000); // Returns 1.0solToLamports()
Convert SOL to lamports.
import { solToLamports } from '@solana-agent-kit/plugin-misc';
const lamports = solToLamports(1.5); // Returns 1500000000shortenAddress()
Shorten wallet addresses for display.
import { shortenAddress } from '@solana-agent-kit/plugin-misc';
const short = shortenAddress('7xKXY...'); // Returns '7xKX...Y123'Error Handling
parseError()
Parse Solana errors into readable messages.
import { parseError } from '@solana-agent-kit/plugin-misc';
try {
// Some Solana operation
} catch (error) {
const message = parseError(error);
console.error(`Error: ${message}`);
}Best Practices
- • Always handle transaction confirmation timeouts
- • Use commitment levels appropriately (finalized for critical ops)
- • Cache account data when possible to reduce RPC calls
- • Implement retry logic for network failures
- • Validate addresses before making requests
- • Use batch requests for multiple accounts
- • Monitor RPC rate limits
On this page
