Proposals
Solana proposals and chain governance, explained by their impact on developers, users, validators, and the network.
Proposals
Leader Info Syscall
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Create a new syscall that returns the leader for the current & the next slot. fn sol get leader(result: mut u8) - u64
DeactivateDelinquent for Closed Vote Accounts
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Remove Floating Point from Runtime
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Replace floating-point arithmetic in consensus-critical inflation and rent calculations with deterministic integer arithmetic.
Remove Inactive Stakes from Rewards
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Resource and Inclusion Fee
- Support
- Discuss
- Snapshot
- Voting
- Await
- Final
- 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…
Validate chained block id
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Specify the protocol for validating chained block ids under both TowerBFT and Alpenglow.
Loader V3: Set Program Data to ELF Length
- Idea
- Draft
- Review
- Accept
- Implement
- 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.…
Double Disinflation Rate
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Reduce the inflation schedule by increasing the disinflation rate from the current -15% rate to -30%.
Base Inclusion and Resource-based Fee
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Adapt Runtime for Rent Increases
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Relax Fee-Payer Constraint
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
secp256r1 (NIST P-256) Curve Syscalls
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Double Disinflation Rate
- Support
- Discuss
- Snapshot
- Voting
- Await
- Final
- Off-chain
Reduce the inflation schedule by increasing the disinflation rate from the current -15% rate to -30%.
The Solana Constitution
- Support
- Discuss
- Snapshot
- Voting
- Await
- Final
- 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…
Transaction V1 Format
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Big Integer ModExp Syscall
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Reduce Slot Times
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Multi Delegation Stake Account
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- Withdrawn
A new "multi stake" account that allows for multiple movements of stake, useful for simpler stake movement through more activations, deactivations, or redelegation.
Core BPF Upgrade Procedure
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
BLS12-381 Elliptic Curve Syscalls
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Relax Program Buffer Constraints
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This SIMD proposes relaxing current constraints on program buffers used by the DeployWithMaxDataLen (initial deployment) and Upgrade (redeployment) instructions, currently requiring them…
BLS Pubkey management in vote account
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Loaded Transaction Data Size Specification
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Disable deployment of SBPF-v0, -v1 and -v2
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Disable deployment of SBPFv0, SBPFv1 and SBPFv2.
Loader V3: Reclaim Closed Program
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Stricter shred validation
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Block Revenue Sharing
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Sha512 Syscall
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Introduce a sol sha512 syscall with an identical interface to sol sha256, producing SHA-512 hashes and outputting the 64-byte result.
Loader V3: Minimum Extend Program Size
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
SBPF Static Syscalls
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This SIMD introduces static syscalls, using the eBPF call instruction encoding, to remove runtime relocations while keeping compatibility with the eBPF encoding.
Upgrade secp256k1 to k256 (Agave-specific)
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Custom Commission Collector Account
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Allow validators to specify custom commission collector accounts where block revenue and inflation rewards commissions will be deposited.
Commission Rate in Basis Points
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Allow validators to update their inflations reward commission rate with basis points and update commission calculation.
Upgrade BPF Stake Program to v5.0.0
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This SIMD will upgrade the Core BPF Stake Program to v5.0.0.
Vote Account Initialize V2
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Precompile for verifying secp256r1 sig.
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Solana Proposal Process
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- Unknown
p-token: Efficient Token program
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Replace the current version of SPL Token (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA) program by a CU-optimized one (p-token).
Stake Program Float to Fixed-Point
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Enable Loader v2 to v3 Program Migrations
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This proposal introduces a feature-gated mechanism for runtime-level migration of Loader v2 programs to Loader v3.
Relax program data account check in migration
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This proposal relaxes the requirements for runtime-level migrations of programs (such as builtins) to permit system-owned programdata accounts to hold lamports.
Direct Account Pointers in Program Input
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Serialize pointers for instruction accounts to allow direct account access without requiring parsing of the account section.
BN254 G2 Arithmetic Syscalls
- Idea
- Draft
- Review
- Accept
- Implement
- 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.
Virtual Address Space Adjustments
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Virtual address space related changes split off from SIMD-0219: Removing pitfalls and foot-guns from the ABI (including syscalls) and runtime.
Syscall Parameter Address Restrictions
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Syscall parameter related changes split off from SIMD-0219: Removing pitfalls and foot-guns from the ABI (including syscalls) and runtime.
Stop special-casing of Vote CU cost
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Deprecate Rent Exemption Threshold
- Idea
- Draft
- Review
- Accept
- Implement
- 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)…
Incrementally Reduce lamports_per_byte to 696
- Idea
- Draft
- Review
- Accept
- Implement
- 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.…
Maximum instruction accounts
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Relaxing Transaction Signature Verification
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
eBPF ISA compatibility
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Fix alt_bn128_pairing syscall length check
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Reduce lamports_per_byte to 3480
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Safeguard for rent-exempt minimum increase
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
SBPF stricter ELF headers
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Imposes more restrictions on what is expected of ELF headers.
VM Register 2 Instruction Data Pointer
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Serialize Block ID in Bank into Snapshot
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Alpenglow Validator Admission Ticket
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Larger Transaction Size
- Idea
- Draft
- Review
- Accept
- Implement
- 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,…
Alpenglow migration
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Migrate to Alpenglow from TowerBFT
Vote Account v4
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Add a new version of vote account state to support alpenglow, block revenue distribution, and commission improvements.
Add `bank_hash` to block footer.
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This proposal adds the bank hash to the block footer and introduces validity constraints to ensure the bank hash matches the expected value.
Raise Block Limits to 50M CUs
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Raise the block limit from 48M to 50M CUs.
Relax Invalid Nonced Transactions Constraint
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
CreateAccountAllowPrefund
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Markers for Alpenglow Fast Leader Handover
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Poseidon Syscall - Enforce Input Length
- Idea
- Draft
- Review
- Accept
- Implement
- 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,…
Increase CPI Account Infos Limit
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Stricter ABI and Runtime Constraints
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Removing pitfalls and foot-guns from the ABI (including syscalls) and runtime.
Add Block Footer
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Add a block footer to Solana blocks and expose footer fields in the getBlock rpc endpoint.
Alpenglow
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Reduce ChaCha rounds for Turbine from 20 to 8
- Idea
- Draft
- Review
- Accept
- Implement
- 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.
Lift the CPI caller restriction
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- Withdrawn
Remove the check which forces CPI callers to have the program account of the callee available to them as an instruction account.
Get-Sysvar Syscall
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Timely Vote Credits
- Idea
- Draft
- Review
- Accept
- Implement
- 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".
Enforce 32 data + 32 coding shreds
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Sets rent_epoch to a constant in the VM
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Set the value of rent epoch—as serialized into the VM for transaction processing—to a constant.
Removes Accounts Delta Hash
- Idea
- Draft
- Review
- Accept
- Implement
- Active
With the introduction of the Accounts Lattice Hash (SIMD-215), the merkle-based Accounts Delta Hash is redundant and can be removed.
Snapshots use Accounts Lattice Hash
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Use the Accounts Lattice Hash as the Snapshot Hash , which enables removing the merkle-based accounts hash calculation.
Homomorphic Hashing of Account State
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Raise CPI Nesting Limit
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Increase the maximum number of nested CPI calls.
Static Instruction Limit
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Increase writeable account limit to 20M CUs
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Increase the per account CU limit from a static 12M to 40% of the block CU limit.
Increase Block Limits to 100M CUs
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Increase the block limit to 100M CUs.
SBPF instruction encoding improvements
- Idea
- Draft
- Review
- Accept
- Implement
- Active
There are some instructions with questionable encodings, that when slightly adjusted, could significantly simplify verification and execution of programs.
SBPF arithmetics improvements
- Idea
- Draft
- Review
- Accept
- Implement
- Active
This proposal introduces wide multiplication, signed division and explicit sign extension to SBPF.
Static Nonce Account Only
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Drop unchained merkle shreds
- Idea
- Draft
- Review
- Accept
- Implement
- Active
As the new shred format is being sent by all clients, this feature deprecates the old shred format.
SBPF Dynamic stack frames
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Increase Block Limits to 60M CUs
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Increase the block limit to 60M CUs.
Delay Commission Updates
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Allow validators to update their commission rate at any time but delay those commission updates for at least one full epoch.
Alt-BN128 Little Endian compatibility
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Extend the Alt-BN128 syscalls to add little endian support.
Slashable event verification
- Idea
- Draft
- Review
- Accept
- Implement
- 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.…
Relax Transaction Loading Constraints
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Skip Rent Rewrites
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Do not rewrite accounts that are unchanged by rent collection.
Disable Partitioned Rent Updates
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Remove Accounts `is_executable` Flag Checks
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Remove all checks of accounts is executable flag which can throw errors in the runtime.
Relax Precompile Failure Constraint
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
ZK ElGamal Proof Program
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Precompiles
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Define a unified behavior for precompiles, and highlight a few minor changes to the existing precompiles to minimize differences.
Migrate Snapshot Serialized Epoch Stakes
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Migrate bank snapshots to a new "epoch stakes" field in order to store additional stake state needed for calculating partitioned rewards.
Migrate Config to Core BPF
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Migrate the Config program to Core BPF.
Deprecate legacy vote instructions
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Disables the legacy Vote, UpdateVoteState and CompactUpdateVoteState instruction variants.
EC Syscalls - Abort on Unsupported Curve/Ops
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Migrate Address Lookup Table to Core BPF
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Migrate the Address Lookup Table program to Core BPF.
Partitioned Epoch Rewards Distribution
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Maintain Dynamic Set of Reserved Account Keys
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Programify Feature Gate Program
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Enable Core BPF Programs
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Syscall for remaining compute units
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- Withdrawn
Add a new syscall to access the number of compute units that are left to use in a transaction.
Vote Account Address Keyed Leader Schedule
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Syscall Get-Epoch-Stake
- Idea
- Draft
- Review
- Accept
- Implement
- Active
A syscall to retrieve a vote account's delegated stake or the total cluster stake for the current epoch.
Reward full priority fee to validator
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Reward 100% of priority fee to validator.
Fix alt-bn128 multiplication syscall length
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
MoveStake and MoveLamports Instructions
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Migrate Stake to Core BPF
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Migrate the Stake program to Core BPF.
Consume requested CUs for sBPF failures
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Reserve minimal CUs for builtins
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Optimistic cluster restart automation
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Alt_BN128 Syscalls - Simplified Error Code
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Disable Bpf loader V2 program deployment
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Disable BPF Loader V2 for program deployment.
Additional Fee-Collector Constraints
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Disable rent fees collection
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Add a new feature to disable rent fees collections.
Relax Entry Constraints
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Remove the constraint that transaction entries cannot contain conflicting transactions.
Allow Commission Decrease at Any Time
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Transaction Receipts
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- 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…
Syscall and Sysvar for last restart slot
- Idea
- Draft
- Review
- Accept
- Implement
- 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…
Partitioned Epoch Rewards Distribution
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- 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 Access Policy
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- 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…
Native Program for verifying secp256r1 sig.
- Idea
- Draft
- Review
- Accept
- Implement
- Active
- 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…