docs: async function (showPrompts) {
      logger.step('** Deploying valueCore Contract');
      if (showPrompts) {
        // confirming the important addresses
        logger.info("Deployer Address: " + valueDeployerAddress);
        logger.info("Foundation Address: " + foundationAddress);
        logger.info("Value Chain Registrar User Address: " + valueRegistrarUser);
        logger.info("Value Ops Address: " + valueOpsAddress);
  
        logger.info("Value Registrar Contract: " + valueRegistrarContractAddress);
        logger.info("OpenST Utility Contract: " + openSTUtilityContractAddress);
        logger.info("OpenST Value Contract: " + openSTValueContractAddress);
  
        await new Promise(
          function (onResolve, onReject) {
            prompts.question("Please verify all above details. Do you want to proceed? [Y/N]", function (intent) {
              if ((intent === 'Y') || (intent === 'y')) {
                logger.info('Great! Proceeding deployment.');
                prompts.close();
                onResolve();
              } else {
                logger.error('Exiting deployment scripts. Change the env vars and re-run.');
                process.exit(1);
              }
            });
          }
        );
      } else {
        prompts.close();
      }
  
      const getSimpleTokenPrimeSymbolResponse = await openStUtility.getSimpleTokenPrimeSymbol()
        , stPrimeSymbol = getSimpleTokenPrimeSymbolResponse.data.symbol
        , getSimpleTokenPrimeNameResponse = await openStUtility.getSimpleTokenPrimeName()
        , stPrimeName = getSimpleTokenPrimeNameResponse.data.name
        , getSimpleTokenPrimeConversationRateResponse = await openStUtility.getSimpleTokenPrimeConversationRate()
        , stPrimeConversationRate = getSimpleTokenPrimeConversationRateResponse.data.conversion_rate
        , getSimpleTokenPrimeConversationRateDecimalsResponse = await openStUtility.getSimpleTokenPrimeConversationRateDecimals()
        , stPrimeConversationRateDecimals = getSimpleTokenPrimeConversationRateDecimalsResponse.data.conversion_rate_decimals
      ;
  
      logger.step('** Calling registerUtilityToken of valueRegistrar Contract for ST Prime');
      const registerUtilityTokenResponse = await valueRegistrar.registerUtilityToken(
        valueOpsAddress, valueOpsPassphrase, openSTValueContractAddress, stPrimeSymbol, stPrimeName, stPrimeConversationRate,
        stPrimeConversationRateDecimals, UTILITY_CHAIN_ID, 0, stPrimeUUID, valueDeployerName);
  
  
      if (!registerUtilityTokenResponse.isSuccess()) {
        logger.error('registerUtilityToken of valueRegistrar Contract for ST Prime failed.');
        process.exit(1);
      }
  
      logger.step('** Setting Ops Address of valueRegistrar Contract to valueRegistrar User');
      await valueRegistrar.setOpsAddress(valueDeployerName, valueRegistrarUser);
  
      const opsAddress = await valueRegistrar.getOpsAddress();
  
      if (!valueRegistrarUser.equalsIgnoreCase(opsAddress.data.address)) {
        logger.error('Exiting the deployment as ops address doesn\'t match');
        process.exit(1);
      }
  
      await valueRegistrar.initiateOwnerShipTransfer(valueDeployerName, foundationAddress);
  
      const getOwnerResponse = await valueRegistrar.getOwner();
  
      if (!foundationAddress.equalsIgnoreCase(getOwnerResponse.data.address)) {
        logger.error('Exiting the deployment as owner address doesn\'t match');
        process.exit(1);
      }
  
      return Promise.resolve();
    }