Skip to content

isadeghi87/mark-protocol

Mark Protocol

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.


What This Is

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.

What This Is Not

  • 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.

Token Summary

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)

Allocation

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.

Design Principles

  1. Simplicity. ~28 lines of custom Solidity. All token logic inherited from OpenZeppelin v5.x.
  2. Immutability. No owner, no admin, no proxy. The contract cannot be modified after deployment.
  3. Transparency. Source code is open. Allocation is public. Risks are documented.
  4. Honesty. The documentation states what exists and what doesn't, what works and what could fail.

Quick Start

# 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 --check

Requires Foundry. See Getting Started for detailed setup.

Test Suite

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()

Repository Structure

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

Verification

After deployment, anyone can independently verify the contract:

  1. BaseScan. Read the verified source code directly on the block explorer.
  2. Bytecode comparison. Build locally with forge build and compare output to deployed bytecode.
  3. Constructor arguments. Verify the constructor was called with the correct recipient address.
  4. 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.

Risk Notice

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.

Documentation

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

Contributing

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.

Security

To report a security vulnerability, follow the responsible disclosure process in SECURITY.md. Do not open public issues for security concerns.

Disclaimer

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.

License

MIT — see LICENSE

About

On-chain document attestation on Base. Fixed-supply ERC-20 token — no owner, no admin, no tax. Open source under MIT.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors