Skip to main content

Proposals

Solana proposals and chain governance, explained by their impact on developers, users, validators, and the network.

SIMD 127 SGP 3

Proposals

Some SGP sources are stale or unavailable; source warnings remain visible on detail pages.
SIMD-0558 Core Protocol

Leader Info Syscall

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Create a new syscall that returns the leader for the current & the next slot. fn sol get leader(result: mut u8) - u64

SIMD-0608 Core Protocol

DeactivateDelinquent for Closed Vote Accounts

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Allow the Stake Program's existing DeactivateDelinquent instruction to deactivate stake delegated to a closed vote account. The delegated vote account is treated as closed when its address…

SIMD-0607 Core Protocol

Remove Floating Point from Runtime

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Replace floating-point arithmetic in consensus-critical inflation and rent calculations with deterministic integer arithmetic.

SIMD-0599 Core Protocol

Remove Inactive Stakes from Rewards

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The partitioned epoch rewards process currently requires all stake accounts, including inactive stakes, to be considered when computing the lattice hash and rewards partition count. But…

SGP-0003 Chain governance

Resource and Inclusion Fee

  1. Support
  2. Discuss
  3. Snapshot
  4. Voting
  5. Await
  6. Final
  7. Off-chain

This SGP asks validators and delegators to endorse restructuring Solana's base transaction fee into a fixed base inclusion fee paid to the block leader and a separate resource fee that…

SIMD-0340 Core Protocol

Validate chained block id

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Specify the protocol for validating chained block ids under both TowerBFT and Alpenglow.

SIMD-0433 Core Protocol

Loader V3: Set Program Data to ELF Length

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD proposes changing the default behavior of program upgrades to automatically resize the program data account so that its ELF region matches the length of the ELF being deployed.…

SIMD-0550 Core Protocol

Double Disinflation Rate

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Reduce the inflation schedule by increasing the disinflation rate from the current -15% rate to -30%.

SIMD-0553 Core Protocol

Base Inclusion and Resource-based Fee

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

We split the present static 5000-lamport per-signature fee (2500 burned, 2500 to the leader) into two components: Base inclusion fee — static 2500 lamports per transaction, paid entirely…

SIMD-0392 Core Protocol

Adapt Runtime for Rent Increases

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

To allow for non-disruptive rent increases, the Solana runtime relaxes post-execution minimum balance checks and adjusts stake delegations during epoch rewards calculations. Relax…

SIMD-0290 Core Protocol

Relax Fee-Payer Constraint

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal aims to relax the handling of invalid fee-payers for blockhash transactions in Solana. Currently, if a transaction with an invalid fee-payer is included in a block, the…

SIMD-0565 Core Protocol

secp256r1 (NIST P-256) Curve Syscalls

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal introduces support for the secp256r1 (also known as NIST P-256) elliptic curve to Solana's existing generalized curve syscalls. These syscalls will expose: Group operations…

SGP-0002 Chain governance

Double Disinflation Rate

  1. Support
  2. Discuss
  3. Snapshot
  4. Voting
  5. Await
  6. Final
  7. Off-chain

Reduce the inflation schedule by increasing the disinflation rate from the current -15% rate to -30%.

SGP-0001 Chain governance

The Solana Constitution

  1. Support
  2. Discuss
  3. Snapshot
  4. Voting
  5. Await
  6. Final
  7. Off-chain

A "yes" vote on this SGP ratifies The Solana Constitution — the canonical document governing Solana's network-level decision-making. Ratification activates the on-chain governance…

SIMD-0385 Core Protocol

Transaction V1 Format

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The current live transaction formats, v0 and legacy, have a number of limitations that make them unsuitable for efficient ingestion, processing, and unable to support developer features…

SIMD-0529 Core Protocol

Big Integer ModExp Syscall

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Add a sol big mod exp syscall that computes modular exponentiation over unsigned big integers: `text result = (base ^ exponent) mod modulus ` The syscall is analogous to Ethereum's…

SIMD-0525 Core Protocol

Reduce Slot Times

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Reduce Solana's target slot time from 400ms to 200ms in four feature-gated steps: 350ms slots 300ms slots 250ms slots 200ms slots Each step keeps ticks per slot fixed at 64, keeps leader…

SIMD-0022 Core Protocol

Multi Delegation Stake Account

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Withdrawn

A new "multi stake" account that allows for multiple movements of stake, useful for simpler stake movement through more activations, deactivations, or redelegation.

SIMD-0495 Core Protocol

Core BPF Upgrade Procedure

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD describes the procedure for upgrading a Core BPF program that may have been migrated from a native builtin or otherwise deployed on-chain as a core program. Each individual Core…

SIMD-0388 Core Protocol

BLS12-381 Elliptic Curve Syscalls

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal introduces a new family of syscalls to provide native support for cryptographic operations on the BLS12-381 elliptic curve. These syscalls will expose: Group operations…

SIMD-0430 Core Protocol

Relax Program Buffer Constraints

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD proposes relaxing current constraints on program buffers used by the DeployWithMaxDataLen (initial deployment) and Upgrade (redeployment) instructions, currently requiring them…

SIMD-0387 Core Protocol

BLS Pubkey management in vote account

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal specifies in detail how a BLS public key can be generated by users via updated existing tools and how they can put the generated BLS public keys into their vote accounts for…

SIMD-0186 Core Protocol

Loaded Transaction Data Size Specification

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Before a transaction can be executed, every account it may read from or write to must be loaded, including any programs it may call. The amount of data a transaction is allowed to load is…

SIMD-0500 Core Protocol

Disable deployment of SBPF-v0, -v1 and -v2

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Disable deployment of SBPFv0, SBPFv1 and SBPFv2.

SIMD-0432 Core Protocol

Loader V3: Reclaim Closed Program

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD proposes changing the default behavior when closing upgradeable programs so that program accounts are fully reclaimed and their addresses become reusable. Tombstoning program…

SIMD-0504 Networking

Stricter shred validation

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Shred validation currently allows certain shreds that seem like they should be invalid. This leads to lots of corner cases when a new client bases their behavior on what Agave implicitly…

SIMD-0123 Core Protocol

Block Revenue Sharing

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

A new mechanism is proposed to allow validators to share part of their block revenue with their delegators. Commission rates from validator vote accounts will be used by the protocol to…

SIMD-0512 Core Protocol

Sha512 Syscall

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Introduce a sol sha512 syscall with an identical interface to sol sha256, producing SHA-512 hashes and outputting the 64-byte result.

SIMD-0431 Core Protocol

Loader V3: Minimum Extend Program Size

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Enforce a minimum extension size of 10,240 bytes (10 KiB) on the ExtendProgram instruction in Loader V3, mitigating the existing denial-of-service vector through economic deterrence while…

SIMD-0178 Core Protocol

SBPF Static Syscalls

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD introduces static syscalls, using the eBPF call instruction encoding, to remove runtime relocations while keeping compatibility with the eBPF encoding.

SIMD-0505 Core Protocol

Upgrade secp256k1 to k256 (Agave-specific)

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Transition the secp256k1 precompile and syscall implementation in the Agave validator client from the libsecp256k1 crate to the k256 crate. This is an Agave-specific upgrade, but make this…

SIMD-0232 Core Protocol

Custom Commission Collector Account

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Allow validators to specify custom commission collector accounts where block revenue and inflation rewards commissions will be deposited.

SIMD-0291 Core Protocol

Commission Rate in Basis Points

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Allow validators to update their inflations reward commission rate with basis points and update commission calculation.

SIMD-0490 Core Protocol

Upgrade BPF Stake Program to v5.0.0

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD will upgrade the Core BPF Stake Program to v5.0.0.

SIMD-0464 Core Protocol

Vote Account Initialize V2

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal introduces the InitializeAccountV2 instruction to the Vote program, which allows creating new vote accounts with all vote state v4 fields — including BLS public keys — at…

SIMD-0075 Core Protocol

Precompile for verifying secp256r1 sig.

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Adding a precompile to support the verification of signatures generated on the secp256r1 curve. Analogous to the support for secp256k1 and ed25519 signatures that already exists in form of…

SIMD-0001 Governance

Solana Proposal Process

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Unknown
SIMD-0266 Core Protocol

p-token: Efficient Token program

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Replace the current version of SPL Token (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA) program by a CU-optimized one (p-token).

SIMD-0391 Core Protocol

Stake Program Float to Fixed-Point

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD proposes replacing all IEEE-754 double-precision floating-point arithmetic within the Solana Stake Program & validator client's warmup/ cooldown logic with a fixed-point…

SIMD-0418 Core Protocol

Enable Loader v2 to v3 Program Migrations

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal introduces a feature-gated mechanism for runtime-level migration of Loader v2 programs to Loader v3.

SIMD-0444 Core Protocol

Relax program data account check in migration

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal relaxes the requirements for runtime-level migrations of programs (such as builtins) to permit system-owned programdata accounts to hold lamports.

SIMD-0449 Core Protocol

Direct Account Pointers in Program Input

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Serialize pointers for instruction accounts to allow direct account access without requiring parsing of the account section.

SIMD-0302 Core Protocol

BN254 G2 Arithmetic Syscalls

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Extend the existing sol alt bn128 group op syscall to support native G2 curve point arithmetic (addition, subtraction, and scalar multiplication) on the BN254 curve.

SIMD-0460 Core Protocol

Virtual Address Space Adjustments

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Virtual address space related changes split off from SIMD-0219: Removing pitfalls and foot-guns from the ABI (including syscalls) and runtime.

SIMD-0459 Core Protocol

Syscall Parameter Address Restrictions

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Syscall parameter related changes split off from SIMD-0219: Removing pitfalls and foot-guns from the ABI (including syscalls) and runtime.

SIMD-0458 Core Protocol

Stop special-casing of Vote CU cost

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal removes the use of statically defined compute unit (CU) costs for Simple Vote transactions and instead accounts for them in the same way as normal transactions when enforcing…

SIMD-0194 Core Protocol

Deprecate Rent Exemption Threshold

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal aims to eliminate the use of floating-point operations to determine whether an account is rent exempt or not in programs by deprecating the use of the exempt threshold (f64)…

SIMD-0437 Core Protocol

Incrementally Reduce lamports_per_byte to 696

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Reduce lamports per byte incrementally from 6960 to 696 via five steps: 6333, 5080, 2575, 1322, and 696. This proposal supersedes SIMD-0436, providing a more granular reduction schedule.…

SIMD-0406 Core Protocol

Maximum instruction accounts

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD imposes a hard restriction on the maximum number of account references that an instruction may declare. There is already a limit of 255 account references imposed during…

SIMD-0376 Core Protocol

Relaxing Transaction Signature Verification

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal replaces the verify strict semantics used in Solana, derived from Agave's usage of ed25519-dalek's verify strict, with ZIP-215, Zebra's EdDSA variant. In practice, this…

SIMD-0377 Core Protocol

eBPF ISA compatibility

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD introduces instruction set architecture (ISA) changes to make the sBPF virtual machine compatible with the latest existing version of eBPF ISA generated by its LLVM backend. It…

SIMD-0334 Core Protocol

Fix alt_bn128_pairing syscall length check

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The alt bn128 pairing syscall takes a byte slice as input, interprets the bytes as an array of pairs of g1 and g2 points on bn128 elliptic curve, and applies a pairing operation. If the…

SIMD-0436 Core Protocol

Reduce lamports_per_byte to 3480

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Reduce lamports per byte by 50% to 3480, which is equivalent to reducing the rent-exempt minimum balance by half for all new and existing accounts. Requires SIMD-0392: Relaxation of…

