AMM on Base for startup tokens (ERC-S), forked from Aerodrome Finance (Solidly-style). Uses battle-tested core contracts with Street-specific changes: STREET token, 2-year vote-escrow, fixed emissions, founder controls, and 5% bribe platform fee.
- Spec: STREET_AMM_IMPLEMENTATION_SPEC.md
- Docs: docs/ — Architecture, Tokenomics, Governance, Security
| Contract | Description |
|---|---|
Pool.sol |
Constant-product AMM (Uniswap V2–style). |
Router.sol |
Multi-pool swaps, add/remove liquidity. |
PoolFees.sol |
Pool trading fees (separate from reserves). |
ProtocolLibrary.sol |
Router helpers (e.g. price impact). |
FactoryRegistry.sol |
Registry of pool, gauge, and voting-reward factories. |
| Contract | Description |
|---|---|
StreetToken.sol |
Protocol ERC20 (STREET), 1B max supply. |
VeStreet.sol |
Vote-escrow (ve)NFT; max lock 2 years. Merge, split, managed NFTs. |
StreetMinter.sol |
Fixed weekly emissions (no rebases); team share + rest to Voter. |
RewardsDistributor.sol |
Used by Minter; no rebase transfers in Street flow. |
VeArtProxy.sol |
(ve)NFT art proxy. |
AirdropDistributor.sol |
Distributes permanently locked (ve)NFTs. |
| Contract | Description |
|---|---|
StreetVoter.sol |
Epoch votes, gauge/bribe creation, emission distribution. Founder whitelist for gauge creation; gauge pause (governor or pool founder). |
Gauge.sol |
LP staking; receives emissions by vote weight. |
StreetBribe.sol |
Bribe rewards with 5% platform fee to treasury. |
FeesVotingReward.sol |
LP fees for current epoch voters. |
VotingReward.sol |
Base reward logic. |
ManagedReward.sol / LockedManagedReward.sol / FreeManagedReward.sol |
Managed veNFT staking and rewards. |
FounderControls.sol |
Per-pool pause, max daily volume, max float (optional integration). |
OffRampKYC.sol |
Optional KYC for fiat off-ramps. |
| Contract | Description |
|---|---|
ProtocolGovernor.sol |
OpenZeppelin Governor: whitelist, emissions, managed NFTs. |
EpochGovernor.sol |
Epoch-based emissions adjustments. |
Uses Foundry:
forge install
forge build
forge testInherit BaseTest in BaseTest.sol and set deploymentType to Deployment.FORK. Set BASE_RPC_URL in .env. Optionally set BLOCK_NUMBER for a fixed fork.
yarn format— Prettieryarn lint— Solhint (currently disabled in CI)
See script/README.md. Constants (e.g. script/constants/Base.json) include treasury for StreetBribe and StreetVotingRewardsFactory. Deploy script deploys FounderControls and OffRampKYC and writes addresses to the output JSON.
See PERMISSIONS.md if present.
See LICENSE and NOTICE. This project follows Apache Foundation licensing guidelines.
The table below refers to Aerodrome on Base (upstream). Street AMM deployments will be documented separately after mainnet launch (see script/constants/output/ for script output).
| Name | Address |
|---|---|
| ArtProxy | 0xE999… |
| RewardsDistributor | 0x227f… |
| FactoryRegistry | 0x5C3F… |
| Forwarder | 0x15e6… |
| GaugeFactory | 0x35f3… |
| ManagedRewardsFactory | 0xFdA1… |
| Minter | 0xeB01… |
| PoolFactory | 0x420D… |
| Router | 0xcF77… |
| AERO | 0x9401… |
| Voter | 0x1661… |
| VotingEscrow | 0xeBf4… |
| VotingRewardsFactory | 0x45cA… |
| Pool | 0xA4e4… |