Go to file
2026-02-18 13:13:44 -08:00
.gitea/workflows Add contracts CI workflow 2026-02-17 20:55:08 -08:00
abi Add contracts conformance vectors and artifact readmes 2026-02-17 14:39:49 -08:00
contracts Lock membership defaults to USDC 100 and add ERC20 settlement tests 2026-02-18 13:13:44 -08:00
deploy Lock membership defaults to USDC 100 and add ERC20 settlement tests 2026-02-18 13:13:44 -08:00
docs Add contracts conformance vectors and artifact readmes 2026-02-17 14:39:49 -08:00
scripts chore(smoke): preflight sepolia balance before membership tx 2026-02-18 10:12:03 -08:00
test Lock membership defaults to USDC 100 and add ERC20 settlement tests 2026-02-18 13:13:44 -08:00
.env.example Lock membership defaults to USDC 100 and add ERC20 settlement tests 2026-02-18 13:13:44 -08:00
.gitignore Add membership contract, deployment scripts, and Base network config 2026-02-17 20:48:49 -08:00
.nvmrc Harden membership deploy script with env validation and output metadata 2026-02-18 07:11:08 -08:00
hardhat.config.cjs Add membership contract, deployment scripts, and Base network config 2026-02-17 20:48:49 -08:00
Makefile Add membership contract, deployment scripts, and Base network config 2026-02-17 20:48:49 -08:00
package-lock.json Add membership contract, deployment scripts, and Base network config 2026-02-17 20:48:49 -08:00
package.json feat(scripts): add end-to-end membership flow smoke runner 2026-02-18 09:06:29 -08:00
README.md Lock membership defaults to USDC 100 and add ERC20 settlement tests 2026-02-18 13:13:44 -08:00

EDUT Contracts

On-chain contracts and deployment artifacts for membership and entitlements.

Scope

  1. Human membership contract (soulbound governance identity).
  2. Offer registry contract interfaces.
  3. Entitlement contract interfaces.
  4. ABI and deployment artifact publication.

Current Contract

contracts/EdutHumanMembership.sol

Features:

  1. One-time soulbound human token mint.
  2. Sponsor mint support (mintMembership(recipient) can be paid by inviter/company wallet).
  3. Owner-configurable flat mint price (updateMintPrice), launch default is fixed 100 USDC (6 decimals).
  4. Membership status lifecycle (ACTIVE/SUSPENDED/REVOKED) for runtime gates.
  5. Treasury address control for settlement routing.

Local Commands

Use a Hardhat-supported Node runtime (20.x recommended).

  1. npm install
  2. npm run build
  3. npm run test
  4. npm run deploy:sepolia
  5. npm run deploy:mainnet

make check wraps build + tests.

Deployment Environment

Copy .env.example values into your shell/session before deploy:

  1. DEPLOYER_PRIVATE_KEY
  2. BASE_SEPOLIA_RPC_URL / BASE_MAINNET_RPC_URL
  3. TREASURY_WALLET
  4. MINT_CURRENCY_ADDRESS (USDC token contract on target chain)
  5. MINT_AMOUNT_ATOMIC
  6. DEPLOY_OUTPUT_PATH (optional)

Example (Sepolia):

cd /Users/vsg/Documents/VSG\ Codex/contracts
export $(grep -v '^#' .env | xargs)
npm run deploy:sepolia

Boundary

Contracts are settlement primitives. Runtime execution remains off-chain and fail-closed by entitlement state.