Stellar Soroban Smart Contracts
The Stellar Soroban smart contract platform enables developers to deploy self-executing programs on the Stellar network. Soroban contracts are written in Rust and compiled to WebAssembly (WASM), making them lightweight and performant within the Stellar runtime environment. Stellar's network is built on the Stellar Consensus Protocol (SCP), which delivers fast finality and predictable low fees. Soroban smart contracts allow users to automate on-chain logic, manage tokenized assets, and interact with Stellar's native services such as the Stellar Asset Contract (SAC) and Stellar's built-in decentralized exchange (DEX).
Adding and setting up a Soroban Stellar smart contract uses the same 3 stages as other smart contracts on the Custody Infrastructure system.
These are:
- Adding the smart contract to the Impenetrable vault.
- Mapping the functions
- Defining the functions in the transaction page for delegation
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
Adding a Soroban smart contract
Locate the smart contract you wish to add using a Stellar Explorer website, such as https://stellarchain.io/contracts or https://stellar.expert/
Copy down the following information from the smart contract:
- Contract address
- Function data names and parameters (Found under the WASM section of a smart contract)
In the Impenetrable Vault, select the Smart Contract menu option.
To start a Soroban contract select Add Stellar Contract.

The New Stellar Contract window opens. @
Note: The Custody Infrastructure system comes with preinstalled Stellar smart contracts. To load these programs see Add a Preconfigured Stellar Smart ContractAdd a Preconfigured Stellar Smart Contract
To create a new Stellar contract enter:
- Contract Name - any name that describes to your team the purpose of this smart contract).
- Contract Address - taken from the Smart Contract found on the internet
- Map the Contract Functions listed in the WASM section:
- Select Add. The Add Contract Function window appears.
- Type the Function Name and Description
- To Add Function Parameters, which are optional depending on the function, select Add. The Add Parameter window opens.
- Type the Parameter Name as listed in the WASM data.
- Select the exact Parameter Type for the parameter as listed in the WASM data.
- Select OK.

- Repeat this process until all the parameters for this function are listed.
- Follow the same process to add Structs for this contract.
- Select OK to complete and add the function.
- Repeat this process until all of the functions for the contract are mapped and listed in the New Stellar Contract window.
- Select OK. The Smart Contract now appears in the list on the Smart Contracts page.
Update the Transaction Policies to include Stellar
It can be easy to forget to add or update your system Transaction Policies to include the new Stellar currency if this is the first time you are adding this type of Smart Contract.
To update the Transaction Policies:
- Select Policy Management from the main menu. In the Transaction Policies select a policy to update by selecting the
edit icon.
- In the To - Address list add any Stellar XLM contacts. Especially important is to add the StellarProxyForImpenetrable address, as this is where fees are taken from and there must be enough Stellar currency held in this contact.

- In the Currencies section, under Allow in Policy, ensure that the Smart contract function calls box is ticked.

- Complete the rest of the policy and select Save policy.
Now that a transaction policy is updated you can make Soroban smart contract transactions.
Create a Stellar Smart Contract transaction
To create a Stellar transaction:
Open Transactions from the main menu. Select the Account and the XLM currency. Then select New Transacation.
The Create Stellar Transaction window opens.
Select the Smart Contract Function Call box. Select Load Smart Contract and choose the smart contract to open. Select OK
Select the Smart Contract Data button, and the Smart Contract Function list appears. Select a function and select OK. The Stellar Contract Data window opens with the list of Function Parameters and a Value field to be filled in with the appropriate data. Select OK.
The Stellar Transaction window should now display with all of the data for this transaction. Add any extra data that is needed, such as the Amount, Fee, Memo type, Memo and a Description. Select Send to complete the transaction.

Add a Preconfigured Stellar Smart Contract
The system comes with 3 preconfigured Stellar smart contracts that can be added from the Smart Contracts page.
In the Smart Contracts page, Select Add Stellar Contract.
Select Load Contract in the New Stellar Contract window.
The Choose Smart Contract window opens listing 3 contracts:
- Stellar NFT Tokens
- Stellar Token Interface
- Stellar Tokenization Vault
Select a contract and select Add.

Enter a Contract Name.
Enter the Contract Address. This field only accepts a contract address properly configured for the Stellar currency, and starts with 'C...." and is followed with a string of numbers.

The functions can be edited as needed.
When completed select OK.
Removing a Stellar Smart Contract
To remove a Stellar, or any other type of, Smart Contract see Removing a Smart Contract from the systemRemoving a Smart Contract from the system.