Skip to main content

Masa Identity Contracts


🌽🌽 THIS IS BETA SOFTWARE. IT COULD LEAD TO RAPID UNSCHEDULED DISASSEMBLY. If you run into problems, please open up a new issue. 🌽🌽


Contract Deployments​

Goerli test network​

You can see the deployment address of the smart contracts in the deployments/goerli folder. For every deployed smart contract you will find a <smart_contract>.json JSON file with the address in the "address" field.

Configuration​

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

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

Roles​

  • deployer: Deploys the contract, has no rights after everything has properlty 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 customers 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

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