- You’ll build a simple contract in Embark that tokenizes assets with a fixed supply of 1,000 tokens.
- You’ll set a price of 0.1 ether per token and let anyone exchange ether for asset tokens on Sepolia.
- You’ll use Chainstack to deploy and run your own Sepolia node, and Geth to manage your accounts.
- You’ll confirm everything works by testing the contract with Embark’s Cockpit and by sending ether from MetaMask.
Main article
This tutorial will guide you through creating a tokenized asset contract and deploying it on Sepolia testnet. For illustration purposes, this contract does the following:- Creates a total supply of 1,000 tokens specific to the asset.
- Sets the token price to 0.1 ether.
- Let anyone exchange ether for asset tokens. This tutorial uses Embark to test and deploy the contract.
Prerequisites
- Chainstack account to deploy a Sepolia testnet node.
- Embark to test and deploy the contract.
- Geth to create an Ethereum account that will deploy the contract.
- MetaMask to interact with the contract.
Overview
To get from zero to an asset tokenization contract running on Sepolia, do the following:Step-by-step
Create a public chain project
See Create a project.Deploy a Sepolia node
See Join a public network.Get Sepolia testnet ether from a faucet
In your MetaMask, fund each account with Sepolia ether Chainstack’s Sepolia faucet.Create an Embark project and the contract
Create an Ethereum account
You will use this account to deploy the contract.Import the account in MetaMask and fund the account
Fund the account with Sepolia ether.
Deploy the contract
Append where
contracts.js with the following configuration://root/.ethereum/keystore/...— the location of the keystore file- PASSWORD — the password you provided when creating the Ethereum account with Geth
- YOUR_CHAINSTACK_ENDPOINT — your Chainstack node endpoint. See also View node access and credentials.
Check the contract with Cockpit
On contract deployment, Embark runs Cockpit which is a front-end application to test the contract. In your browser, open:<http://localhost:55555/explorer/contracts/CONTRACT_NAME>
where CONTRACT_NAME — the name of your contract. In this tutorial, the path is <http://localhost:55555/explorer/contracts/AssetTokenized>.
This will also display the contract address in the Deployed at line.
Test the contract by calling:
supply()— to check the remaining supply of tokens on the contract.check()— to check the amount of tokens owned by the Ethereum address you are using to call the contract.pricePerEth()— to check the token price in wei.
Interact with the contract
- In MetaMask, send an amount of Sepolia ether to the contract address.
- In Cockpit, call the contract functions
supply()andcheck()after a few seconds to see a change in values returned.
