BERT is programmable stablecoin-native funding infrastructure for transparent grant allocation, treasury coordination, and milestone-based capital release.
The protocol keeps proposal intake, voting rounds, treasury accounting, and staged grant distribution onchain. Economic flows are USDC-native: proposal deposits, vote commitments, treasury balances, reserve accounting, and grant payouts all settle in USDC-compatible units.
Traditional grant programs are often opaque, manual, slow to execute, and difficult to audit. Treasury coordination is fragmented across forms, spreadsheets, chat approvals, and offchain payout operations.
BERT turns grant allocation into programmable treasury flow:
- Builders create proposals with a stake-backed submission flow.
- Participants commit USDC voting weight during funding rounds.
- The treasury records round-level and proposal-level capital onchain.
- Winning proposals receive milestone-based USDC releases.
- Reviewers validate progress before later tranches unlock.
BERT is designed for Arc’s stablecoin settlement infrastructure.
Arc is not presented here as “just another EVM” or a “cheap chain”. The fit is that Arc is a stablecoin-native execution environment where USDC is central to settlement and fees. That makes it a strong home for treasury coordination, grant disbursement, and programmable capital allocation workflows.
For the current Arc testnet references used in this repo:
- Arc Testnet chain ID is
5042002. - Public RPC is
https://rpc.testnet.arc.network. - Testnet USDC ERC-20 interface address is
0x3600000000000000000000000000000000000000.
Sources:
- Arc docs:
Connect to Arc - Arc docs:
Contract addresses - Circle docs:
USDC Contract Addresses
Builder creates proposal
|
v
Proposal stake is locked in USDC
|
v
Participants commit USDC votes
|
v
FundingPool accumulates round capital
|
v
Winning proposal is selected
|
v
GrantManager releases 30% / 40% / 30%
|
v
Each later tranche requires milestone approval
IdeaRegistryUpgradeablestores proposals, metadata, author stake requirements, and lifecycle state.VotingSystemUpgradeablemanages voting rounds and USDC-denominated vote commitments.FundingPoolUpgradeableis the USDC treasury and accounting layer.GrantManagerUpgradeablecoordinates claim flow and milestone-based releases.RolesRegistryUpgradeableandRolesAwareUpgradeableenforce protocol permissions.
- Upgradeable core modules are deployed behind proxies.
FundingPoolUpgradeable,VotingSystemUpgradeable, andGrantManagerUpgradeableare pausable.- Treasury transfers use
SafeERC20. - Milestone payout state prevents duplicate release.
- Role-gated cross-contract calls reduce unauthorized state changes.
npm install
npx hardhat compile
npx hardhat testLocal deployment:
npx hardhat node
npx hardhat run scripts/deploy/deploy-proxies.ts --network localhostArc testnet deployment:
cp .env.example .env
npx hardhat run scripts/deploy/deploy-proxies.ts --network arcTestnetIf USDC_ADDRESS is not set, the deploy script falls back to MockUSDC for local/dev environments.
Disclaimer This repository contains the core smart contracts of the protocol. The codebase may evolve rapidly, so older guides may not match the current layout. Refer to the latest docs for accurate integration guidance.
License
2026 BERT info@bertdao
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
