Smart Contracts

Built By DAO operates on 20 smart contracts deployed on Base (Ethereum L2). This section provides technical documentation for each contract.


circle-info

πŸ“œ Contract System

⛓️ Network
πŸ“œ Contracts
πŸ”§ Solidity
πŸ†” Chain ID

Base (L2)

20

0.8.33

8453

circle-info

🎯 Standards: ERC-20, ERC-721, OpenZeppelin UUPS, Role-based Access Control


πŸͺ™ Token Contracts

Contract
Type
Description

ERC-20

External speculation/trading token

Modified ERC-20

Internal work-based currency (non-transferable)


chevron-rightπŸ” Common Patternshashtag

Founder β†’ Multisig Transition

All contracts implement a one-way transition from founder control to multisig governance:

function enableMultisig(address _multisig) external onlyFounder {
    if (multisigEnabled) revert MultisigAlreadyEnabled();
    multisigWallet = _multisig;
    multisigEnabled = true;
}

Key characteristics:

  • Irreversible once enabled

  • Transfers admin control to DAO multisig

  • Designed for progressive decentralization


Soul-Bound NFTs

NFT contracts override _update() to prevent transfers:

function _update(address to, uint256 tokenId, address auth) internal override {
    address from = _ownerOf(tokenId);
    if (from == address(0)) return super._update(to, tokenId, auth); // Allow mint
    if (to == address(0)) return super._update(to, tokenId, auth);   // Allow burn
    if (whitelistedAddresses[to]) return super._update(to, tokenId, auth); // Emergency
    revert TransferNotAllowed();
}

Transfer rules:

Action
Allowed

🟒 Minting

Yes

🟒 Burning

Yes

🟑 Transfer to whitelisted (emergency)

Yes

πŸ”΄ Transfer between users

No


Multi-Stablecoin Support

Financial contracts normalize across different decimal standards:

function _normalizeToUsd(address token, uint256 amount) internal view returns (uint256) {
    uint8 tokenDecimals = stablecoinDecimals[token];
    if (tokenDecimals == 6) return amount;
    if (tokenDecimals > 6) return amount / (10 ** (tokenDecimals - 6));
    return amount * (10 ** (6 - tokenDecimals));
}

Supported stablecoins:

Token
Decimals

USDC

6

USDT

6

DAI

18

PYUSD

6


chevron-rightπŸ”‘ Role Referencehashtag
Role
Description
Used In

DEFAULT_ADMIN_ROLE

Can grant/revoke all roles

All contracts

ADMIN_ROLE

Administrative functions

Most contracts

MINTER_ROLE

Mint tokens/NFTs

BLTBYToken, EQTBLTToken, NFTs

MANAGER_ROLE

Operational management

Bank, Investor, NFTs

GOVERNANCE_ROLE

Execute governance decisions

Governance, Treasury

REVENUE_SOURCE_ROLE

Record revenue

Treasury

SERVICE_MANAGER_ROLE

Manage services

AccessControl, Redemption

FULFILLMENT_ROLE

Fulfill redemptions

RedemptionContract

PROPERTY_MANAGER_ROLE

Manage properties/leases

RentalAndRebate

RECORDER_ROLE

Record activity

ActivityTracker

SNAPSHOT_ROLE

Submit voter snapshots

Governance



BLTBYTokenchevron-rightEQTBLTTokenchevron-rightDAOMembershipNFTchevron-rightGovernancechevron-rightTreasurychevron-right

Last updated