SIMD-0438 Core Protocol

Safeguard for rent-exempt minimum increase

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Protective feature to increase rent-exempt minimum balance back to the legacy value of 6960 per-byte. This should only be activated in response to excessive state growth observed on…

SIMD-0189 Core Protocol

SBPF stricter ELF headers

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Imposes more restrictions on what is expected of ELF headers.

SIMD-0321 Core Protocol

VM Register 2 Instruction Data Pointer

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Provide a pointer to instruction data in VM register 2 (r2) at program entrypoint, enabling direct access to instruction data without having to parse the accounts section of the serialized…

SIMD-0333 Core Protocol

Serialize Block ID in Bank into Snapshot

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Currently the block ID (the merkle root of the last FEC set) of the snapshot slot is not included in the snapshot Bank Fields. This would enforce the snapshot producer to include the block…

SIMD-0357 Core Protocol

Alpenglow Validator Admission Ticket

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This SIMD describes how the validator admission ticket (VAT) collection described in SIMD 326 will be implemented. Specifically, how it affects validator operation procedures. The…

SIMD-0296 Core Protocol

Larger Transaction Size

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Historically, messages transmitted over the network must not exceed the IPv6 MTU size to ensure a fast and reliable network delivery. Solana has used a conservative MTU size of 1280 bytes,…

SIMD-0384 Core Protocol

Alpenglow migration

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Migrate to Alpenglow from TowerBFT

SIMD-0185 Core Protocol

Vote Account v4

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Add a new version of vote account state to support alpenglow, block revenue distribution, and commission improvements.

SIMD-0298 Core Protocol

Add `bank_hash` to block footer.

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal adds the bank hash to the block footer and introduces validity constraints to ensure the bank hash matches the expected value.

SIMD-0207 Core Protocol

Raise Block Limits to 50M CUs

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Raise the block limit from 48M to 50M CUs.

SIMD-0297 Core Protocol

Relax Invalid Nonced Transactions Constraint

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal relaxes the handling of invalid durable nonce transactions during block replay. Instead of rejecting the entire block when an invalid nonce is encountered, the transaction…

SIMD-0312 Core Protocol

CreateAccountAllowPrefund

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

A CreateAccountAllowPrefund instruction added to the system program reduces network overhead for applications that need to fund account rent (in whole or in part) in advance of account…

SIMD-0337 Core Protocol

Markers for Alpenglow Fast Leader Handover

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

We propose augmenting BlockMarkerV1, introduced in SIMD-0307, to include BlockHeader and UpdateParent variants. BlockHeader, placed at the beginning of a block, indicates the parent of the…

SIMD-0359 Core Protocol

Poseidon Syscall - Enforce Input Length

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Require all Poseidon hash inputs to have a fixed length determined by the number of bytes used by the modulus of a prime field. For the (currently the only supported) prime field BN254,…

SIMD-0339 Core Protocol

Increase CPI Account Infos Limit

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Increase the maximum number of account info's for cross-program invoked (CPI) instructions from 64 to 255 and consume compute units for serialized account info's and instruction account…

SIMD-0219 Core Protocol

Stricter ABI and Runtime Constraints

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Removing pitfalls and foot-guns from the ABI (including syscalls) and runtime.

SIMD-0307 Core Protocol

Add Block Footer

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Add a block footer to Solana blocks and expose footer fields in the getBlock rpc endpoint.

SIMD-0326 Core Protocol

Alpenglow

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal changes the core consensus protocol from the current one, based on Proof-of-History and TowerBFT , to Alpenglow , specifically the Votor parts of Alpenglow. Compared to the…

SIMD-0332 Core Protocol

Reduce ChaCha rounds for Turbine from 20 to 8

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Reduce the number of ChaCha rounds for turbine weighted shuffle calculation from 20 to 8 in order to reduce the amount of compute time spent on this.

