Crate solana_sdk
source ·Expand description
The Solana host and client SDK.
This is the base library for all off-chain programs that interact with
Solana or otherwise operate on Solana data structures. On-chain programs
instead use the solana-program crate, the modules of which are
re-exported by this crate, like the relationship between the Rust
core and std crates. As much of the functionality of this crate is
provided by solana-program, see that crate’s documentation for an
overview.
Many of the modules in this crate are primarily of use to the Solana runtime
itself. Additional crates provide capabilities built on solana-sdk, and
many programs will need to link to those crates as well, particularly for
clients communicating with Solana nodes over RPC.
Such crates include:
solana-client- For interacting with a Solana node via the JSON-RPC API.solana-cli-config- Loading and saving the Solana CLI configuration file.solana-clap-utils- Routines for setting up the CLI usingclap, as used by the Solana CLI. Includes functions for loading all types of signers supported by the CLI.
Re-exports
Modules
- The Solana
Accounttype. - Account information.
 - Useful extras for
Accountstate. - The definition of address lookup table accounts.
 - Hashing with the blake3 hash function.
 - Utilities for the borsh serialization format.
 - Utilities for the borsh serialization format, version 0.9.
 - Utilities for the borsh serialization format, version 0.10.
 - The latest BPF loader native program.
 - The original and now deprecated Solana BPF loader.
 - An upgradeable BPF loader native program.
 - Defines traits for blocking (synchronous) and non-blocking (asynchronous) communication with a Solana server as well a a trait that encompasses both.
 - Information about the network’s clock, ticks, slots, etc.
 - Definitions of commitment levels.
 - The compute budget native program.
 - Debug-formatting of account data.
 - Converting custom error codes to enums.
 - BIP-44 derivation paths.
 - Serde helpers.
 - Instructions for the ed25519 native program.
 - The Rust-based BPF program entrypoint supported by the latest BPF loader.
 - The Rust-based BPF program entrypoint supported by the original BPF loader.
 - Information about the current epoch.
 - Configuration for epochs and slots.
 - Used by validators to run events on exit.
 - Methods for working with
Featureaccounts. - Collection of all runtime features.
 - Fee structures.
 - Calculation of transaction fees.
 - The chain’s genesis config.
 - The list of slot boundaries at which a hard fork should occur.
 - A designated address for burning lamports.
 - configuration for network inflation
 - Types for directing the execution of Solana programs.
 - Hashing with the keccak (SHA-3) hash function.
 - Defines the
LamportsErrortype. - Instructions for the non-upgradable BPF loader.
 - Instructions for the upgradable BPF loader.
 - The v3 built-in loader program.
 - Instructions for the SBF loader.
 - Sequences of
Instructions executed within a single transaction. - The native loader native program.
 - Definitions for the native SOL token and its fractional lamports.
 - Durable transaction nonces.
 - Functions related to nonce accounts.
 - Off-chain message container for storing non-transaction messages.
 - The definition of a Solana network packet.
 - Definitions of Solana’s proof of history.
 - Solana precompiled programs.
 - Cross-program invocation.
 - The
ProgramErrortype and related definitions. - Basic low-level memory operations.
 - A C representation of Rust’s
Option, used across the FFI boundary for Solana program interfaces. - The
Packserialization trait. - Implementations of syscalls used when
solana-programis built for non-SBF targets. - Contains a single utility function for deserializing from bincode.
 - Solana account addresses.
 - Definitions related to Solana over QUIC.
 - Helpers for the recent blockhashes sysvar.
 - Configuration for network rent.
 - Enumeration of reward types.
 - RPC default port numbers.
 - A trait for sanitizing values and members of over the wire messages.
 - A vector of Solana SDK IDs.
 - Instructions for the secp256k1 native program.
 - Public key recovery from secp256k1 ECDSA signatures.
 - Integers that serialize to variable size.
 - Helpers for reading and writing bytes.
 - Compact serde-encoding of vectors with small length.
 - Calculation of shred versions.
 - Functionality for public and private keys.
 - Abstractions and implementations for transaction signers.
 - A type to hold data for the
SlotHashessysvar. - A type to hold data for the
SlotHistorysysvar. - The stake native program.
 - A type to hold data for the
StakeHistorysysvar. - Declarations of Solana program syscalls.
 - Instructions and constructors for the system program.
 - The
system_transactionmodule provides functionality for creating system transactions. - Access to special accounts with dynamically-updated data.
 - The
timingmodule provides std::time utility functions. - Atomically-committed sequences of instructions.
 - Data shared between program runtime and built-in programs as well as SBF programs.
 - Defines the
TransportErrortype. - The vote native program.
 
Macros
- Define the default global allocator.
 - Define the default global panic handler.
 - Same as
declare_idexcept report that this id has been deprecated. - Same as
declare_sysvar_idexcept that it reports that this ID has been deprecated. - Convenience macro to declare a static public key and functions to interact with it.
 - Declares an ID that implements
SysvarId. - entrypointDeprecated
 - entrypoint_deprecatedDeprecated
 - Implements the
Sysvar::getmethod for both SBF and host targets. - Print a message to the log.
 - program_stubsDeprecated
 - Convenience macro to define a static public key.
 - Convenience macro to define multiple static public keys.
 - A proc-macro which respans the tokens in its first argument (a
Path) to be resolved at the tokens of its second argument. For internal use only. - Convenience macro for
AddAssignwith saturating arithmetic. Replace bystd::num::Saturatingonce stable - Convenience macro for doing integer division where the operation’s safety can be checked at compile-time.