Manager API#

The GenVM Manager is an HTTP server that provides an API for managing GenVM instances, modules, and related operations.

GET /status#

Get manager status

Returns the current status of the manager, its modules, permits, and running executions.

Status Codes:
POST /module/start#

Start a module

Start a module with the specified configuration.

Status Codes:
POST /module/stop#

Stop a module

Stop a running module.

Status Codes:
POST /genvm/run#

Start a GenVM execution

Start a new GenVM instance for contract execution.

The request body uses calldata binary encoding (not JSON). The schema below shows the logical structure that must be encoded using the calldata format.

Status Codes:
GET /genvm/{genvm_id}#

Get GenVM status

Get the status of a specific GenVM instance.

Parameters:
  • genvm_id (integer) – Unique identifier of the GenVM instance

Status Codes:
DELETE /genvm/{genvm_id}#

Shutdown GenVM instance

Gracefully shutdown a GenVM instance.

Parameters:
  • genvm_id (integer) – Unique identifier of the GenVM instance

Query Parameters:
  • wait_timeout_ms (integer) – Timeout in milliseconds to wait for graceful shutdown

Status Codes:
POST /contract/detect-version#

Detect contract version

Detect the major version specification from contract bytecode.

Status Codes:
Request Headers:
  • Deployment-Timestamp – Contract deployment timestamp in RFC3339 format (Required)

POST /log/level#

Set log level

Set the logging level for the manager.

Status Codes:
POST /manifest/reload#

Reload manifest

Reload the executor version manifest.

Status Codes:
POST /env#

Set environment variable

Set an environment variable in the manager process.

Status Codes:
GET /permits#

Get permits

Get the current number of execution permits available.

Status Codes:
POST /permits#

Set permits

Set the number of execution permits.

Status Codes:
POST /llm/check#

Check LLM availability

Test availability and functionality of LLM provider configurations.

Status Codes:
GET /vm-error/describe#

Describe VM error

Get a human-readable description for a VM error code.

Query Parameters:
  • error (string) – The VM error code to describe (Required)

