NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4724 most downloaded on crates.io
Solana BPF loader
Last release 5 days ago
03 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Rarely documented
notes for 7 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
7 years old
553 releases · first in 2019
Route vulnerability reports through bounty.anza.xyz by @nbelenkov in #15757
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
DebugIgnore in ParentReadyTracker by @plafer in #15369UnverifiedBatch and VerifiedBatch by @akhi3030 in #15332getLeaderSchedule by @joncinque in #15422BytesPacket in to_packet_batches by @vadorovsky in #15425RecycledPacketBatch with BytesPacketBatch by @vadorovsky in #15462ConsensusPool cleanup and docs by @plafer in #15453BytesPacketBatch in shred verification tests by @vadorovsky in #15519BlockId gently by @akhi3030 in #15150Note truncated.
One column per quarter.
https://github.com/anza-xyz/agave/blob/v4.4/CHANGELOG.md
This is a testnet release.
https://github.com/anza-xyz/agave/blob/v4.4/CHANGELOG.md
DebugIgnore in ParentReadyTracker by @plafer in #15369UnverifiedBatch and VerifiedBatch by @akhi3030 in #15332getLeaderSchedule by @joncinque in #15422Full Changelog: v4.4.0-alpha.5...v4.4.0-beta.0
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
This a stable release suitable for Testnet, Devnet and Mainnet Beta.
This a stable release suitable for Testnet, Devnet and Mainnet Beta.
https://github.com/anza-xyz/agave/blob/v4.3/CHANGELOG.md
Full Changelog: v4.3.0-rc.1...v4.3.0
--enable-rpc-bigtable-ledger-storage or
--enable-bigtable-ledger-upload. Previously, the error would be logged and
the process would continue without a Bigtable connection.getLeaderSchedule now accepts a keyByVoteAccount config option to key the returned
schedule by vote account instead of validator identity. The identity filter continues
to match on validator identity in both modes.--enable-banking-trace <max bytes>.--tpu-connection-pool-size has been removed. The connection pool size is fixed at the previous default of 1.--disable-banking-trace is now deprecated and a no-op (banking trace is disabled by
default). The flag is still accepted for backward compatibility.--limit-ledger-size is now deprecated in favor of --limit-blockstore-size. The argument is
still accepted for backwards compatibility but slated for full removal in the future.
--limit-blockstore-size uses a more precise counting mechanism than --limit-ledger-size.--limit-ledger-size, a good starting point is to double
that value for --limit-blockstore-size.--limit-blockstore-size may occupy more disk footprint at steady state with current cluster
activity; however, disk usage should be more stable during abnormal cluster activity.--full-rpc-api and with snapshot generation disabled no longer
store transaction signature keys in the status cache. Message hashes remain cached for duplicate
transaction detection.PARTIAL_BATCH_CANCELLED for
CommitCancelled errors in non-all-or-nothing batches. All-or-nothing batches continue to use
ALL_OR_NOTHING_BATCH_FAILURE.minimal for --accounts-index-limit now defaults to 25GB.--votor-peer-overrides <VALIDATOR IDENTITY>... to additionally send votor
messages to identities outside the staked set.GeyserPlugin methods update_account, notify_transaction, notify_entry, and
notify_block_metadata are slated for removal in the next major release.GeyserPlugin methods to replace deprecated methods: update_account_from_snapshot and
update_account_for_bank replace update_account, notify_transaction_for_bank replaces
notify_transaction, notify_entry_for_bank replaces notify_entry, and
notify_block_metadata_for_bank replaces notify_block_metadata.update_bank_status for bank-scoped slot status updates with bank_id;
update_slot_status remains for non-bank slot statuses.GeyserPlugin::notify_block_footer and
GeyserPlugin::block_footer_notifications_enabled; plugins can opt in to receive the complete
versioned Alpenglow block footer, slot, and bank ID in entry order independently of entry
notifications.GeyserPlugin::notify_entry_update_parent and
GeyserPlugin::notify_deshred_update_parent so plugins can discard earlier notifications after
an UpdateParent marker.Rent::get(), Clock::get()) and solana_sysvar::get_sysvar() now return
ProgramError::UnsupportedSysvar in native-mode processors (programs registered with processor!). Programs
executed as BPF (including the bundled SPL programs), are unaffected, even when invoked via CPI from a native
processor. Native-mode processors can use the solana_program_test::sol_get_* sysvar helpers directly. See
program-test/tests/sysvar.rs for examples of what is and is not supported.This is Mainnet-beta Upgrade Candidate release recommended for 25% adoption. It is also recommended for Testnet and Devnet.
This is Mainnet-beta Upgrade Candidate release recommended for 25% adoption.
It is also recommended for Testnet and Devnet.
https://github.com/anza-xyz/agave/blob/v4.3/CHANGELOG.md
Full Changelog: v4.3.0-rc.0...v4.3.0-rc.1
This is Mainnet-beta Upgrade Candidate release recommended for 10% adoption. It is also recommended for Testnet and Devnet.
This is Mainnet-beta Upgrade Candidate release recommended for 10% adoption.
It is also recommended for Testnet and Devnet.
https://github.com/anza-xyz/agave/blob/v4.3/CHANGELOG.md
Full Changelog: v4.3.0-beta.3...v4.3.0-rc.0
This is a testnet release. It is also recommended for Devnet.
This is a testnet release. It is also recommended for Devnet.
https://github.com/anza-xyz/agave/blob/v4.3/CHANGELOG.md
programdata accounts in get_program_deployment_slot() (backport of #14784) by @mergify[bot] in #14806Full Changelog: v4.3.0-beta.2...v4.3.0-beta.3
v4.3: fix(core): silence dead_code for alpenglow_slot_clock on non-unix (backport of #14542 ) by @mergify [bot] in #14565
This is a testnet release.
Full Changelog: v4.3.0-beta.0...v4.3.0-beta.2
Warning This release has no binary artifacts and must not be deployed. Use v4.3.0-beta.2 .
Warning
This release has no binary artifacts and must not be deployed. Use v4.3.0-beta.2.
The build for this tag failed cargo audit on
RUSTSEC-2026-0258
(h2 0.4.13), so no Linux, macOS, or Windows assets were produced.
Crates for 4.3.0-beta.1 were published before the failure was detected and
have since been yanked.
Superseded by v4.3.0-beta.2, which carries the same changes plus the
advisory mitigation.
All of the above are included in v4.3.0-beta.2.
validator: remove deprecated --tpu-connection-pool-size cli argument by @alexpyattaev in #14366
EntryBytesBudget::reserve by @plafer in #14172Clock::epoch_start_timestamp correctly on epoch boundaries by @akhi3030 in #14469Full Changelog: v4.3.0-alpha.3...v4.3.0-beta.0
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
Nothing published for this version
https://github.com/anza-xyz/agave/blob/v4.2/CHANGELOG.md
This a stable release.
https://github.com/anza-xyz/agave/blob/v4.2/CHANGELOG.md
Full Changelog: v4.2.1...v4.2.2
v4.2: gossip: wrap epoch slots index after 254 (backport of #14566 ) by @mergify [bot] in #14570
Full Changelog: v4.2.0...v4.2.1
This a stable release suitable for Testnet, Devnet and Mainnet Beta.
This a stable release suitable for Testnet, Devnet and Mainnet Beta.
https://github.com/anza-xyz/agave/blob/v4.2/CHANGELOG.md
Full Changelog: v4.2.0-rc.1...v4.2.0
jsonParsed output for confidential transfer Deposit (depositConfidentialTransfer) and Withdraw (withdrawConfidentialTransfer) instructions has been corrected. These instructions operate on a single token account, so the mislabeled source and destination fields have been replaced by a single account field (the mint field is unchanged).Rewards column was updated in v1.5 (Solana Labs client) to switch from
storing bincode serialized values to protobuf encoded values. The old bincode
format will no longer be supported for fallback reads as of v4.2RpcClient::get_latest_blockhash_with_commitment_and_context, which returns the
getLatestBlockhash response together with its context (notably context.slot).CAP_NET_ADMIN and CAP_NET_RAW capabilities (plus CAP_BPF and CAP_PERFMON for
--xdp-zero-copy). Pass --no-xdp to fall back to UDP sockets. The XDP CPU
core is auto-selected to avoid overlapping the PoH core; passing --xdp-cpu-cores
with a core that conflicts with the PoH core is an error.--accounts-db-access-storages-method is now deprecated and a no-op (the mmap value was
deprecated in v4.0.0; mmap mode has now been removed entirely). The flag is still accepted for
backward compatibility, but account storages are always accessed via file I/O.--accounts-db-cache-limit-mb is now deprecated. Use --accounts-db-write-cache-limit instead.--experimental-poh-pinned-cpu-core is now deprecated. Use --poh-pinned-cpu-core instead.--allow-private-addr must also pass --no-xdp.vote-account supports Alpenglow and as such vote-account --output json breaks compatibility with older versions.usb://keystoneThis is Mainnet-beta Upgrade Candidate release recommended for 10% adoption. It is also recommended for Testnet and Devnet.
This is Mainnet-beta Upgrade Candidate release recommended for 10% adoption.
It is also recommended for Testnet and Devnet.
https://github.com/anza-xyz/agave/blob/v4.2/CHANGELOG.md
Full Changelog: v4.2.0-rc.0...v4.2.0-rc.1
This is Mainnet-beta Upgrade Candidate release recommended for 10% adoption. It is also recommended for Testnet and Devnet.
This is Mainnet-beta Upgrade Candidate release recommended for 10% adoption.
It is also recommended for Testnet and Devnet.
https://github.com/anza-xyz/agave/blob/v4.2/CHANGELOG.md
Full Changelog: v4.2.0-beta.2...v4.2.0-rc.0
v4.2: Loads accounts in parallel for lt hash updates of stake accounts (backport of #13696 ) by @mergify [bot] in #13752
This is a testnet release.
Full Changelog: v4.2.0-beta.1...v4.2.0-beta.2
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Using minimal for --accounts-index-limit is now deprecated.
--block-production-method central-scheduler is no longer supported. If passed, a warning is emitted and behavior
will default to the greedy-scheduler implementation.--dynamic-port-range must be at least 26 wide.minimal for --accounts-index-limit is now deprecated.--account-shrink-path is now deprecated.sbf-sdk.tar.bz2 is not included anymore in the Agave release tarball. The file will be made available in the new
cargo-build-sbf repository.--experimental-retransmit-xdp-interface, --experimental-retransmit-xdp-cpu-cores, and
--experimental-retransmit-xdp-zero-copy flags have been deprecated. Use --xdp-interface, --xdp-cpu-cores, and --xdp-zero-copy instead. Behavior is unchanged: pass --xdp-cpu-cores to enable XDP on the specified cores.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Using mmap for --accounts-db-access-storages-method is now deprecated.
--public-tpu-address and --public-tpu-forwards-address CLI arguments and setPublicTpuForwardsAddress, setPublicTpuAddress RPC methods now specify QUIC ports, not UDP.PerfSamples column legacy format removed.
PerfSamples column format was updated in agave v1.15 to write PerfSampleV2. The old format, PerfSampleV1, will no longer be supported for fallback reads as of v4.0.TransactionStatus, TransactionMemos, and AddressSignatures columns
were updated in v1.18 to write a new key format. The old key format will no
no longer be supported for fallback reads as of v4.0getSignaturesForAddress returns an error with code -32020 if the before or until signatures are not found, rather than a successful response with an empty array--enable-scheduler-bindings which binds an IPC server at <ledger-path>/scheduler_bindings.ipc for external schedulers to connect to.clientId field to each node in getClusterNodes responseRemoved deprecated arguments
--accounts-db-clean-threads--accounts-db-hash-threads--accounts-db-read-cache-limit-mb--accounts-hash-cache-path--cuda--disable-accounts-disk-index--dev-halt-at-slot--monitor (exit subcommand)--transaction-struct--wait-for-exit (exit subcommand)--tpu-coalesce-ms--tpu-disable-quic--tpu-enable-udp--block-verification-method blockstore-processor is no longer supported. Remove the argument or switch to --block-verification-method unified-scheduler instead.
Removed support for ingestion of transactions via UDP. QUIC is now the only option.
All monorepo crates falling outside the
backward compatibility policy are now part
of the Agave Unstable API and their symbols have been made private. Enable the
agave-unstable-api crate feature to acknowledge use of an interface that may break
without warning.
Linux Capability handling has been hardened wrt requirements for configuring XDP (#9133)
It is now an explicit error + exit(1) if the process has not been permitted a capability required by the current configuration
A warning is logged if the process has been permitted capabilities not required by any configuration supported by the binary
All permitted capabilities not required by the current configuration are now dropped at startup. This includes all validator subcommands which never require capabilities
Operations which require capabilities are now performed on the main thread and capabilities dropped before any other threads are spawned, with two exceptions
Updated instructions for permitting Linux Capabilities for the validator process are as follow. Either of these two options is supported. Choose whichever best fits your operational procedures
Add the following to the [Service] section of you Systemd service file
# Permit Linux Capabilities required to configure XDP
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN CAP_BPF CAP_PERFMON
# Disallow inheritance of any Linux Capabilities not required by any configuration
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN CAP_BPF CAP_PERFMON
-- OR --
set xattr capabilities directly on the binary file. note that this step must be repeated every time that the binary file is replaced
sudo setcap cap_net_raw,cap_net_admin,cap_bpf,cap_perfmon=p /path/to/agave-validator
Interpretation of the Version struct fields in gossip ContactInfo has been
changed to support communicating
semver prerelease notation. Implementations lacking this
support will observe a larger than expected min version field from node publishing from a
prerelease version. The new interpretation is as follows:
minor field are now reserved for prerelease statusVersion::patch field is interpreted as
the prerelease number and the actual patch value is implicitly zeroBlockstore SlotMeta and Index columns legacy format removed.
Index column was updated in v2.2 to write IndexV2.SlotMeta column format was updated in v3.1 to write SlotMetaV2.SlotMetaV1 and IndexV1, will no longer be supported for fallback reads as of v4.0mmap for --accounts-db-access-storages-method is now deprecated.--enable-accounts-disk-index flag is now deprecated. Use --accounts-index-limit instead. To retain the same behavior, use --accounts-index-limit minimal.agave-validator exit now saves bank state before exiting. This enables restarts from local state when snapshot generation is disabled.--accounts-index-limit to specify the memory limit of the accounts index.--no-accounts-db-snapshots-direct-io to opt out if your file system does not support O_DIRECT. Direct I/O will be extended to snapshot creation in a future release.--block-production-method central-scheduler is now deprecated and will be removed in a future release. Use central-scheduler-greedy instead.--use-quic--use-udpping command is deprecated and will be removed in v4.1.usb://trezorcargo-build-sbf --debug now generates a file program.so.debug instead of program.debug.cargo-build-sbf --debug places all debug related objects inside target/deploy/debug.owner/data/etc manually zeroed out. Note that if the on-chain program does zero out any fields itself, those will remain zeroed out in the notification.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →