Skip to main content

getKmsInfo

GET /kms/{kms_id} Returns details about a specific KMS instance. Parameters:
FieldTypeRequiredDescription
kms_idstringYesKMS ID or slug
Returns: KmsInfo
FieldTypeDescription
idstringKMS identifier
slugstringURL-friendly name
versionstringKMS version
urlstringKMS endpoint URL
chain_idnumber?Blockchain chain ID (on-chain KMS only)
kms_contract_addressstring?Contract address (on-chain KMS only)
chainChain?Viem chain configuration (on-chain KMS only)
Example:
const kms = await client.getKmsInfo({ kms_id: "phala" });
console.log(kms.slug, kms.url);

getKmsList

GET /kms Returns a paginated list of available KMS instances. Parameters:
FieldTypeRequiredDescription
pagenumberNoPage number
page_sizenumberNoItems per page
is_onchainbooleanNoFilter for on-chain KMS only
Returns: GetKmsListResponse — paginated list of KmsInfo objects. Example:
// List all on-chain KMS instances
const kmsList = await client.getKmsList({ is_onchain: true });
kmsList.items.forEach(kms => {
  console.log(kms.slug, kms.chain_id, kms.kms_contract_address);
});

nextAppIds

GET /kms/phala/next_app_id Reserves one or more app IDs from the centralized Phala KMS. Use these with the nonce and app_id parameters in provisionCvm for deterministic app ID assignment. Parameters:
FieldTypeRequiredDescription
countsnumberNoNumber of IDs to reserve (1-20, default: 1)
Returns: NextAppIds
FieldTypeDescription
app_idsarrayArray of { app_id, nonce } pairs
Example:
const reserved = await client.nextAppIds({ counts: 3 });
reserved.app_ids.forEach(({ app_id, nonce }) => {
  console.log(`Reserved: ${app_id} (nonce: ${nonce})`);
});