SIMD-0163 Core Protocol

Lift the CPI caller restriction

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Withdrawn

Remove the check which forces CPI callers to have the program account of the callee available to them as an instruction account.

SIMD-0127 Core Protocol

Get-Sysvar Syscall

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal outlines a new syscall interface for sysvars; one which can retrieve dynamic ranges of sysvar data without fully copying the entire data structure. With a unified syscall…

SIMD-0033 Core Protocol

Timely Vote Credits

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Award a variable number of vote credits per voted on slot, with more credits being given for votes that have "less latency" than votes that have "more latency".

SIMD-0317 Core Protocol

Enforce 32 data + 32 coding shreds

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

All clients currently send 32 data + 32 coding shreds, however Turbine still allows to send and receive a variable number of shreds. With this change we will enforce sending and receiving…

SIMD-0267 Core Protocol

Sets rent_epoch to a constant in the VM

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Set the value of rent epoch—as serialized into the VM for transaction processing—to a constant.

SIMD-0223 Core Protocol

Removes Accounts Delta Hash

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

With the introduction of the Accounts Lattice Hash (SIMD-215), the merkle-based Accounts Delta Hash is redundant and can be removed.

SIMD-0220 Core Protocol

Snapshots use Accounts Lattice Hash

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Use the Accounts Lattice Hash as the Snapshot Hash , which enables removing the merkle-based accounts hash calculation.

SIMD-0215 Core Protocol

Homomorphic Hashing of Account State

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal adds a new hash, Accounts Lattice Hash , that uses homomorphic hashing to maintain a hash of the total account state. The Accounts Lattice Hash is both fast to update, and…

SIMD-0268 Core Protocol

Raise CPI Nesting Limit

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Increase the maximum number of nested CPI calls.

SIMD-0160 Core Protocol

Static Instruction Limit

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Transactions will fail execution in SVM if the transactions use more than 64 instructions, including CPI calls. This proposal is to make transactions that use more than 64 top-level…

SIMD-0306 Core Protocol

Increase writeable account limit to 20M CUs

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Increase the per account CU limit from a static 12M to 40% of the block CU limit.

SIMD-0286 Core Protocol

Increase Block Limits to 100M CUs

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Increase the block limit to 100M CUs.

SIMD-0173 Core Protocol

SBPF instruction encoding improvements

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

There are some instructions with questionable encodings, that when slightly adjusted, could significantly simplify verification and execution of programs.

SIMD-0174 Core Protocol

SBPF arithmetics improvements

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal introduces wide multiplication, signed division and explicit sign extension to SBPF.

SIMD-0242 Core Protocol

Static Nonce Account Only

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The advance nonce instruction in a transaction can currently specify any account in the transaction as the account to advance. This proposal would restrict the advance nonce instruction to…

SIMD-0313 Core Protocol

Drop unchained merkle shreds

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

As the new shred format is being sent by all clients, this feature deprecates the old shred format.

SIMD-0166 Core Protocol

SBPF Dynamic stack frames

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The SVM currently allocates a fixed amount of stack space to each function frame. We propose allowing programs to dynamically manage their stack space through the introduction of an…

SIMD-0256 Core Protocol

Increase Block Limits to 60M CUs

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Increase the block limit to 60M CUs.

SIMD-0249 Core Protocol

Delay Commission Updates

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Allow validators to update their commission rate at any time but delay those commission updates for at least one full epoch.

SIMD-0284 Core Protocol

Alt-BN128 Little Endian compatibility

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Extend the Alt-BN128 syscalls to add little endian support.

SIMD-0204 Core Protocol

Slashable event verification

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal describes an enshrined on-chain program to verify proofs that a validator committed a slashable infraction. This program creates reports on chain for use in future SIMDs.…

SIMD-0191 Core Protocol

Relax Transaction Loading Constraints

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal aims to relax certain transaction errors related to loading transaction accounts, from protocol violations to runtime errors. Specifically, if a transaction fails to load a…

