# Solana Wallet

> solana-wallet

- Skill: `nirholas/solana-wallet` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add nirholas/solana-wallet`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nirholas/solana-wallet/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: nirholas (https://skillmd.com/u/nirholas)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nirholas/solana-wallet

---

# solana-wallet

Generic Solana primitives. Provides the `ctx.wallet` contract that every signing
skill (pump-fun-trade, jupiter-swap, ...) consumes.

| Tool | Use it for |
|---|---|
| `getAddress` | Wallet pubkey |
| `getBalance` | SOL balance (self or any address) |
| `getSplBalances` | All SPL holdings |
| `transferSol` | Send SOL (capped by `maxTransferSol`) |
| `transferSpl` | Send any SPL token; auto-creates recipient ATA |
| `wrapSol` / `unwrapSol` | wSOL conversions |
| `getRecentSignatures` | Recent activity |

## Wallet contract

The host runtime injects `ctx.wallet` built via [api/_lib/solana-wallet.js](../../../api/_lib/solana-wallet.js):

```ts
{
  publicKey: PublicKey,
  signTransaction(tx): tx,           // Transaction | VersionedTransaction
  sendAndConfirm(tx, conn): string,  // returns signature
}
```

The wallet itself is recovered from an encrypted keypair stored on the agent
record (see `agent_identities.meta.encrypted_secret`). Never accepts keys via
tool args.

## Safety

- `transferSol` is capped by `manifest.config.maxTransferSol`.
- All write ops set a priority fee from `priorityFeeMicroLamports`.
- All write ops record to `ctx.memory` for the orchestrator to audit.

