Solana DocumentationSolana SDKsOfficial SDKs

Rust SDK for Solana

Client Crates

CrateDescriptionDocsGitHub
solana-sdkCore SDKViewSource
solana-clientInteract with Solana via RPCViewSource
solana-commitment-configTransaction commitment level configurationViewSource

The solana-sdk crate is composed of the following component crates, which can be used independently:

CrateDescriptionDocsGitHub
solana-accountSolana Account typeViewSource
solana-epoch-infoInformation about a Solana epochViewSource
solana-epoch-rewards-hasherSolana epoch rewards hasherViewSource
solana-fee-structureSolana fee structuresViewSource
solana-inflationConfiguration for Solana network inflationViewSource
solana-messageSolana transaction message typesViewSource
solana-programSolana ProgramViewSource
solana-program-memoryBasic low-level memory operations for SolanaViewSource
solana-pubkeySolana account addressesViewSource
solana-sanitizeSolana Message SanitizationViewSource
solana-sdk-idsSolana SDK IDsViewSource
solana-sdk-macroSolana SDK MacroViewSource
solana-serdeSolana serde helpersViewSource
solana-serde-varintSolana definitions for integers that serialize to variable sizeViewSource
solana-short-vecSolana compact serde-encoding of vectors with small lengthViewSource
solana-time-utilsstd::time utilities for SolanaViewSource
solana-keypairConcrete implementation of a Solana SignerViewSource
solana-offchain-messageSolana offchain message signingViewSource
solana-presignerA Solana Signer implementation representing an externally-constructed SignatureViewSource
solana-seed-derivableSolana trait defining the interface by which keys are derivedViewSource
solana-seed-phraseSolana functions for generating keypairs from seed phrasesViewSource
solana-shred-versionCalculation of shred versionsViewSource
solana-signatureSolana 64-byte signature typeViewSource
solana-signerAbstractions for Solana transaction signersViewSource
solana-transactionSolana transaction-typesViewSource
solana-transaction-errorSolana TransactionError typeViewSource

Program Crates

Use solana-program to build on-chain programs.

CrateDescriptionDocsGitHub
solana-programBuild on-chain programsViewSource

Pinocchio is a zero-dependency library to create Solana programs in Rust and can be used as a replacement for solana-program to write on-chain programs.

CrateDescriptionDocsGitHub
pinocchioZero-dependency on-chain programsViewSource

Pinocchio is still in development and will likely have breaking changes in the near future.

Pinocchio includes program-specific crates for interacting with Solana programs:

CrateDescriptionDocsGitHub
pinocchio-systemInteract with System programViewSource
pinocchio-tokenInteract with Token programViewSource
pinocchio-token-2022Interact with Token-2022 programViewSource
pinocchio-associated-token-accountInteract with Associated Token programViewSource
pinocchio-memoInteract with Memo programViewSource

Interface Crates

CrateDescriptionDocsGitHub
solana-system-interfaceInteract with System programViewSource
spl-token-interfaceInteract with Token programViewSource
spl-token-2022-interfaceInteract with Token-2022 programViewSource
spl-associated-token-account-interfaceInteract with Associated Token programViewSource
solana-compute-budget-interfaceInteract with Compute Budget programViewSource
spl-memo-interfaceInteract with Memo programViewSource
spl-token-metadata-interfaceInteract with Token Metadata extensionViewSource
spl-token-group-interfaceInteract with Token Group extensionViewSource

Signing & Key Management

For production backend signing across multiple key management backends:

CrateDescriptionDocsGitHub
solana-keychainUnified signing: Memory, Vault, AWS KMS, Privy, Turnkey, Fireblocks, CDP, Dfns, ParaCrateSource

Use feature flags to include only the backends you need. See the Adding Signers guide to integrate additional key management services.

Is this page helpful?

Table of Contents

Edit Page

Managed by

© 2026 Solana Foundation.
All rights reserved.
Get connected