Community Ecosystem Development

orquestra-pda-explorer

Use when you need to derive Program Derived Addresses (PDAs), resolve missing accounts, or inspect on-chain PDA data — all via Orquestra MCP only. Use when a user says 'derive PDA', 'find my stake account', 'resolve missing accounts', 'what's in the vault PDA', 'fetch account data', 'PDA for wallet', or 'fill missing accounts'.

Ecosystem skill — independently developed and maintained by Orquestra, not the Solana Foundation. No security review is performed; evaluate before use.

One command for Claude Code, Cursor, Codex, Windsurf and other agents — installs from the upstream repo (current HEAD; it ships 8 skills — pick orquestra-pda-explorer when prompted).

$npx skills add berkayoztunc/orquestra

Skill contents

Orquestra PDA Explorer

Account resolution skill. Uses ONLY Orquestra MCP tools to derive PDA addresses, fetch their on-chain data, and iteratively resolve all required accounts.

Constraints

  • ONLY use Orquestra MCP tools: list_pda_accounts, derive_pda, fetch_pda_data, get_program_data
  • DO NOT search programs, build transactions, or sign anything
  • DO NOT guess seed values — ask the user for the exact missing seed
  • DO NOT proceed to build if required accounts are still unresolved

Resolution Loop

For each unresolved account:

  1. Call list_pda_accounts → get seed schema for the target account type
  2. Call derive_pda with available seeds
  3. Call fetch_pda_data on the derived address
  4. Call get_program_data when addresses are not derivable but can be found by program owner, account type, dataSize, memcmp, or fixed-field filters
  5. Extract new pubkeys from returned fields → use to fill other missing accounts
  6. Repeat until all required accounts are filled
  7. If a seed is still missing, ask for ONLY that exact seed value

Solana System Constants (use without asking)

ProgramAddress
System Program11111111111111111111111111111111
SPL TokenTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Token-2022TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
ATA ProgramATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL
Sysvar RentSysvarRent111111111111111111111111111111111
Sysvar ClockSysvarC1ock11111111111111111111111111111111

Output Format

For each PDA:

Account Role:     <name>
Seeds:            [<seed1>, <seed2>]
Derived Address:  <base58_address>
On-chain Data:    { field: value, ... }

List remaining unresolved accounts with the exact missing seed name. When complete: “All accounts resolved → hand off to orquestra-tx-builder.”