Solana Program Deploy Cost Estimator

Rent and account-funding estimator for new upgradeable program deploys. Enter program bytes directly, or use a local .so picker to fill the byte count from file.size. Variable transaction fees and priority fees are excluded from the main estimate.

Use the final binary size in raw bytes. Max accepted program size is 10,485,715 bytes because programdata adds 45 loader bytes. Shared links keep only bytes and cluster.

Mainnet-beta is the default. Switching clusters reruns the same byte estimate.

Reads local file.size only. Nothing is uploaded.

102,400 program bytes on Mainnet Beta. Last-known mainnet fallback

Last-known mainnet fallback estimate

Temporary buffer rentBuffer account data size = 37 + program bytes = 102,437 bytes
649,544,145 lamports0.649544145 SOL
Fixed program account rentProgram account data size = 36 bytes
1,038,612 lamports0.001038612 SOL
Programdata rentProgramdata account data size = 45 + program bytes = 102,445 bytes
649,594,809 lamports0.649594809 SOL
Total rent funded during a new deployProtocol rent only. Variable network fees are excluded.
1,300,177,566 lamports1.300177566 SOL

Unclaimed SOL recovery angle

Product-specific
Reclaimable buffer SOL if the temporary buffer is left openProtocol view. This equals the buffer rent deposit, not the full deploy funding.
649,544,145 lamports0.649544145 SOL
Via Unclaimed SOL you would receive after the current 5% buffer feeProduct-specific view, not protocol math.
617,066,937 lamports0.617066937 SOL

Successful deploys typically drain the temporary buffer. Failed or abandoned uploads can leave that buffer open and its rent reclaimable later.

Deployed already? Check your reclaimable buffer rent

Main number uses the last-known mainnet rent fallback. Live RPC is authoritative for the selected cluster. Signature fees, write fees, and priority fees are intentionally excluded because they vary by transaction path and cluster conditions.

How Solana upgradeable deployments use a temporary buffer

Upgradeable program deploys stage the program bytes in a temporary buffer account first. That buffer must be rent exempt, just like the fixed 36-byte program account and the programdata account that holds the deployed bytes on-chain. This estimator focuses on that rent/account funding for a new deploy.

Why buffer and programdata accounts have different overhead

The temporary buffer and the final programdata account both scale with program size, but they are not the same loader account type. The buffer uses 37 + program_bytes, while programdata uses 45 + program_bytes. The program account itself is a fixed 36 bytes and does not grow with the binary.

Why exact-size deployment matters after Solana/Agave 1.18.0

New deploys default to the exact size of the program instead of automatically allocating double-sized headroom. That makes the final .so byte count materially important for both the temporary buffer rent and the programdata rent funded during first deploy.

Worked examples using the last-known mainnet fallback

These static examples may differ from live RPC values for the selected cluster. Their program account rent stays fixed at 1,038,612 lamports (0.001038612 SOL) across these examples. The variable cost comes from the buffer and programdata accounts.

Program sizeTemporary buffer rentProgramdata rentTotal rent fundedReclaimable buffer if left open
100 KB 102,400 bytes 649,544,145 0.649544145 SOL 649,594,809 0.649594809 SOL 1,300,177,566 1.300177566 SOL 649,544,145 0.649544145 SOL
500 KB 512,000 bytes 3,243,540,945 3.243540945 SOL 3,243,591,609 3.243591609 SOL 6,488,171,166 6.488171166 SOL 3,243,540,945 3.243540945 SOL
1 MB 1,048,576 bytes 6,641,676,753 6.641676753 SOL 6,641,727,417 6.641727417 SOL 13,284,442,782 13.284442782 SOL 6,641,676,753 6.641676753 SOL

Frequently asked questions

Does this include transaction fees or priority fees?

No. The protocol estimate covers only the rent-exempt funding for the temporary buffer, the fixed program account, and the programdata account. Signature fees, write fees, and priority fees depend on the transaction path and are intentionally excluded from the main number.

Does the file picker read or inspect my binary?

No. The page only uses the browser-provided file metadata to read file.size and fill the byte field. The binary stays local to your browser.

Why are the buffer and programdata account sizes different?

Upgradeable loader accounts do not store identical metadata. The temporary buffer uses a 37-byte header plus program bytes, while programdata uses a 45-byte header plus the same program bytes. The program account itself is a separate fixed 36-byte account.

Can a failed deploy leave reclaimable SOL behind?

Yes. A successful deploy normally drains the temporary buffer, but failed or abandoned uploads can leave buffer rent locked until the buffer authority closes that account.