Breaking changes & protocol notes
Short log of protocol and API changes that affect upgrades. Prefer matching lib and node versions (Operate & Troubleshoot).
0.27 — First-class module deploys
Wire format
Module deploys are not smart-object transitions.
Legacy shapes that stored modules as transition exp fields or non-BC inscription envelopes are not read.
Client API
deploy/load— write and evaluate modulesdecode— throwsModuleDecodeErroron module deploys; useload. Import{ ModuleDecodeError }from@bitcoin-computer/libforinstanceof.getModules/getModule— list/fetch indexed source without evaluating- Static
getInscription— parse aBCwitness from raw hex txIdToBlockTimenow returnsPromise<bigint | undefined>(wasnumber). Mixingbigintwith number arithmetic throws.
Node
Moduletable +GET /modulesandGET /module/:mod- Existing databases must apply the
ModuleDDL if they predate this feature — see schema upgrade - ZMQ/sync index module deploys; reorg clears module confirmation fields; mempool cleanup can delete unconfirmed module rows
Docs / migration tips
- Upgrade node, apply
Moduletable if needed, restart. - Upgrade
@bitcoin-computer/libto the same version. - Replace any code that treated module txs as transitions (
decode/ fakeexp). - After
deploy, callwaitForIndexedbefore relying ongetModules/ object queries. - Prefer
getOUTXOsover deprecatedqueryfor listing smart objects.
Deprecated client APIs (still present)
See the Computer index for the full list.