Deploy the Stellar Asset Contract for a Stellar Asset
The Soroban CLI can deploy a Stellar Asset Contract for a Stellar asset so that any Soroban contract can interact with the asset.
Every Stellar asset has reserved a contract that anyone can deploy. Once deployed any contract can interact with that asset by holding a balance of the asset, receiving the asset, or sending the asset.
Deploying the Stellar Asset Contract for a Stellar asset enables that asset for use on Soroban.
The Stellar Asset Contract can be deployed for any possible Stellar asset, either assets already in use on Stellar or assets that have never seen any activity. This means that the issuer doesn't need to have been created, and no one needs to be yet holding the asset on Stellar.
To perform the deploy, use the following command:
soroban contract asset deploy \
--source S... \
--network testnet \
--asset USDC:GCYEIQEWOCTTSA72VPZ6LYIZIK4W4KNGJR72UADIXUXG45VDFRVCQTYE
The asset
argument corresponds to the symbol and it's issuer address, which is how assets are identified on Stellar.
The same can be done for the native Lumens asset:
soroban contract asset deploy \
--source S... \
--network testnet \
--asset native
Deploying the native asset will fail on testnet or mainnet as a Stellar Asset Contract already exists.
For any asset, the contract address can be fetched with:
soroban contract id asset \
--source S... \
--network testnet \
--asset native
Guides in this category:
📄️ Deploy a Contract from Installed Wasm Bytecode
To deploy an instance of a compiled smart contract that has already been isntalled onto the Stellar network, use the soroban contract deploy command:
📄️ Deploy the Stellar Asset Contract for a Stellar Asset
The Soroban CLI can deploy a [Stellar Asset Contract] for a Stellar asset so that any Soroban contract can interact with the asset.
📄️ Extend a deployed contract instance's TTL
You can use the Soroban CLI to extend the TTL of a contract instance like so:
📄️ Extend a deployed contract's storage entry TTL
You can use the Soroban CLI to extend the TTL of a contract's persistent storage entry. For a storage entry that uses a simple Symbol as its storage key, you can run a command like so:
📄️ Extend a deployed contract's Wasm code TTL
You can use the Soroban CLI to extend the TTL of a contract's Wasm bytecode. This can be done in two forms
📄️ Install and Deploy a Smart Contract
You can combine the install and deploy commands of the Soroban CLI to accomplish both tasks:
📄️ Install Wasm Bytecode
To use the Soroban CLI to install a compiled smart contract on the ledger, use the soroban contract install command:
📄️ Restore an archived contract using the Soroban CLI
If your contract instance has been archived, it can easily be restored using the Soroban CLI.
📄️ Restore archived contract data using the Soroban CLI
If a contract's persistent storage entry has been archived, you can restore it using the Soroban CLI. For a storage entry that uses a simple Symbol as its storage key, you can run a command like so: