Skip to main content

Constants & PDAs

Exported constants and PDA derivation functions.

Constants

import {
PACKET_PROGRAM_ID,
PACKET_LOOK_UP_TABLE,
WSOL_ID,
SYSTEM_PROGRAM_ID,
TOKEN_PROGRAM_ID,
TOKEN_2022_PROGRAM_ID,
ASSOCIATED_TOKEN_PROGRAM_ID,
NO_INBOX,
SEEDS,
TokenProgramTypeToProgramId,
} from "xpkt-sdk";
ConstantTypeDescription
PACKET_PROGRAM_IDPublicKeyOn-chain program address
PACKET_LOOK_UP_TABLEPublicKeyAddress lookup table used in transactions
WSOL_IDPublicKeyWrapped SOL mint address
SYSTEM_PROGRAM_IDPublicKeySolana system program
TOKEN_PROGRAM_IDPublicKeySPL Token program
TOKEN_2022_PROGRAM_IDPublicKeyToken-2022 program
ASSOCIATED_TOKEN_PROGRAM_IDPublicKeyAssociated Token Account program
NO_INBOXBNSentinel value indicating a thread has no associated inbox
TokenProgramTypeToProgramIdRecord<TokenProgramType, PublicKey>Maps TokenProgramType enum to program address

SEEDS

PDA seed strings used by the program.

const SEEDS = {
user: "user",
inbox: "inbox",
inboxBody: "inbox_body",
inboxMetadata: "inbox-metadata",
inboxArchive: "inbox_archive",
thread: "thread",
message: "msg",
vault: "packet_vault",
key: "key",
};

PDAs

All PDA derivation functions are available on the PacketPDAs export:

import { PacketPDAs } from "xpkt-sdk";
MethodParametersDescription
PacketPDAs.user(owner, programId?)PublicKeyUser account PDA
PacketPDAs.inbox(id, owner, programId?)BN, PublicKeyInbox PDA
PacketPDAs.inboxBody(inbox, programId?)PublicKeyInbox body (live page) PDA
PacketPDAs.inboxMetadata(inbox, programId?)PublicKeyInbox metadata PDA
PacketPDAs.thread(threadId, programId?)numberThread PDA
PacketPDAs.message(threadId, msgSeq, programId?)number, numberMessage PDA
PacketPDAs.vault(programId?)Protocol vault PDA
PacketPDAs.key(owner, programId?)PublicKeyUser key account PDA
PacketPDAs.ata(mint, owner, tokenProgram?)PublicKey, PublicKeyAssociated token account address

Example

import { PacketPDAs, BN } from "xpkt-sdk";

const inboxAddress = PacketPDAs.inbox(new BN(1), ownerPublicKey);
const threadAddress = PacketPDAs.thread(42);
const messageAddress = PacketPDAs.message(42, 1);
const ata = PacketPDAs.ata(usdcMint, ownerPublicKey);

programId defaults to PACKET_PROGRAM_ID in all functions and can be omitted unless you're targeting a custom deployment.