Build
Client, tokens and data
Kit, tokens, NFTs, oracles, payments, credentials: which library for what.
| For | Use | Note |
|---|---|---|
| Talking to the chain from TypeScript | @solana/kit v8 (createClient().use(...)) |
Signers: @solana/kit-plugin-signer |
| Migrating old code | Isolate @solana/web3.js v1 in an adapter module |
So it does not leak through the whole app |
| Fungible tokens (USDC, a point, a credit) | SPL Token / Token-2022 + @solana/token-helpers |
On devnet: spl-token create-token |
| USDC on devnet | Circle's faucet or the devnet test USDC | Identify tokens by mint + token program, never by symbol: anyone can create a mint called USDC |
| NFTs and compressed NFTs | Metaplex Core (Umi) · Bubblegum | — |
| A typed client from your program | Codama over the IDL from anchor build |
Or Anchor's own client with the IDL: @coral-xyz/anchor on 0.32, @anchor-lang/core on 1.x |
| Prices and external data | Pyth, Switchboard | Do not write your own oracle |
| Payments and checkout | Solana Pay, Commerce Kit | Payment links, QR codes, components |
| Links that execute transactions | Actions and Blinks | A transaction you can share as a link |
| Verifiable credentials | Attestations (SAS) | Schemas + onchain credentials |
| Data and dashboards | solana.com/data |
Network, token and ecosystem metrics |
When reading transactions, always pass maxSupportedTransactionVersion: 1 (the integer, not the string). v1 transactions (SIMD-0385: 4,096 bytes, inline accounts instead of lookup tables): testnet since 1 Sep, mainnet on 15 Sep 2026. Before sending one, check that the cluster has the feature gate txv1aq4pp281K9um3tnPgkfX8UqtFT6wcVW3hNezGLL active with solana feature status; otherwise, v0 with Address Lookup Tables.