Celestia Node v0.25 Release Notes
This release includes significant changes accumulated since May 2025 while waiting for the Celestia App v4/v5 mainnet update. Please review all breaking changes carefully before upgrading.
TL;DR
⚠ API Breaking Changes
- JSON integers now encoded as strings (Tendermint compatibility)
- Blobstream root encoding switched to hex (plus pointer cleanups in Go API)
- Gateway removed → use direct API; configure CORS as needed
Config Update Required Run before starting:
celestia <node_type> config-updateData Retention Changes
- Full Nodes: Pruning enabled by default (≈30 days)
- Light Nodes: Sampling window reduced to 7 days
- Use
--archivalto keep full history
API Enhancements – Configurable CORS, new client library, multi-endpoint tx submission
Faster GetRange – Uses shwap protocol for efficient partial retrieval
Performance Boosts – Parallelized namespace data; optimized blob retrieval
Bootstrap Updates – Added 01node mainnet bootstrap; removed outdated nodes
:rotating_light: Breaking Changes
Configuration Breaking Changes
This release contains configuration breaking changes. Node operators must run the config update command before starting their node:
celestia <node_type> config-update --p2p.network (or --node.store)
API & JSON Compatibility
- fix(api/header)!: tendermint compatible json marshall #3928 by @zvolin (ported in https://github.com/celestiaorg/celestia-node/pull/4428)
- fix(share)!: tendermint compatible get range result json marshall by @zvolin in https://github.com/celestiaorg/celestia-node/pull/3930
- fix(blob)!: tendermint compatible commitment proof json marshall #3929 by @zvolin (ported in https://github.com/celestiaorg/celestia-node/pull/4434)
Changes:
- Integer values in JSON responses are now encoded as strings for Tendermint compatibility
- Example:
“height”: 67374becomes“height”: “67374”
Migration: Update JSON parsing logic to handle integers as strings in header, share range, and blob commitment proof endpoints.
Gateway Removal
- refactor(api)!: removing gateway by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/4120
Migration: If you were using the gateway, switch to direct API endpoints. Configure CORS policy using the new configurable CORS feature if needed.
Blobstream API Changes
- refactor!(blobstream): change DataRootTupleRoot to HexBytes type alias by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4390
- fix!(blobstream): change DataRootTupleInclusionProof type by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4430
- fix!(blobstream): change GetDataRootTupleRoot return type by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4435
- fix(open-rpc): add blobstream api docs by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4432
Changes:
DataRootTupleRoot: String encoding changed from base64 to hex bytesDataRootTupleInclusionProof: Removed extra pointer (affects native Go API only, not JSON encoding)GetDataRootTupleRoot: Removed extra pointer in returned value (affects native Go API only)- Blobstream API is now publicly documented
Migration:
- Update code expecting base64 encoded roots to handle hex encoding
- Go API users: Update code to handle direct values instead of pointers
GetRange efficiency improvements
- feat!(share/shwap): implement get range request over shwap by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4156
- refactor!(share/shwap): rework range namespace data by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4325
Changes:
- GetRange requests now use efficient P2P protocol instead of downloading entire EDS
- Significant performance improvement for partial data retrieval
Migration: Update clients using range requests to use the new shwap protocol implementation.
Data Pruning Now Default
- refactor(nodebuilder/pruner)!: Remove --experimental-pruning by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4303
- feat(share/availability)!: lower sampling window to 7 days by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4427
Changes:
- Data pruning is now enabled by default (stores 30 days of data)
- Sampling window reduced from 30 to 7 days
- Archival nodes must use
--archivalflag to disable pruning
Migration:
- Archival nodes: Add
--archivalflag to maintain full history - All other nodes: Remove
--experimental-pruningflag (pruning is now automatic) - Adjust monitoring for the new 7-day sampling window
:arrows_counterclockwise: Bootstrap Nodes
- chore: removing the bootstrapper 3 and 4 from lunar by @tty47 in https://github.com/celestiaorg/celestia-node/pull/4302
- chore(bootstrapers): add 01node mainnet bootstrap node by @daemon2k3 in https://github.com/celestiaorg/celestia-node/pull/4270
:sparkles: New Features
API Enhancements
- feat(api): Celestia client lib by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4318
- feat(api): allow configurable CORS policy by @TheRealSibasishBehera in https://github.com/celestiaorg/celestia-node/pull/4266
- feat(nodebuilder/core | state): Multi-core endpoint tx submission by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4380
Testing Infrastructure
- test: Tastora framework integration with test for blob module by @chatton in https://github.com/celestiaorg/celestia-node/pull/4283
- test: tastora remove fullnode and rely on bridge and light nodes only by @gupadhyaya in https://github.com/celestiaorg/celestia-node/pull/4441
- test: use tastora docker types instead of interface types by @gupadhyaya in https://github.com/celestiaorg/celestia-node/pull/4421
:rocket: Performance Improvements
- perf(share/eds): parallelise row nd collection in NamespaceData by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4420
- perf(api/da): request all blobs once in da.Get by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4431
:wrench: Bug Fixes
- chore: fix incorrect logging in
updateHeadby @santamasa in https://github.com/celestiaorg/celestia-node/pull/4191 - fix: fix lint by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4388
- fix(core/tests): fix core unit tests by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4366
- fix(test/blob): fix flaky blob test by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/4429
- fix(nodebuilder): submit input validation by @cristaloleg in https://github.com/celestiaorg/celestia-node/pull/3976
- fix: rename FuzzProofEqual to FuzzBlobUnmarshal by @GarmashAlex in https://github.com/celestiaorg/celestia-node/pull/4414
- chore: update warning text on pruned -> archival conversion by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4471
- docs(api/da): doc and deprecate DA API by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4470
Test Fixes
- chore(node/tests): fix and cleanup swamp tests by @shipit in https://github.com/celestiaorg/celestia-node/pull/4381
- chore(node/tests): fix a flaky nd test by @shipit in https://github.com/celestiaorg/celestia-node/pull/4382
:broom: Chore & Maintenance
Go Version & Core Dependencies
- bump go version by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4312
- deps!: bump go-header v0.6.6 and go-fraud v0.2.3 by @cristaloleg in https://github.com/celestiaorg/celestia-node/pull/4217
- deps(go.mod): bump libp2p dep by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4401
- deps(go.mod): bump tendermint replace by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4396
- chore(deps): upgrade to go-square v2.3.1 by @rootulp in https://github.com/celestiaorg/celestia-node/pull/4402
Celestia App Updates (v3 → v5)
- deps(go.mod): bump app by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4275
- deps(go.mod): bump app arabica by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4293
- deps(go.mod): bump app to mocha by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4301
- deps(go.mod): Bump app by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4363
- deps(go.mod): Bump app mocha by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4368
- deps(go.mod): Bump app
arabicaby @renaynay in https://github.com/celestiaorg/celestia-node/pull/4383 - deps(go.mod): bump app
mochaby @renaynay in https://github.com/celestiaorg/celestia-node/pull/4385 - chore(deps): upgrade to app v4.0.9-arabica by @rootulp in https://github.com/celestiaorg/celestia-node/pull/4391
- deps(go.mod): bump app
mochaby @renaynay in https://github.com/celestiaorg/celestia-node/pull/4394 - deps(go.mod): bump app mainnet by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4408
- chore: bump to v5 of app by @Evan in https://github.com/celestiaorg/celestia-node/pull/4444
- deps(go.mod): bump app mocha by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4448
- chore(deps): upgrade to app v5.0.1 by @rootulp in https://github.com/celestiaorg/celestia-node/pull/4450
Tastora Dependencies
- deps(nodebuilder/tests/tastora): mod tidy by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4405
- chore(lint): fmt to tidy tastora go.mod by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4447
Repo
- chore(CODEOWNERS): remove @cristaloleg by @cristaloleg in https://github.com/celestiaorg/celestia-node/pull/4272
- Add Ganesh to CODEOWNERS by @walldiss in https://github.com/celestiaorg/celestia-node/pull/4300
- chore: magic env variable doc update by @damiannolan in https://github.com/celestiaorg/celestia-node/pull/4259
- chore: upgrade to golangci-lint v2 by @shipit in https://github.com/celestiaorg/celestia-node/pull/4280
- (.github): add
kind:perfto assortment of required labels by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4419 - misc(core): add eds size to store log by @renaynay in https://github.com/celestiaorg/celestia-node/pull/4343
New Contributors
- @damiannolan made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4259
- @santamasa made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4191
- @TheRealSibasishBehera made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4266
- @gupadhyaya made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4421
- @GarmashAlex made their first contribution in https://github.com/celestiaorg/celestia-node/pull/4414
Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.24.1...v0.25-arabica