Smart Contracts on the Custody Infrastructure system
Introduction
Adding your smart contracts directly to the Cold Vault allows you to integrate the smart contracts with other Custody Infrastructure functionality, manage the contracts without leaving the Custody Infrastructure system, and secure access to the contracts behind Custody Infrastructure's robust authentication and user management systems.
Adding a new Smart Contract to the Custody Infrastructure system is a single process consisting of three phases. You'll find some of the process is quite iterative, requiring repetition for every function of the contract. Be patient. The overall process only needs to be done once per smart contract.
The three phases are:
- Adding a smart contract to the Cold VaultAdding a smart contract to the Cold Vault
- Mapping functions and parameters to the Cold VaultMapping functions and parameters to the Cold Vault
- Transacting the functions for delegation to 3rd party addresses (e.g. MPC)Transacting the functions for delegation to 3rd party addresses (e.g. MPC)
This process does NOT create new smart contracts. It only works for smart contracts already existing on the blockchain.
Prerequisites
- A preexisting Smart Contract. You need easy access to the following information regarding the contract throughout this process:
- The contract address and network information
- The contract's source code (visible via a scanner such as Etherscan)
- A user with appropriate permissions
- This is a technical process. Knowing how to read a contract's source code is useful.
- Cold Vault access
Adding, Mapping, and Delegating Functions
Work through the steps below to add a smart contract to your Custody Infrastructure system.
Adding a Smart Contract to the Cold Vault
This process only needs to be performed once per smart contract.
Use a blockchain explorer (such as Etherscan) and look up the verified smart contract by its address. If the contract is not public, Etherscan won't work, find another way.

Go to the Cold Vault and open Smart Contracts -> New EVM Contract.

The Edit EVM Contract popup opens.
Click Add button to add the destination on the relevant blockchain and the address of the smart contract.
Mapping the Functions and Parameters of the Smart Contract to the Cold Vault
This process needs to be performed once per each function/parameter you want the Cold Vault to access.
Review the contract on the blockchain explorer. Identify the functions and parameters you want to utilize from the Custody Infrastructure system.

Note the EXACT function name of each function you are bringing into the system.
Start mapping the desired functions and their parameters to the Cold Vault by adding them manually.
The function names and their parameters must be inserted precisely as they appear on the Smart Contract. Function names are case-sensitive.
Press the Add button to map the functions and their parameters. In the below example, the grantRole function is added.
Repeat this step for every function you want to add.

Click OK after all functions are added.
Transacting the functions for delegation to 3rd party addresses (e.g. MPC)
This process needs to be performed once per each function/parameter you want the MPC to access. The MPC cannot access any aspect of the smart contract unless that aspect was first configured on the Cold Vault.
Go to the transaction page to delegate functions. Select the account, the coin, and click New Transaction.

Check the Smart Contract Function Call and load the relevant smart contract by using the Load Smart Contract button. Then load the function data by pressing the Smart Contract Data and choosing the desired function.

Insert the Value of the function parameters by loading the address of the destination (e.g. MPC address).
Click OK then Send.
Verify the transaction status on the Desktop app transaction page / Blockchain Explorer.
Perform the same cycle for all relevant functions.