# Solana Dev

Use when user asks to "build a Solana dapp", "write an Anchor program", "create a...

- Repository: https://github.com/internet-court/internet-court-skill (7050 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add internet-court/internet-court-skill --skill solana-dev -g -a claude-code -y`
Codex: `npx skills add internet-court/internet-court-skill --skill solana-dev -g -a codex -y`
Cursor: `npx skills add internet-court/internet-court-skill --skill solana-dev -g -a cursor -y`
Gemini CLI: `npx skills add internet-court/internet-court-skill --skill solana-dev -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add internet-court/internet-court-skill`

## Description

Use when user asks to "build a Solana dapp", "write an Anchor program", "create a token", "debug Solana errors", "set up wallet connection", "test my Solana program", "deploy to devnet", or "explain Solana concepts" (rent, accounts, PDAs, CPIs, etc.). Also use for quick on-chain lookups via public RPC + curl, "what's the balance of <wallet>", "look up transaction <sig>", "token balance for <account>", "check this address on mainnet/devnet". End-to-end Solana development playbook covering wallet connection, Anchor/Pinocchio programs, Codama client generation, Surfpool/LiteSVM/Mollusk testing, security checklists, and JSON-RPC curl lookups against public clusters. Prefers @solana/kit v7 plugin clients (createClient + .use()), wallet connection via @solana/kit-plugin-wallet + @solana/react, web3.js v3 (Kit internals, RC) as the migration target for legacy codebases, and Surfpool for local networks and integration testing.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Solana Development Skill (Kit-first)

## What this Skill is for
Use this Skill when the user asks for:
- Solana dApp UI work (React / Next.js)
- Wallet connection + signing flows
- Transaction building / sending / confirmation UX
- On-chain program development (Anchor or Pinocchio)
- Client SDK generation (typed program clients)
- Local testing (Surfpool, LiteSVM, Mollusk)
- Security hardening and audit-style reviews
- Confidential transfers (Token-2022 ZK extension)
- **Toolchain setup, version mismatches, GLIBC errors, dependency conflicts**
- **Upgrading Anchor/Solana CLI versions, migration between versions**
- **Migrating web3.js v1 code to web3.js v3 or Kit**

## Default stack decisions (opinionated)

1) **SDK: @solana/kit (v7+) first**
- Build clients with `createClient()` from `@solana/kit`, then `.use(...)` plugins:
  ```ts
  createClient()
    .use(signer(mySigner))
    .use(solanaRpc({ rpcUrl }));
  // or solanaLocalRpc / solanaDevnetRpc / solanaMainnetRpc from @solana/kit-plugin-rpc
  ```
- Default to `signer()` / `signerFromFile()` / `generatedSigner()` from
  `@solana/kit-plugin-signer`, they set both `payer` and `identity` to the same keypair (the
  common case). For fresh local/devnet signers, install the RPC/LiteSVM plugin after
  `generatedSigner()`, then fund with `airdropSigner(...)`. Reach for the role-specific variants
  (`payer()` + `identity()`) only when fees and authority must come from different keypairs.
- Use `@solana-program/*` program plugins (e.g., `tokenProgram()`) for fluent instruction APIs.
- Prefer Kit types (`Address`, `Signer`, transaction message APIs, codecs).

The rest: https://github.com/internet-court/internet-court-skill/blob/HEAD/vendored/solana/solana-dev/SKILL.md
