Smart Contract Studio

Harness the power of our platform to deploy smart contracts. Access our interactive wizard and templates for ERC721, ERC1155, ERC20, and more.

Smart contracts are self-executing contracts with predefined rules and conditions encoded on the blockchain. They automate the execution of agreements and transactions between parties without the need for intermediaries. Smart contracts enable the creation of decentralized applications and the execution of complex operations on the blockchain, such as managing digital assets, executing business logic, and facilitating interactions between users.

Supported Networks

  • Ethereum (Main Net and Test Nets like Goerli and Sepholia)

  • Polygon (Main Net and Test Net Mumbai)

  • Avalanche (Main Net and Test Net Fuji)

  • Arbitrum (Main Net and Test Net Goerli)

  • Optimism (Main Net and Test Net Goerli), and more.

Creating Smart Contracts

Login --> DApp Studio --> Build It --> Easy Builder --> Launch Smart Contract Studio

The Contract List page opens,

When logged in for the first time, this page will not have any contracts.

The Instance details are displayed on this page. The details are,

  • API Key

  • Project Name

  • Instance ID

  • Total number of contracts in the instance

Click on the Add Contract button to add your first contract.

Click on the Deploy New Contract button. This navigates to a page that has a list of templates.

Available Templates

The following templates are available to use,

  • ERC20

  • ERC721

  • ERC1155

  • Custom

  • ERC-20 Token (Fixed Supply)

  • Payment Splitter v1

  • ERC20DAOToken v2

  • AyAy Receiver

  • StakingRewards

  • StakingERC721

Each Template has a different set of steps based on the contract's intended application.

Deploying your Smart Contracts

A custodial wallet needs to be connected to the application. This can be done from the Custodial Wallet sub-menu under the Core Web3 Services side menu.

ERC20:

Choose the Chain for the collection from the dropdown

Choose the Wallet that you want to use for deploying this contract

Enter the Name, Symbol, and value for the contract

Select the required Features for the contract. Multiple features can be selected. The features available for this contract are,

  • Mintable - Privileged accounts will be able to create more supply.

  • Burnable - Token holders will be able to destroy their tokens.

  • Pausable - Privileged accounts will be able to pause the functionality marked as whenNotPaused. Useful for emergency response.

  • Permit - Without paying gas, token holders will be able to allow third parties to transfer from their accounts.

  • Votes - Keeps track of historical balances for voting in on-chain governance, with a way to delegate one's voting power to a trusted account.

  • Flash Minting - Built-in flash loans. Lend tokens without requiring collateral as long as they're returned in the same transaction.

  • Snapshots - Privileged accounts will be able to store snapshots of balances that can be retrieved later. For on-chain voting, the Votes option is preferable.

Select the Access Control type and Upgradeability type if required.

The options are,

  • Ownable - Simple mechanism with a single account authorized for all privileged actions.

  • Roles - Flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts.

The options are,

  • Transport - Uses a more complex proxy with higher overhead, and requires fewer changes in your contract. Can also be used with beacons.

  • UUPS - Uses simpler proxy with less overhead, and requires including extra code in your contract. Allows flexibility for authorizing upgrades.

Enter the email id.

As you select and enter the different options for the contract, the code is displayed on the right side of the screen.

Click the Deploy button to deploy the contract.

ERC721:

Choose the Chain for the collection from the dropdown

Choose the Wallet that you want to use for deploying this contract

Enter the Name, Symbol, and for the contract

Select the required Features for the contract. Multiple features can be selected. The features available for this contract are,

  • Mintable - Privileged accounts will be able to create more supply.

  • Auto Increment IDs - New tokens will be automatically assigned an incremental id.

  • Burnable - Token holders will be able to destroy their tokens.

  • Pausable - Privileged accounts will be able to pause the functionality marked as whenNotPaused. Useful for emergency response.

  • Votes - Keeps track of individual units for voting in on-chain governance, with a way to delegate one's voting power to a trusted account.

  • Enumerable - Allows on-chain enumeration of all tokens or those owned by an account. Increases gas cost of transfers.

  • URL Storage - Allows updating token URIs for individual token IDs.

Select the Access Control type and Upgradeability type if required.

