Releases: solana-foundation/solana-go
v1.20.0
v1.19.0
1.19.0 (2026-04-23)
Features
- is token mint classifier (4f72982)
Bug Fixes
- enhance getUint64 function to handle string inputs (5309095)
- keep websocket request IDs within JSON-safe range (8ed3105)
- message: json version detection (1fd2201)
- message: use gojson (8d211d5)
- reject malformed ed25519 private keys in PrivateKeyFromBase58 (edcedcc)
- rpc: match ParsedTransactionMeta to TransactionMeta (a0f95c2)
Performance Improvements
v1.18.0
1.18.0 (2026-04-16)
Features
- add getters to txn with meta (48d196b)
- add token-2022 extensions (04dfc79)
- add token-2022 extensions (db2fdaa)
- stake state types & ext tests (6325515)
- stake state types & ext tests (ea77e31)
- vote program complete (173d7f4)
- vote program complete (dcff584)
Bug Fixes
- allign rpc client with agave (49bc8d6)
- allign rpc client with agave (c985b99)
- memo program parity (f832bd8)
- memo program parity (7550777)
Performance Improvements
v1.17.0
What's Changed
Performance
- 16x faster base58 encoding/decoding — migrated to
fd_base58algorithm (ported from Firedancer) with hand-written ARM64/AMD64 assembly.PublicKey.String()drops from 937ns to 57ns. by @sonicfromnewyoke in #379
Bug Fixes
- Fix SOL/WSOL address mismatch —
SolMintandWrappedSolwere incorrectly pointing to the same address by @sonicfromnewyoke in #378 - Fix message version detection and add transaction validation (
Sanitize,HasDuplicates,VerifyWithResults) to match Rust SDK by @sonicfromnewyoke in #381 - Fix WebSocket client goroutine/channel leaks, race conditions, and premature
Close()returns — now passes-raceflag by @sonicfromnewyoke in #383 - Actualize
SimulateTransactionto match official Solana RPC spec — addedInnerInstructions,MinContextSlot,ReturnData, and more by @sonicfromnewyoke in #382
New Features
- Add
SetLoadedAccountsDataSizeLimitinstruction to compute budget program by @0xvbetsun in #310 - Add
UpgradeNonceAccountinstruction to system program by @datmedevil17 in #355 - Add token-program-aware ATA helpers for Token-2022 support by @lgalabru in #375
- Implement
GetStakeMinimumDelegationRPC method by @sonicfromnewyoke in #372
Maintenance
- Replace deprecated Go patterns (
ioutil→io,interface{}→any,sort.Slice→slices.SortFunc) by @sonicfromnewyoke in #373 - Actualize documentation — streamlined README from ~3,000 to ~865 lines, extracted 63 examples into testable functions by @sonicfromnewyoke in #372
Issues Closed
New Contributors
- @0xvbetsun made their first contribution in #310
- @datmedevil17 made their first contribution in #355
- @lgalabru made their first contribution in #375
Full Changelog: v1.16.0...v1.17.0
v1.16.0
What's Changed
- Actualize RPC methods to match current Solana API spec by @sonicfromnewyoke in #363
This release updates RPC methods to align with the current Solana RPC API. Deprecated method names have been removed:
| Removed | Use Instead |
|---|---|
GetConfirmedBlock |
GetBlock |
GetRecentBlockhash |
GetLatestBlockhash |
GetConfirmedSignaturesForAddress2 |
GetSignaturesForAddressWithOpts |
GetConfirmedTransaction |
GetTransaction |
CommitmentMax |
CommitmentFinalized |
If your code uses any of the removed methods, update to the new names listed above.
Full Changelog: v1.15.0...v1.16.0
v1.15.0
This release marks solana-go is now a core repo maintained by solana foundation and solana community under solana-foundation/solana-go. Contributions are welcome!
Special thanks to @gagliardetto for creating and maintaining this project over the years. His work has been the backbone of the Solana Go ecosystem. @jacobcreech
What's Changed
Bug Fixes
- Fix race condition in WebSocket subscription channel send by @bloXroute-Labs in #306
- Fix Mint.Decode pointer receiver reassignment by @nicholasgasior in #296
- Fix memo instruction length prefix encoding by @rickyrombo in #330
- Fix deterministic account sorting using bytes.Compare by @HealthyBuilder in #367
- Fix address lookup table ordering by @sonicfromnewyoke in #365
New Programs & Features
- Add Token-2022 (SPL Token 2022) program support by @sonicfromnewyoke in #360
- Add stake program instructions by @sonicfromnewyoke in #361
- Add address lookup table (ALT) instructions by @sonicfromnewyoke in #359
- Update associated token account program (CreateIdempotent) by @sonicfromnewyoke in #358
- Add sysvar constants by @sonicfromnewyoke in #362
Maintenance
- Remove defunct Serum DEX program by @sonicfromnewyoke in #357
- Upgrade Go minimum version to 1.24, update CI matrix by @sonicfromnewyoke in #369
- Bump vulnerable dependencies (x/crypto, x/net, grpc, jsonparser) by @sonicfromnewyoke in #370
New Contributors
- @bloXroute-Labs made their first contribution in #306
- @nicholasgasior made their first contribution in #296
- @rickyrombo made their first contribution in #330
- @sonicfromnewyoke made their first contribution in #357
- @HealthyBuilder made their first contribution in #367
Full Changelog: v1.14.0...v1.15.0
v1.14.0
What's Changed
- Add SetAccounts implementation to be able to access accounts for Create instruction after decoding by @marcin-cb in #337
New Contributors
- @marcin-cb made their first contribution in #337
Full Changelog: v1.13.0...v1.14.0
v1.13.0
What's Changed
- Fix nil pointer dereference in GetBinary (Fixes #264) by @sina-haseli in #265
- Add address lookup table program id by @patrulek in #266
- Added version information in MarshalWithEncoder, UnmarshalWithDecoder methods of GetTransactionResult by @newmanifold in #275
- Add number of reward partitions field to getBlock response by @OwenJacob in #263
- accountInfo struct refine by @wmh in #261
- Add SolDecimals constants by @taobig in #293
New Contributors
- @sina-haseli made their first contribution in #265
- @patrulek made their first contribution in #266
- @OwenJacob made their first contribution in #263
- @wmh made their first contribution in #261
Full Changelog: v1.12.0...v1.13.0
v1.12.0
What's Changed
- fix: Add
ShortIDoption for some WebSocket RPC which not support int63/uint64 ID by @GoudanWoo in #179 - Update README.md by @taobig in #195
- fix: check if the channel is closed before returning ws.result to prevent panic by @mhughdo in #198
- fix pointer dereference partially by @0xcary in #201
- Subscribe block by @blockchain-develop in #203
- Add stack height to inner instruction by @sebkaluzny in #227
- fix memory leak in ws client by @SC4RECOIN in #228
- add stake program by @conorpp in #235
- Memo program support by @PlamenHristov in #240
- Fix PublicKey's UnmarshalBSONValue method by @newmanifold in #242
- RPC: Add MinContextSlot to GetMultipleAccountsWithOpts by @bruce-riley in #245
- add version and add program id in TokenBalance type by @verzth in #253
- Add ctx to Recv by @boolangery in #259
- Method to get the marketAuthority(PDA) from the Market Initialization by @andmart in #247
New Contributors
- @taobig made their first contribution in #195
- @mhughdo made their first contribution in #198
- @0xcary made their first contribution in #201
- @blockchain-develop made their first contribution in #203
- @sebkaluzny made their first contribution in #227
- @SC4RECOIN made their first contribution in #228
- @PlamenHristov made their first contribution in #240
- @newmanifold made their first contribution in #242
- @bruce-riley made their first contribution in #245
- @verzth made their first contribution in #253
- @boolangery made their first contribution in #259
- @andmart made their first contribution in #247
Full Changelog: v1.11.0...v1.12.0
v1.11.0
What's Changed
- fix panic by @abcdsxg in #218
- Fix order of signatures in PartialSign function by @VincentDebug in #225
New Contributors
- @abcdsxg made their first contribution in #218
- @VincentDebug made their first contribution in #225
Full Changelog: v1.10.0...v1.11.0