The Tokenization tool
Smart Contract Tokenization Process
The Custody Infrastructure Impenetrable vault can create tokens.
Log into the Impenetrable Vault
Go to the Smart Contracts area and open the Tokenization tab.

Configure the new token as follows:
- Select the Account from where you are to deploy the smart contract. The address of the selected account will be the owner of the deployed smart contract.
- Select an EVM network activated in the Custody Infrastructure Cold Vault on which to deploy the Smart contract (e.g. Ethereum, Polygon, Avalanche, etc.). The activation of EVM networks is outlined here.
- Set the token's general parameters:
- Token Name
- Token Symbol: The Symbol must be presented in Upper Case letters.
- Initial Supply: The number of tokens to be minted initially.
- Decimal number: The smallest unit that is possible for that token, denoted in a number of digits after the decimal point. In the below example, 8 means 0.00000001 will be the smallest unit.
- Fill in the Fees and Gas limit. The Fees must be high enough to complete deploying the Smart Contract. You can use the Suggest Fee tab to see the suggested Fees through the Mobile app pop-up notification or the Proxy machine.
- Set the token's configuration parameters:
- Choose the Proxy contract: Using this option allows this specific smart contract to be upgraded through Proxy.
- Burn: Allowing any addresses to burn the tokens that they have.
- Mint: Allow minting more tokens after the initial token series provisioning on the Contract deployment stage.
- Permit and AuthorizeFrom: This method allows transferring the tokens without paying fees in native/EVM currency (e.g. Ethereum, Polygon, etc.). In the Permit option, the receiver can pay. In the AuthorizeFrom option, a third party can pay the fees of the transaction.
- Pause: Allows pausing activities in the smart contract. The Pauser option can be managed with the MPC address.
- Owner: Allows delegating the ownership of contract management to the MPC address. This means the Burning/Minting process can be allowed to be managed by the MPC.
- Set the token's regulation parameters:
- None: No regulation is applied to smart contracts in terms of Smart Contract Management. Any address can manage the Smart Contract.
- Allowlist: A specific address is allowed to interact with the Smart Contract (e.g. hold or transact actions).
- Blocklist: All addresses are allowed to interact with the smart contract except the ones specified in the Block list.

After all parameters are set, the token is ready to be created.
Make sure there is enough balance available to pay the contract deployment fees.
Delegating Functions
Smart contract functions can be granted access to other addresses (for instance, the address of the MPC):
Go to the Smart Contracts area.
Select a Contract to edit.
Use the Edit contract function menu to add the desired Function to the contract, for example, AddMintAllowance.

Edit the function by adding the following parameters:
- amount->uint256
- to->address

Now you can delegate the functions through transactions:
Go to the New Transaction page in the Cold Vault.
Set the Account and the Currency.
All transactions of the smart contract functions are done via Ethereum, so the Cold Vault Policy should be configured to allow Ethereum transfer for this type of transfer. Only a typical transfer of the token must have the policy allowing the token to be transferred.
Select the Smart Contract Transaction option.

Use the Smart Contract tab to load the contract.
Use the Smart Contract Data tab to select the allowance of a specific function to delegate access to that function from a different address.

Select the desired Contact from the Load Contact list.
Input the MPC account address and value, then press OK.
Be aware of the number of decimals in the token when setting the value. You need to append as many zeros as there are decimal places to the desired number of tokens to mint. For instance, to issue 100 tokens with 6 decimals, input 100,000,000 as the amount.

Fill in all parameters.
Click Send.