IdentityTokens-EVM-Contracts is a decentralized identity protocol built on EVM-compatible blockchains that enables individuals to self-issue ERC-721 NFT-based identity tokens with optional metadata such as name, social links, age, nationality, and residence. Users maintain full control over their digital identities and can endorse other identity tokens on-chain, creating a transparent and verifiable web of trust. The system ensures efficient on-chain mappings between tokens, metadata, and endorsement relationships, supporting multiple identity tokens per user while enabling scalable and reliable identity verification.
- Language: Solidity ^0.8.24
- Smart Contracts: Custom EVM-based contracts implementing protocol logic, token standards, and access control
- Development Framework: Foundry
- Testing: Forge Standard Library (
forge-std) - Deployment: Forge Scripts (Anvil, Sepolia)
- Testing: Forge Standard Library (
- Libraries:
- OpenZeppelin Contracts v5.5.0
- Static Analysis & Linting:
- Slither (security analysis)
- Solhint (linting & style enforcement)
- Prettier Plugin Solidity (code formatting)
- Wagmi: React hooks for Ethereum interactions (wallet connection, contract reads/writes, event tracking)
- Ethers.js: Ethereum library for interacting with providers and smart contracts
- Wallet Integration: MetaMask, WalletConnect (via Wagmi connectors)
- GitHub Actions: Automated lint, build (Forge), and test workflows
- Pre-commit Hooks: Code quality enforcement before commits
- Package Manager: npm
To understand the development process, contribution flow, and project structure, please refer to the detailed workflow guide:
To build, test, and deploy the smart contracts, ensure the following tools are installed:
- Node.js (v18 or higher) – Required for managing dependencies and running formatting/linting tools.
- Foundry – Primary development framework for compiling, testing, and deploying smart contracts.
- Git – Required for cloning the repository and managing submodules.
- Web3 Wallet (e.g., MetaMask) – For interacting with deployed contracts on local or live networks.
Clone the project and navigate into the root directory:
git clone https://github.com/StabilityNexus/IdentityTokens-EVM-Contracts.git
cd IdentityTokens-EVM-ContractsThe project requires both Node.js packages for styling/linting and Foundry for smart contract logic:
Install Node.js Tools (Prettier, Solhint):
npm install#### Install Foundry (if not installed)
curl -L https://foundry.paradigm.xyz | bash
foundryup# Install OpenZeppelin for Foundry
forge install OpenZeppelin/openzeppelin-contracts
forge install foundry-rs/forge-stdEnsure everything is configured correctly by compiling the contracts and running the automated test suite:
forge buildforge testforge test --gas-reportforge test -vvvvforge build --sizesforge clean© 2026 The Stable Order.