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).
Drop the mirrored SKILL.md into your skills directory. Global (all projects):
Or scoped to the current project:
The skill is mirrored as plain markdown — tell your agent:
Or have the skills CLI generate a one-shot prompt (pipe it straight into your agent):
Or pull the raw file into a terminal session:
Copy the skill directory straight from GitHub:
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:
- Call
list_pda_accounts→ get seed schema for the target account type - Call
derive_pdawith available seeds - Call
fetch_pda_dataon the derived address - Call
get_program_datawhen addresses are not derivable but can be found by program owner, account type, dataSize, memcmp, or fixed-field filters - Extract new pubkeys from returned fields → use to fill other missing accounts
- Repeat until all required accounts are filled
- If a seed is still missing, ask for ONLY that exact seed value
Solana System Constants (use without asking)
| Program | Address |
|---|---|
| System Program | 11111111111111111111111111111111 |
| SPL Token | TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA |
| Token-2022 | TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb |
| ATA Program | ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL |
| Sysvar Rent | SysvarRent111111111111111111111111111111111 |
| Sysvar Clock | SysvarC1ock11111111111111111111111111111111 |
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.”