Skip to main content

commitCvmProvision

POST /cvms Commits a CVM provision, finalizing the deployment. This is the second phase of the two-phase flow started by provisionCvm. The required parameters differ based on the KMS type:
  • PHALA KMS: app_id comes from the provisionCvm response.
  • On-chain KMS (ETHEREUM/BASE): app_id comes from deploying an AppAuth contract via deployAppAuth. You must also provide kms_id, contract_address, and deployer_address.
Parameters:
FieldTypeRequiredDescription
app_idstringYesApp ID from provision (PHALA) or contract deployment (on-chain)
compose_hashstringYesHash from provisionCvm
encrypted_envstringNoHex-encoded encrypted environment variables
env_keysstring[]NoAllowed environment variable keys
kms_idstringNoKMS instance slug (required for on-chain KMS)
contract_addressstringNoAppAuth contract address (on-chain KMS only)
deployer_addressstringNoDeployer wallet address (on-chain KMS only)
Returns: CommitCvmProvision
FieldTypeDescription
idnumberCVM ID
namestringCVM name
statusstringInitial status (typically "starting")
app_idstring?App ID
app_urlstring?Public URL for the CVM
vm_uuidstring?VM unique identifier
instance_idstring?Instance identifier
vcpunumberAllocated vCPUs
memorynumberAllocated memory (MB)
disk_sizenumberDisk size (GB)
created_atstringISO 8601 creation timestamp
encrypted_env_pubkeystring?Public key for encrypting environment variables
app_auth_contract_addressstring?AppAuth contract address (on-chain KMS only)
deployer_addressstring?Deployer wallet address (on-chain KMS only)
After a successful commit, the CVM begins booting. Track progress with watchCvmState or subscribe to cvm.created / cvm.create_failed webhook events. Example — PHALA KMS:
const result = await client.commitCvmProvision({
  app_id: provision.app_id!,
  compose_hash: provision.compose_hash,
  encrypted_env: encryptedEnvHex,
  env_keys: ["API_KEY"],
});
Example — On-chain KMS:
const result = await client.commitCvmProvision({
  app_id: deployedContract.appId,
  compose_hash: provision.compose_hash,
  encrypted_env: encryptedEnvHex,
  env_keys: ["API_KEY"],
  kms_id: kmsSlug,
  contract_address: deployedContract.appAuthAddress,
  deployer_address: deployedContract.deployer,
});

safeCommitCvmProvision

Safe variant that returns a SafeResult<CommitCvmProvision> instead of throwing on errors.