SIMD-0183 Core Protocol

Skip Rent Rewrites

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Do not rewrite accounts that are unchanged by rent collection.

SIMD-0175 Core Protocol

Disable Partitioned Rent Updates

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Partitioned rent collection should be removed since it will no longer be useful after rent collection is disabled by https://github.com/solana-labs/solana/issues/33946…

SIMD-0162 Core Protocol

Remove Accounts `is_executable` Flag Checks

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Remove all checks of accounts is executable flag which can throw errors in the runtime.

SIMD-0159 Core Protocol

Relax Precompile Failure Constraint

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The Solana protocol currently prohibits block producers from including transactions with precompile instructions that fail signature verification. This constraint is not ideal since block…

SIMD-0153 Core Protocol

ZK ElGamal Proof Program

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Deprecate the existing ZK Token Proof program that is tailored for the SPL Token program. Replace it with a more general zero-knowledge proof program called the ZK ElGamal Proof program…

SIMD-0152 Core Protocol

Precompiles

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Define a unified behavior for precompiles, and highlight a few minor changes to the existing precompiles to minimize differences.

SIMD-0149 Core Protocol

Migrate Snapshot Serialized Epoch Stakes

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Migrate bank snapshots to a new "epoch stakes" field in order to store additional stake state needed for calculating partitioned rewards.

SIMD-0140 Core Protocol

Migrate Config to Core BPF

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Migrate the Config program to Core BPF.

SIMD-0138 Core Protocol

Deprecate legacy vote instructions

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Disables the legacy Vote, UpdateVoteState and CompactUpdateVoteState instruction variants.

SIMD-0137 Core Protocol

EC Syscalls - Abort on Unsupported Curve/Ops

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Update the curve25519 syscalls functions from returning an error code 1 (Ok(1) in rust) to returning an error type Err(SyscallError::InvalidAttribute) when invoked on unsupported curve id…

SIMD-0128 Core Protocol

Migrate Address Lookup Table to Core BPF

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Migrate the Address Lookup Table program to Core BPF.

SIMD-0118 Core Protocol

Partitioned Epoch Rewards Distribution

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

A new way to distribute epoch rewards across multiple blocks is proposed to address the current performance problems associated with epoch reward distribution in a first block of a new…

SIMD-0105 Core Protocol

Maintain Dynamic Set of Reserved Account Keys

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The transaction scheduler and the runtime both demote transaction write locks for builtin programs and sysvars using a static list of reserved IDs. This proposal replaces the currently…

SIMD-0089 Core Protocol

Programify Feature Gate Program

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal suggests replacing the non-existent native program at address Feature111111111111111111111111111111111111 with a Core BPF Program, as described in SIMD 0088. Feature accounts…

SIMD-0088 Core Protocol

Enable Core BPF Programs

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

This proposal introduces the concept of Core BPF programs: programs which are essential to network operations. Currently, these exist as built-in programs known as "native" programs. This…

SIMD-0049 Core Protocol

Syscall for remaining compute units

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Withdrawn

Add a new syscall to access the number of compute units that are left to use in a transaction.

SIMD-0180 Core Protocol

Vote Account Address Keyed Leader Schedule

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The epoch leader schedule for block production will be migrated from being keyed by validator identity addresses to being keyed by vote account addresses. The expected block signer for a…

SIMD-0133 Core Protocol

Syscall Get-Epoch-Stake

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

A syscall to retrieve a vote account's delegated stake or the total cluster stake for the current epoch.

SIMD-0096 Core Protocol

Reward full priority fee to validator

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Reward 100% of priority fee to validator.

SIMD-0222 Core Protocol

Fix alt-bn128 multiplication syscall length

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The alt bn128 multiplication syscall takes in a byte slice as input, interprets the bytes as a bn128 elliptic curve point/scalar pair, and applies point-scalar multiplication. If the byte…

