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.
BASE_URI
: https://beta.metadata.masa.finance/v1.0
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 rolesadmin
: Delegated to the Masa Service account inside the Masa API. It has the rights to administrate the smart contractsminter
: Minter role. It has the rights to mint tokens to customers wallets.
Interface​
- Abstract Soulbound Token Definition
- Abstract Non-Fungible Token Definition
- Soulbound Identity Definition
- Soulbound Credit Score Definition
- Soulbound 2FA Definition
- Soul Name Definition
- Soul Linker Definition
- Soul Store Definition
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