masa-finance
masa-contracts-identity
Solidity

Smart Contracts for Soul Bound Identities

Last updated Dec 11, 2025
26
Stars
9
Forks
8
Issues
0
Stars/day
Attention Score
17
Language breakdown
Solidity 69.5%
TypeScript 30.5%
Files click to expand
README

Masa Identity Contracts

* Contract Deployments * Addresses of the deployed contracts * Configuration * Roles * Interface * Deployment * Preparations * Deploy * Installation and usage * Generation of a new release

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.
  • BASE_URI: https://beta.metadata.masa.finance/v1.0
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 DEPLOYERPRIVATEKEY to the deployers private key in .env.{network}.secret
  • Set COINMARKETCAPAPIKEY to the CoinMarketCap API key in .env, if needed
  • Set ANKRAPIKEY to the Ankr API key in .env, if needed
  • Set ETHERSCANAPIKEY to the Etherscan API key in .env, if needed
  • Set BSCSCANAPIKEY to the Etherscan API key in .env, if needed
  • Set POLYGONSCANAPIKEY to the Etherscan API key in .env, if needed
  • Set CELOSCANAPIKEY to the Etherscan API key in .env, if needed
  • Set BASESCANAPIKEY 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

© 2026 GitRepoTrend · masa-finance/masa-contracts-identity · Updated daily from GitHub