# ChainID





**ChainID** is a decentralized, verifiable identity registration solution built natively on the Avalanche C-Chain. By bridging compliance-driven Know Your Customer (KYC) methodologies with immutable blockchain ledger technology, ChainID provides a secure, enterprise-ready infrastructure for Web3 identity management.
This system leverages system-level Rust programming to execute secp256k1 elliptic curve cryptography, robust KYC data obfuscation, and Non-Fungible Token (NFT) identity minting.
## 🏗️ Core Architecture & Security Posture
ChainID is engineered with an uncompromising focus on cryptographic integrity and memory safety.
* **Memory Safety (`zeroize`):** Because the system generates highly sensitive ECC `secp256k1` private keys and BIP-39 24-word recovery mnemonics, protecting data in volatile memory is paramount. All memory buffers containing mnemonics and private keys are cryptographically zeroized (overwritten with null bytes) immediately after the NFT minting payload is constructed.
* **Privacy by Design (KYC Obfuscation):** ChainID adheres strictly to global regulatory compliance by never storing raw Personally Identifiable Information (PII) on the public ledger. Highly sensitive fields are processed through strong cryptographic hash functions (SHA-256) before inclusion in the NFT metadata payload.
* **Deterministic Builds:** Dependency management is strictly pinned via `Cargo.lock` to prevent upstream supply chain vulnerabilities and ensure deterministic compilation across diverse CI environments.
## ⚙️ Prerequisites
To compile and run ChainID, you must have the Rust toolchain installed.
* **Rust:** Minimum Supported Rust Version (MSRV) is `1.70.0`.
* Install via [rustup](https://rustup.rs/):
```bash
curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh-
Clone the repository:
git clone [https://github.com/grasshaussoftware/chainid.git](https://github.com/grasshaussoftware/chainid.git) cd chainid -
Configure the Environment: ChainID requires a connection to the Avalanche network. Never hardcode your RPC endpoints. Create a
.envfile in the root directory to securely pass your dynamic RPC URIs (e.g., local Avalanche validator nodes, Alchemy, QuickNode, or the Fuji Testnet).# .env AVALANCHE_RPC_URL="[https://api.avax-test.network/ext/bc/C/rpc](https://api.avax-test.network/ext/bc/C/rpc)"
-
Build the project:
cargo build --release
ChainID currently operates as a terminal-based workflow application. To launch the CLI and begin the identity generation and minting sequence:
cargo runFollow the interactive prompts to input KYC parameters, simulate the wallet connection sequence, and receive the resulting QR code outputs intended for offline, cold-storage key management.
To run the exhaustive cryptographic unit and integration test suite:
cargo testWe welcome contributions from the open-source Web3 community!
To maintain the structural integrity of the repository, all contributors must adhere to our CONTRIBUTING.md guidelines.
- Conventional Commits: All pull requests must follow the Conventional Commits specification (e.g.,
feat:,fix:,refactor:). - Code Quality: Ensure your code passes standard Rust formatting and linting checks before submitting a PR:
cargo fmt --check cargo clippy -- -D warnings
For vulnerability reporting, please refer to our SECURITY.md for responsible disclosure policies.
This project is licensed to maximize ecosystem adoption and eliminate friction for developers. It is distributed under the MIT License.
See the LICENSE file for complete details.