Skip to main content
Manage smart contract templates and deploy contracts from templates.

Methods

getContracts()

Get a paginated list of contract templates. Signature:
getContracts(
  request?: GetContractsRequest,
  requestOptions?: RequestOptions
): Promise<ContractTemplatesResponse>
Example:
const templates = await client.contractTemplates.getContracts({
  skip: 0,
  take: 25
});

console.log('Templates:', templates.data);

getContractById()

Get details for a specific contract template. Signature:
getContractById(
  templateId: string,
  requestOptions?: RequestOptions
): Promise<ContractTemplateResponse>
Example:
const template = await client.contractTemplates.getContractById('template-id');

console.log('Template:', template.data);
console.log('Name:', template.data.name);
console.log('Network:', template.data.network);

getContractConstructorById()

Get constructor information for a template. Signature:
getContractConstructorById(
  templateId: string,
  requestOptions?: RequestOptions
): Promise<ConstructorInfoResponse>
Example:
const constructorInfo = await client.contractTemplates.getContractConstructorById('template-id');

console.log('Constructor Parameters:', constructorInfo.data.parameters);

getContractFunctionById()

Get function information for a template. Signature:
getContractFunctionById(
  templateId: string,
  requestOptions?: RequestOptions
): Promise<FunctionInfoResponse>
Example:
const functions = await client.contractTemplates.getContractFunctionById('template-id');

console.log('Available functions:', functions.data);

deployContract()

Deploy a contract from a template. Returns a workflow ID for async processing. Signature:
deployContract(
  templateId: string,
  request: DeployContractRequest,
  requestOptions?: RequestOptions
): Promise<DeployContractResponse>
Parameters:
ParameterTypeRequiredDescription
templateIdstringYesTemplate ID
request.networkstringYesBlockchain network
request.addressIdstringYesAddress ID for deployment
request.clientSharestringYesClient share for signing
request.constructorParametersarrayNoArray of constructor parameter objects [{ name, type, value }, ...]
Example Request:
const deployment = await client.contractTemplates.deployContract('template-id', {
  network: 'ETH',
  addressId: 'address-id',
  clientShare: 'your-client-share',
  constructorParameters: [
    { name: 'name', type: 'string', value: 'MyToken' },
    { name: 'symbol', type: 'string', value: 'MTK' },
    { name: 'initialSupply', type: 'uint256', value: '1000000' }
  ]
});
Example Response:
{
  data: {
    contractFunction: {
      workflowId: 'workflow-id-here',
      status: 'RUNNING'
    }
  }
}
Response Fields:
FieldTypeRequiredDescription
data.contractFunction.workflowIdstringNoWorkflow ID for tracking contract deployment
data.contractFunction.statusstringNoWorkflow status
console.log('Deployment Workflow ID:', deployment.data.contractFunction?.workflowId);

createContract()

Create a new contract template. Signature:
createContract(
  request: CreateContractRequest,
  requestOptions?: RequestOptions
): Promise<ContractTemplateResponse>

deleteContract()

Delete a contract template. Signature:
deleteContract(
  templateId: string,
  requestOptions?: RequestOptions
): Promise<void>