Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vaulkyrie.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Vaulkyrie has TypeScript SDK code in the browser wallet and a package workspace at packages/vaulkyrie-sdk. The package is named @vaulkyrie/sdk and is prepared for local builds, local packing, and eventual npm publication.
Until the package is published and versioned on npm, use local workspace linking or local package tarballs only. Do not treat npm install @vaulkyrie/sdk as a live public install path until the npm package exists.

Current exports

packages/vaulkyrie-sdk/src/index.ts exports:
  • constants
  • types
  • pda
  • instructions
  • accounts
  • errors
  • VaulkyrieClient

What it can do today

CapabilitySource
PDA derivationpackages/vaulkyrie-sdk/src/pda.ts
Instruction builderspackages/vaulkyrie-sdk/src/instructions.ts
Account decoderspackages/vaulkyrie-sdk/src/accounts.ts
Error parsingpackages/vaulkyrie-sdk/src/errors.ts
Account fetch helperspackages/vaulkyrie-sdk/src/client.ts
Spend binding hashespackages/vaulkyrie-sdk/src/spendBindings.ts

Builder coverage

The internal TS SDK currently includes builders for:
  • createInitVaultInstruction
  • createInitAuthorityInstruction
  • createInitPqcWalletInstruction
  • createAdvancePqcWalletInstruction
  • createSetVaultStatusInstruction
  • createInitSpendOrchestrationInstruction
  • createCommitSpendOrchestrationInstruction
  • createCompleteSpendOrchestrationInstruction
  • createInitRecoveryInstruction
  • createCompleteRecoveryInstruction
It does not yet expose every Rust SDK builder. Missing public TS builders include authority proof chunking, staged authority rotation, winter authority advance, quantum vault split/close, spend failure, and authority migration.

Example: fetch a vault registry

import { Connection, PublicKey } from "@solana/web3.js";
import { VaulkyrieClient } from "@vaulkyrie/sdk";

const connection = new Connection("https://api.devnet.solana.com", "confirmed");
const client = new VaulkyrieClient(connection);

const vault = await client.getVaultRegistry(new PublicKey(walletPublicKey));

Example: initialize a PQC wallet instruction

import { PublicKey } from "@solana/web3.js";
import { createInitPqcWalletInstruction } from "@vaulkyrie/sdk";

const ix = createInitPqcWalletInstruction(
  new PublicKey(payer),
  new PublicKey(pqcWalletPda),
  {
    walletId,
    currentRoot,
    bump,
  },
);

Example: build spend orchestration bindings

import {
  buildSpendActionHash,
  buildSpendOrchestrationBindings,
  generateSpendSessionNonce,
} from "@vaulkyrie/sdk/spendBindings";

const sessionNonce = generateSpendSessionNonce();
const actionHash = await buildSpendActionHash({
  vaultId,
  recipient,
  amountAtomic: "1000000",
  tokenSymbol: "SOL",
  tokenMint: null,
  sessionNonce,
});

const bindings = await buildSpendOrchestrationBindings({
  actionHash,
  messageBytes,
  signerIds: [1, 2],
  threshold: 2,
  participantCount: 3,
  expirySlot: 123456n,
});

How developers will use it after publication

Once published to npm, the intended install command is:
npm install @vaulkyrie/sdk @solana/web3.js
Example import:
import { VaulkyrieClient, findPqcWalletPda } from "@vaulkyrie/sdk";
Before publication, local development can build and pack the workspace package:
npm install
npm run build:sdk
npm run pack:sdk
Then consume the generated local tarball or use a workspace dependency in a test application.

Should Vaulkyrie create a standalone TypeScript SDK?

Yes, if external developers are expected to integrate Vaulkyrie into their own codebases. Yes. The package folder now exists, but it should not be promoted as public-ready until builder parity, byte-level fixture tests, and npm release metadata are complete. Required implementation steps:
  1. Keep extension-independent SDK code in packages/vaulkyrie-sdk.
  2. Add fixtures that compare TypeScript instruction bytes against crates/vaulkyrie-sdk.
  3. Close builder parity gaps with the Rust SDK.
  4. Confirm package contents with npm pack -w @vaulkyrie/sdk --dry-run.
  5. Reserve or configure the @vaulkyrie npm organization.
  6. Publish only after tests and release review pass.

Current readiness

QuestionAnswer
Is there TS SDK code?Yes, in packages/vaulkyrie-sdk and mirrored in the extension source.
Is it published as npm package?Not yet. It is package-ready for local build/pack testing.
Is it complete against Rust SDK?No. It covers the browser’s current needs, not every builder.
Can docs include snippets?Yes, but npm install snippets should remain marked as future/public-release examples until publication.