The Anchor TS Client
Use Anchor's TypeScript Program for RPC calls when maintaining legacy stacks.
Search across all documentation pages
Use Anchor's TypeScript Program for RPC calls when maintaining legacy stacks.
npm install @coral-xyz/anchor@0.32.1import { Program, AnchorProvider } from "@coral-xyz/anchor";
import idl from "./target/idl/my_program.json";When to reach for this:
.methods. fluent API.import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor";
import { createSolanaRpc } from "@solana/kit";
import idl from "../target/idl/my_program.json";
// Bridge: use kit RPC where possible; Anchor Provider for legacy Program
const rpc = createSolanaRpc(process.env.RPC_URL!);
// const provider = new AnchorProvider(connection, wallet, {});
// const program = new Program(idl as MyIdl, provider);
// await program.methods.increment().accounts({ counter }).rpc();What this demonstrates:
anchor build (0.32.1) drives account layouts..methods builds and sends transactions in one call.| Alternative | Use When | Don't Use When |
|---|---|---|
| Codama + kit | Greenfield clients | Frozen legacy code |
| Raw kit + codecs | Native programs | Anchor-heavy teams |
Run anchor build; point Codama at target/idl JSON.
Every on-chain interface change in CI.
Codama renders @solana/kit native functions.
Optional sugar atop kit.
Import generated clients in client components for writes.
Surfpool + devnet integration tests.
Do not mix with generated kit clients.
One Codama config per program or monorepo workspace.
Use generated decoders with getAccountInfo.
Map program error codes from IDL metadata.
Stack versions: This page was written for Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, and LiteSVM 0.6.x.
Reviewed by Chris St. John·Last updated Jul 16, 2026