Skip to main content

Masa Identity Contracts

Contract Deployments

Addresses of the deployed contracts

You can see the deployment address of the smart contracts in the addresses.json file. For every deployed smart contract you will find a <network>.<contract> value.

Configuration

The admin is allowed to set configuration variables in the smart contracts.

The base url for the Metadata url that is being generated from the contract

Roles

  • deployer: Deploys the contract, has no rights after everything has properly handed over to other roles
  • admin: Delegated to the Masa Service account inside the Masa API. It has the rights to administrate the smart contracts
  • minter: Minter role. It has the rights to mint tokens to customer's wallets.

Interface

Deployment

Preparations

  • Set DEPLOYER_PRIVATE_KEY to the deployers private key in .env.{network}.secret
  • Set COINMARKETCAP_API_KEY to the CoinMarketCap API key in .env, if needed
  • Set INFURA_API_KEY to the Infura API key in .env, if needed
  • Set ETHERSCAN_API_KEY to the Etherscan API key in .env, if needed
  • Set BSCSCAN_API_KEY to the Etherscan API key in .env, if needed
  • Set POLYGONSCAN_API_KEY to the Etherscan API key in .env, if needed
  • Set CELOSCAN_API_KEY to the Etherscan API key in .env, if needed
  • Set BASESCAN_API_KEY to the Etherscan API key in .env, if needed

Deploy

Run: yarn deploy --network {network} to deploy.

Installation and usage

Installing via npm package:

npm i @masa-finance/masa-contracts-identity

Import in your project:

import {
SoulboundIdentity,
SoulboundIdentity__factory
} from "@masa-finance/masa-contracts-identity";

const soulboundIdentity: SoulboundIdentity = SoulboundIdentity__factory.connect(
<address>, // address of the deployed contract
<provider> // web3 provider
);
console.log(await soulboundIdentity.symbol());

Generation of a new release

From a clean main branch you can run the release task bumping the version accordingly based on semantic versioning:

yarn release

The task does the following:

  • Bumps the project version in package.json
  • Creates a Git tag
  • Commits and pushes everything
  • Creates a GitHub release with commit messages as description
  • Git tag push will trigger a GitHub Action workflow to do a npm release

For the GitHub releases steps a GitHub personal access token, exported as GITHUB_TOKEN is required. You can add this environment variable to the .env file. Setup