A production-ready stablecoin with role-based access control, mint rate limiting, blocklisting, and a factory for deploying multiple stablecoin instances from a shared implementation.
This repository provides chain-specific implementations of a stablecoin system with a shared set of design goals: upgradeable contracts, granular role-based access control, mint rate limiting, blocklisting, and pause functionality.
- Upgradeability -- Implementations can be upgraded without disrupting existing token holders
- Mint Rate Limiting -- Minters operate within a configurable capacity that replenishes over a rolling interval
- Blocklist -- Addresses can be blocked from sending, receiving, or approving transfers
- Pause -- All transfers can be paused and unpaused independently
- Role-Based Access Control -- Granular roles with separated concerns; admin transfer is two-step with a configurable delay
| Chain | Directory | Details |
|---|---|---|
| EVM | evm/ |
Solidity, beacon proxy pattern, OpenZeppelin |
See each implementation's README for chain-specific quickstart, build, test, and deployment instructions.
custom-stablecoin/
├── evm/ # EVM (Solidity) implementation
│ └── README.md # EVM quickstart and project details
├── LICENSE
├── SECURITY.md
├── CONTRIBUTING.md
└── .github/
└── PULL_REQUEST_TEMPLATE.md
See CONTRIBUTING.md for development setup, coding standards, and the pull request workflow.
See SECURITY.md for our security policy and how to report vulnerabilities.
This project is licensed under the Apache 2.0 License. See LICENSE for details.