modules
List deployed Bitcoin Computer modules indexed by the node.
Endpoint
/v1/CHAIN/NETWORK/modules
Description
The node indexes module deploy transactions into a dedicated Module table (see the DB schema).
Module deploys are not smart-object transitions. They store ECMAScript module source on chain:
- multisig — cleartext
{ ept }in bare-multisig data outputs - taproot — module body in a reveal-input witness envelope with protocol id
BC(content typetext/javascript)
Clients deploy modules with computer.deploy, load them with computer.load, and list indexed rows with computer.getModules. This endpoint is the HTTP surface those client methods call.
Owner outputs from module deploys still appear in the Output table like other payments; the Module row holds the source (ept) and storage type.
Query Parameters
Notes:
BCN_QUERY_LIMITis configurable in your.envfile. If set, anylimitexceeding this value returns a validation error.- Results are ordered by the row
timestamp(when the node indexed the module), not by block height.- Unconfirmed (mempool) modules have
blockHash/blockHeightunset until the deploy is confirmed. On reorg, confirmation fields are cleared; on hard mempool cleanup, unconfirmed module rows may be deleted.
Example
Request — list specifiers
curl -X GET "http://localhost:1031/v1/LTC/regtest/modules?limit=10"
Request — full rows, confirmed multisig only
curl -X GET "http://localhost:1031/v1/LTC/regtest/modules?verbosity=1&storageType=multisig&isConfirmed=true&limit=10"
Response
Success (200) — verbosity=0 (default)
[
"a477af6b2667c29670467e4e0728b685ee07b240235771862318e29ddbe58458:0",
"b588bf7c3778d3a781578e5f1839c796ff18c351346882973429f3aee0ce69569:0"
]
Success (200) — verbosity=1
[
{
"mod": "a477af6b2667c29670467e4e0728b685ee07b240235771862318e29ddbe58458:0",
"ept": "export class Counter extends Contract {\n constructor() { super({ n: 0 }) }\n inc() { this.n += 1 }\n}\n",
"storageType": "multisig",
"blockHash": "00000000000000000000000000000000000000000000000000000000000000ff",
"blockHeight": 104,
"timestamp": "2026-07-22T12:00:00.000Z"
}
]
Validation errors (400)
{ "error": "limit must be a number not exceeding 1000" }
{ "error": "storageType must be 'multisig' or 'taproot'" }
Server error (500)
{ "error": "Internal server error message" }
See also
- module — fetch one module (including source) by specifier
- Client: getModules, deploy / load
- Operate & Troubleshoot — auth, schema upgrade, empty
/modules - non-standard-utxos — smart-object revisions filtered by module membership (
mod), not deploy source - deploy / load — client-side deploy and load