An ERC-20 token on Base for a planned on-chain attestation and document timestamping ecosystem.
Fixed supply · No admin · No fees · Immutable
Status: Pre-launch. The token contract is complete and tested. The attestation product is under development and does not yet exist. Read Risk Disclosures before interacting.
Mark Protocol is a planned ecosystem for creating tamper-proof, timestamped proof-of-existence records for documents, agreements, and data hashes on Base (Ethereum L2). MARK is the ERC-20 token intended to serve as the payment and coordination mechanism for this ecosystem.
The token contract is intentionally minimal: a standard ERC-20 with EIP-2612 gasless approvals, 100,000,000 fixed supply minted at deployment, and zero admin privileges.
- Not an investment product. MARK does not promise returns, dividends, or price appreciation.
- Not a finished product. The attestation registry is under development. At launch, only the token exists.
- Not decentralized governance. There is no DAO, no multisig, and no voting. This is a solo-founder project.
- Not audited. The contract uses audited OpenZeppelin libraries, but has not been independently audited.
| Property | Value |
|---|---|
| Name | Mark Protocol |
| Symbol | MARK |
| Standard | ERC-20 + ERC20Permit (EIP-2612) |
| Chain | Base (Ethereum L2, Chain ID 8453) |
| Total Supply | 100,000,000 MARK |
| Decimals | 18 |
| Admin / Owner | None |
| Mint Function | None (fixed supply) |
| Burn / Pause / Blacklist | None |
| Transfer Fee | None |
| Upgradeable | No |
| Contract Address | (Published after deployment) |
| Bucket | Amount | % | Controlled By |
|---|---|---|---|
| DEX Liquidity | 50,000,000 | 50% | Locked LP tokens (founder after lock) |
| Project Operations | 35,000,000 | 35% | Founder |
| Founder | 15,000,000 | 15% | Founder |
The founder controls or influences 50% of total supply. This is disclosed transparently. See Tokenomics and Governance and Control.
- Simplicity. ~28 lines of custom Solidity. All token logic inherited from OpenZeppelin v5.x.
- Immutability. No owner, no admin, no proxy. The contract cannot be modified after deployment.
- Transparency. Source code is open. Allocation is public. Risks are documented.
- Honesty. The documentation states what exists and what doesn't, what works and what could fail.
# Clone and build
git clone https://github.com/isadeghi87/mark-protocol.git
cd mark-protocol
forge install
forge build
# Run all tests (46 tests: unit, fuzz, invariant)
forge test -vvv
# Check formatting
forge fmt --checkRequires Foundry. See Getting Started for detailed setup.
| Type | Count | Purpose |
|---|---|---|
| Unit tests | 41 | Function-level correctness |
| Fuzz tests | 3 | Randomized input testing (256 runs) |
| Invariant tests | 2 | Stateful property verification (256,000+ calls) |
Key invariants verified:
totalSupply()never changes after deployment- Sum of all balances always equals
totalSupply()
mark-protocol/
├── src/
│ └── MarkToken.sol # Token contract (~28 lines custom code)
├── test/
│ ├── MarkToken.t.sol # Unit and fuzz tests
│ └── MarkTokenInvariant.t.sol # Invariant tests
├── script/
│ ├── Deploy.s.sol # Deployment script
│ └── PostDeployChecklist.s.sol # Post-deploy verification
├── docs/ # Full documentation suite
│ ├── overview.md # Project overview
│ ├── architecture.md # Architecture and design decisions
│ ├── smart-contract.md # Contract reference
│ ├── tokenomics.md # Supply and allocation
│ ├── security-model.md # Security analysis
│ ├── risks.md # Risk disclosures
│ ├── governance-and-control.md # Governance model
│ ├── liquidity-and-trading.md # DEX liquidity and trading
│ ├── getting-started.md # Setup and verification guide
│ ├── exchange-readiness.md # Exchange listing package
│ ├── faq.md # Frequently asked questions
│ ├── branding.md # Brand and design system
│ └── changelog-policy.md # How changes are tracked
├── website/ # Public website (static HTML/CSS/JS)
│ ├── index.html, docs.html, tokenomics.html, risks.html, faq.html
│ ├── styles.css, app.js
│ └── assets/ # Logo, favicon, OG image (SVG)
├── public/ # Trust and due diligence materials
│ ├── project-summary-onepager.md
│ ├── founder-transparency-checklist.md
│ └── due-diligence-checklist.md
├── contracts/ # Contract overview (pointer to src/)
├── examples/ # Interaction examples (cast commands)
├── metadata/ # Token metadata JSON
├── .github/ # Issue templates, PR template, CI workflows
├── CONTRIBUTING.md # Contribution guidelines
├── CODE_OF_CONDUCT.md # Code of conduct
├── SECURITY.md # Vulnerability reporting
├── DISCLAIMER.md # Legal disclaimer
├── LICENSE # MIT
├── foundry.toml # Foundry configuration
└── Makefile # Build shortcuts
After deployment, anyone can independently verify the contract:
- BaseScan. Read the verified source code directly on the block explorer.
- Bytecode comparison. Build locally with
forge buildand compare output to deployed bytecode. - Constructor arguments. Verify the constructor was called with the correct recipient address.
- Fork testing. Run the full test suite against the live contract:
forge test --fork-url https://mainnet.base.org -vvv
See Smart Contract Reference for detailed verification steps.
MARK tokens may lose all value. Cryptocurrency involves substantial risk including total loss of funds. There is no price floor, no buyback mechanism, and no guarantee of any kind. The attestation product does not yet exist. The project is run by a solo founder. The contract has not been formally audited.
Read the full Risk Disclosures and Disclaimer before interacting.
| Document | Description |
|---|---|
| Overview | What the project is, its current status, and scope |
| Architecture | Chain selection, contract design, system boundaries |
| Smart Contract | Function reference, admin capabilities (none), verification |
| Tokenomics | Supply model, allocation, distribution mechanics |
| Security Model | Attack surface analysis, testing strategy, limitations |
| Risk Disclosures | 8 risk categories with severity ratings |
| Governance | What the founder controls, what no one controls |
| Liquidity & Trading | DEX mechanics, slippage, MEV, impermanent loss |
| Getting Started | Clone, build, test, verify, interact |
| FAQ | Common questions and honest answers |
| Exchange Readiness | Listing application package |
| Branding | Colors, typography, voice, anti-patterns |
Contributions to documentation, tests, and website are welcome. See CONTRIBUTING.md for guidelines.
The token contract is immutable — code changes to src/MarkToken.sol will not affect the deployed contract.
To report a security vulnerability, follow the responsible disclosure process in SECURITY.md. Do not open public issues for security concerns.
Nothing in this repository constitutes financial, legal, or investment advice. MARK is not a security, investment contract, or revenue-sharing instrument. See DISCLAIMER.md for the full legal disclaimer.
MIT — see LICENSE