SIMD-0148 Core Protocol

MoveStake and MoveLamports Instructions

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

We propose introducing two new instructions to the stake program for moving value between stake accounts with identical Authorized and Lockup: MoveStake: Move a given amount of active…

SIMD-0196 Core Protocol

Migrate Stake to Core BPF

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Migrate the Stake program to Core BPF.

SIMD-0182 Core Protocol

Consume requested CUs for sBPF failures

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Adjusting how CU consumption is measured based on the conditions of transaction execution: successful completion will consume actual CUs, but certain irregular failures in the sBPF VM will…

SIMD-0170 Core Protocol

Reserve minimal CUs for builtins

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

When transactions do not request a specific compute unit limit, the Solana runtime conservatively allocates 200,000 compute units for each tx-level instruction (excluding compute budget…

SIMD-0046 Core Protocol

Optimistic cluster restart automation

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

During a cluster restart following an outage, make validators enter a separate recovery protocol that uses Gossip to exchange local status and automatically reach consensus on the block to…

SIMD-0129 Core Protocol

Alt_BN128 Syscalls - Simplified Error Code

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Simplify the return error code for the family of Alt BN128 syscalls: sol alt bn128 group op, sol alt bn128 compression and sol poseidon. A single error code is sufficient, in line with all…

SIMD-0093 Core Protocol

Disable Bpf loader V2 program deployment

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Disable BPF Loader V2 for program deployment.

SIMD-0085 Core Protocol

Additional Fee-Collector Constraints

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Every validator defines a node id which is also used as the validator's fee-collector account for collecting earned protocol fees. After implementing this proposal, validator…

SIMD-0084 Core Protocol

Disable rent fees collection

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Add a new feature to disable rent fees collections.

SIMD-0083 Core Protocol

Relax Entry Constraints

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Remove the constraint that transaction entries cannot contain conflicting transactions.

SIMD-0079 Core Protocol

Allow Commission Decrease at Any Time

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

The commission updates only allowed in first half of epoch feature disallows commission decrease in the second half of epoch. Given that the purpose of this feature was to prevent 'rug…

SIMD-0064 Core Protocol

Transaction Receipts

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Stagnant

Here we propose a mechanism for proving transaction inclusion into a block in the Solana protocol. This is a pre-requisite for several use-cases that would like to build upon a Simple…

SIMD-0047 Core Protocol

Syscall and Sysvar for last restart slot

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Create a new syscall and sysvar that can be used to get the last restart slot. A new Sysvar : SysvarLastRestartS1ot1111111111111111111111 Method signature for syscall: fn sol get last…

SIMD-0015 Core Protocol

Partitioned Epoch Rewards Distribution

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Withdrawn

A new way to distribute epoch rewards across multiple blocks is proposed to address the current performance problems associated with epoch reward distribution in a first block of a new…

SIMD-0007 Governance

SIMD Access Policy

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Unknown

3 levels of access, in the order of increasing access: Triage Requirement: One voucher from anyone with level 2 or above access. Write Requirement: One voucher from anyone with level 3…

SIMD-0048 Core Protocol

Native Program for verifying secp256r1 sig.

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active
  7. Withdrawn

Adding a Native Program to support the verification of signatures generated on the secp256r1 curve. Analogous to the support for secp256k1 and ed25519 signatures that already exists in…

Data freshness & sources Tap to expand
SIMD metadata is sourced from GitHub, activation state is checked against Solana RPC, and pending/version context comes from the Agave tracker.
SIMD Repository
GitHub
SIMD proposal markdown and metadata
Updated 2d ago
Agave Feature Gate Tracker
GitHub Wiki
Pending activation schedule and minimum client versions
Updated just now
Solana RPC
RPC
Live feature activation status, cluster epochs, validator adoption
Updated just now
Agave Releases
GitHub Releases
Client release versions for Agave, Firedancer, and Jito
Updated just now