The options are,

  • Ownable - Simple mechanism with a single account authorized for all privileged actions.

  • Roles - Flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts.

The options are,

  • Transport - Uses a more complex proxy with higher overhead, and requires fewer changes in your contract. Can also be used with beacons.

  • UUPS - Uses simpler proxy with less overhead, and requires including extra code in your contract. Allows flexibility for authorizing upgrades.

Enter the email id.

As you select and enter the different options for the contract, the code is displayed on the right side of the screen.

Click the Deploy button to deploy the contract.

ERC1155:

Choose the Chain for the collection from the dropdown

Choose the Wallet that you want to use for deploying this contract

Enter the Name and for the contract

Select the required Features for the contract. Multiple features can be selected. The features available for this contract are,

  • Mintable - Privileged accounts will be able to create more supply.

  • Burnable - Token holders will be able to destroy their tokens.

  • Pausable - Privileged accounts will be able to pause the functionality marked as whenNotPaused. Useful for emergency response.

  • Supply Tracking - Keeps track of the total supply of tokens.

  • Updatable URL - Privileged accounts will be able to set a new URI for all token types. Clients will replace any instance of {id} in the URI with the tokenId.

Select the Access Control type and Upgradeability type if required.

The options are,

  • Ownable - Simple mechanism with a single account authorized for all privileged actions.

  • Roles - Flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts.

The options are,

  • Transport - Uses a more complex proxy with higher overhead, and requires fewer changes in your contract. Can also be used with beacons.

  • UUPS - Uses simpler proxy with less overhead, and requires including extra code in your contract. Allows flexibility for authorizing upgrades.

Enter the email id.

As you select and enter the different options for the contract, the code is displayed on the right side of the screen.

Click the Deploy button to deploy the contract.

Custom:

This template is used to create a custom contract by using your own code. The code can be pasted in the code area on the right side of the screen.

Choose the Chain for the collection from the dropdown

Choose the Wallet that you want to use for deploying this contract

Enter the Name for the contract.

Click the Deploy button to deploy the contract.

ERC-20 Token (Fixed Supply)

Choose the Chain for the collection from the dropdown

Choose the Wallet that you want to use for deploying this contract

Enter the Name for the contract.

Enter the input parameters such as Token Name and Token Symbol.

The code for the contract is displayed on the right side of the screen.

Click the Deploy button to deploy the contract.

Payment Splitter v1:

Choose the Chain for the collection from the dropdown

Choose the Wallet that you want to use for deploying this contract

Enter the Name for the contract.

The code for the contract is displayed on the right side of the screen.

Click the Deploy button to deploy the contract.

Contract Details

Once the contract is deployed, a contract card is created on the Contracts list page for the instance

Each Contract card has a View Details button to view more details of the contract. Clicking this button will open the Contract Details page

This page displays all the details of the contract. The firs section displays details such as,

  • Project Name

  • Instance ID

  • Contract Address

  • Contact Name

  • Chain ID

  • Network

Four widgets to see the contract activity is available. The widgets are,

  • Overall Transactions

  • Total Balance

  • Chain ID and Chain Name

  • Number of Unique address interactions

A transaction table is displayed as well. This table shows the details of different transactions using the contract.

Loading existing contracts into SC Studio

From the Instance page, click on an instance. The Contract List page is opened

From the Contract list page, click on the Add Contract button. The add contract pop-up is opened.

Select the Load Existing Contract button. The Load Contract pop-up is opened.

Choose the Chain for the collection from the dropdown.

Enter the Name, Contract, and Abi code for the contract

Click on the Load button to load the contract.

Interacting with your Smart Contract

The Web3. JS framework allows developers to interact with Ethereum smart contracts using Javascript Node. js. The framework consists of modules with specific functions

Open Smart Contract Studio --> Instance --> Contract List --> Contract Details Page

Click on the Interact with Contract button.

The Interact With Contract Page is opened. This page displays the basic contract details such as

  • Project Name

  • Instance ID

  • Contract address

  • Contact Name

Before the interaction, a wallet should be connected using the Connect Wallet button

The connected wallet can be disconnected using the Disconnect button as shown in Step 3

Different contract standards have different functions.

View Transactions for your Contract (Analytics / Data Lake)

Description

Last updated