ER Diagrams
Entity-relationship diagrams grouped by domain area. All tables use snake_case naming and include created_at / updated_at timestamps.
Core (Authentication & Authorization)
Platform Collaborators
Many-to-many: collaborator <-> collaborator_account <-> account. Each assignment has a role (Admin, Editor, Viewer). Passwords are auto-generated (12 alphanumeric chars) and sent via AWS SES.
Operations
ops_token has a partial unique index on (LOWER(address), network) WHERE deleted_at IS NULL for case-insensitive, soft-delete-friendly uniqueness.
Minting
The source column distinguishes BitGo-managed mints from wallet-connected mints (Safe/EOA). Wallet-mints have a nullable minting_wallet_id and a signer_address instead.
Circulation
circulation_wallet has a partial unique index on (ops_token_id, wallet_address) WHERE deleted_at IS NULL.
Bridge
bridge_token_key groups routes for the same logical token across chains. One ops_token row exists per (address, network), but the bridge thinks in terms of token keys (e.g., "ARGT" spanning Base and Polygon). Partial unique index on (bridge_token_key, network) WHERE deleted_at IS NULL.
Uniswap V4
JSON columns store pool configuration, bot parameters, and oracle token references. The privateKeyEncrypted field is deprecated -- all operations now use BitGo Express via bitgoWalletId + bitgoCoin + passphraseEncrypted.