Status Codes:
{
  "v0.1.0": {
    "cpython": [
      "1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0"
    ],
    "models-all-MiniLM-L6-v2": [
      "1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb"
    ],
    "py-genlayer": [
      "15qfivjvy80800rh998pcxmd2m8va1wq2qzqhz850n8ggcr4i9q0"
    ],
    "py-genlayer-multi": [
      "0cwifyzi3956f9yxdpq5kk3ihazv2llsxfj626zbadrg4cizwhq5"
    ],
    "py-lib-cloudpickle": [
      "1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb"
    ],
    "py-lib-genlayer-embeddings": [
      "09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi"
    ],
    "py-lib-genlayer-std": [
      "0asq35p8mzlzwgxcrx5v51srnsqyj72cq7993way1vqddwxcvkq4"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq"
    ],
    "softfloat": [
      "17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n"
    ]
  },
  "v0.1.3": {
    "cpython": [
      "1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0"
    ],
    "models-all-MiniLM-L6-v2": [
      "1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb"
    ],
    "py-genlayer": [
      "1j12s63yfjpva9ik2xgnffgrs6v44y1f52jvj9w7xvdn7qckd379"
    ],
    "py-genlayer-multi": [
      "0xn02qjjqlpxadhs124cwrr5ddqs7dxcc6m5a7c6801hv54l66p0"
    ],
    "py-lib-cloudpickle": [
      "1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb"
    ],
    "py-lib-genlayer-embeddings": [
      "09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi"
    ],
    "py-lib-genlayer-std": [
      "1mds1jiy7phn7b7irqviwbl8lp026dsxfkzv88gj0lkmvcqk5aak"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq"
    ],
    "softfloat": [
      "17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n"
    ]
  },
  "v0.1.8-runner-hash___": {
    "cpython": [
      "1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0"
    ],
    "models-all-MiniLM-L6-v2": [
      "1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb"
    ],
    "py-genlayer": [
      "132536jbnxkd1axfxg5rpfr5b60cr11adm2y4r90hgn0l59qsp9w"
    ],
    "py-genlayer-multi": [
      "0iddpsb7hsrqv10xf4sjdiknba0m3fkm2x9xldy7ci3gj1fpkpjy"
    ],
    "py-lib-cloudpickle": [
      "1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb"
    ],
    "py-lib-genlayer-embeddings": [
      "09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi"
    ],
    "py-lib-genlayer-std": [
      "0mmsw09shx3613jzkhbmqyqw60h6b27hy7bjdbb1msfp40g2idi6"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq"
    ],
    "softfloat": [
      "17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n"
    ]
  },
  "v0.2.1": {
    "cpython": [
      "1bk9g3zgym0rrpd9lk584cxfaa4rg0cz36w6xhzkqdj1m2p4xa9n"
    ],
    "models-all-MiniLM-L6-v2": [
      "0d1skbkxl1ij1sfm0jvnh18ih5a9mxfiny0myqnyf0wa5jc50mis"
    ],
    "py-genlayer": [
      "1jb45aa8ynh2a9c9xn3b7qqh8sm5q93hwfp7jqmwsfhh8jpz09h6"
    ],
    "py-genlayer-multi": [
      "06zyvrlivjga0d5jlpdbprksc0pa6jmllxvp8s20hq1l512vh5yk"
    ],
    "py-lib-cloudpickle": [
      "1dlk6mnfabi0z7r39635amyfzw8xb6rm8bv4pmgv6ji1bfx9hghd"
    ],
    "py-lib-genlayer-embeddings": [
      "0bmbm3cyfwxsyh454z53vxqjf47wz2q7smcqp1q4g4a6k2kidnyk"
    ],
    "py-lib-genlayer-std": [
      "11rhn002yfajawsz7fai6mykznbxkxs6l91iskj5cm82c92qhy3v"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0vjc9x1qqv7bgkf9aldqsi708892vzh2w7mwzhq6w1174qan4bas"
    ],
    "softfloat": [
      "08g85lmbfjngvvjyx1gr1pyk61nqba0y42gba8wrb1qd3zkv2gmd"
    ]
  },
  "v0.2.4": {
    "cpython": [
      "1bk9g3zgym0rrpd9lk584cxfaa4rg0cz36w6xhzkqdj1m2p4xa9n"
    ],
    "models-all-MiniLM-L6-v2": [
      "0d1skbkxl1ij1sfm0jvnh18ih5a9mxfiny0myqnyf0wa5jc50mis"
    ],
    "py-genlayer": [
      "1jb45aa8ynh2a9c9xn3b7qqh8sm5q93hwfp7jqmwsfhh8jpz09h6"
    ],
    "py-genlayer-multi": [
      "06zyvrlivjga0d5jlpdbprksc0pa6jmllxvp8s20hq1l512vh5yk"
    ],
    "py-lib-cloudpickle": [
      "1dlk6mnfabi0z7r39635amyfzw8xb6rm8bv4pmgv6ji1bfx9hghd"
    ],
    "py-lib-genlayer-embeddings": [
      "0bmbm3cyfwxsyh454z53vxqjf47wz2q7smcqp1q4g4a6k2kidnyk"
    ],
    "py-lib-genlayer-std": [
      "11rhn002yfajawsz7fai6mykznbxkxs6l91iskj5cm82c92qhy3v"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0vjc9x1qqv7bgkf9aldqsi708892vzh2w7mwzhq6w1174qan4bas"
    ],
    "softfloat": [
      "08g85lmbfjngvvjyx1gr1pyk61nqba0y42gba8wrb1qd3zkv2gmd"
    ]
  },
  "v0.2.5": {
    "cpython": [
      "1bk9g3zgym0rrpd9lk584cxfaa4rg0cz36w6xhzkqdj1m2p4xa9n"
    ],
    "models-all-MiniLM-L6-v2": [
      "0d1skbkxl1ij1sfm0jvnh18ih5a9mxfiny0myqnyf0wa5jc50mis"
    ],
    "py-genlayer": [
      "1jb45aa8ynh2a9c9xn3b7qqh8sm5q93hwfp7jqmwsfhh8jpz09h6"
    ],
    "py-genlayer-multi": [
      "06zyvrlivjga0d5jlpdbprksc0pa6jmllxvp8s20hq1l512vh5yk"
    ],
    "py-lib-cloudpickle": [
      "1dlk6mnfabi0z7r39635amyfzw8xb6rm8bv4pmgv6ji1bfx9hghd"
    ],
    "py-lib-genlayer-embeddings": [
      "0bmbm3cyfwxsyh454z53vxqjf47wz2q7smcqp1q4g4a6k2kidnyk"
    ],
    "py-lib-genlayer-std": [
      "11rhn002yfajawsz7fai6mykznbxkxs6l91iskj5cm82c92qhy3v"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0vjc9x1qqv7bgkf9aldqsi708892vzh2w7mwzhq6w1174qan4bas"
    ],
    "softfloat": [
      "08g85lmbfjngvvjyx1gr1pyk61nqba0y42gba8wrb1qd3zkv2gmd"
    ]
  },
  "vTEST": {
    "cpython": [
      "1bk9g3zgym0rrpd9lk584cxfaa4rg0cz36w6xhzkqdj1m2p4xa9n"
    ],
    "models-all-MiniLM-L6-v2": [
      "0d1skbkxl1ij1sfm0jvnh18ih5a9mxfiny0myqnyf0wa5jc50mis"
    ],
    "py-genlayer": [
      "1jb45aa8ynh2a9c9xn3b7qqh8sm5q93hwfp7jqmwsfhh8jpz09h6"
    ],
    "py-genlayer-multi": [
      "06zyvrlivjga0d5jlpdbprksc0pa6jmllxvp8s20hq1l512vh5yk"
    ],
    "py-lib-cloudpickle": [
      "1dlk6mnfabi0z7r39635amyfzw8xb6rm8bv4pmgv6ji1bfx9hghd"
    ],
    "py-lib-genlayer-embeddings": [
      "0bmbm3cyfwxsyh454z53vxqjf47wz2q7smcqp1q4g4a6k2kidnyk"
    ],
    "py-lib-genlayer-std": [
      "11rhn002yfajawsz7fai6mykznbxkxs6l91iskj5cm82c92qhy3v"
    ],
    "py-lib-protobuf": [
      "0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1"
    ],
    "py-lib-word_piece_tokenizer": [
      "0vjc9x1qqv7bgkf9aldqsi708892vzh2w7mwzhq6w1174qan4bas"
    ],
    "softfloat": [
      "08g85lmbfjngvvjyx1gr1pyk61nqba0y42gba8wrb1qd3zkv2gmd"
    ]
  }
}