The vault is an ERC4626-compliant tokenised vault where users deposit assets to receive shares representing their proportional ownership in the prize pool. These shares are named "BriTechLabs" with the symbol "BTT".
A separate ERC20 token contract BriTechToken.sol is included in scope with identical name and symbol ("BriTechLabs", "BTT"). This creates critical ambiguity: users and integrators cannot distinguish between vault shares (betting position) and the standalone token (potentially governance or utility). Given the protocol’s stated goal of DeFi integration and future yield strategies, it is highly likely BriTechToken.sol was intended to be the underlying asset of the ERC4626 vault — but was incorrectly deployed as a separate contract instead of being used as asset().
Likelihood: Medium
Users interact with token metadata via wallets, explorers, and frontends that display name/symbol — duplicate identifiers appear indistinguishable
DeFi protocols, aggregators, and analytics tools index tokens by name/symbol — collision leads to incorrect data routing and display
Impact: Low
Users mistakenly treat vault shares as governance/utility tokens or vice versa — leading to failed transactions or unintended exposure
Frontend integrations display wrong token (e.g. showing governance balance instead of betting position)
Future integrations assuming BriTechToken is the vault asset will fail or behave unpredictably
First, add this import statement along with others in briVault.t.sol:
Now, add this test_DuplicateTokenMetadata_Confusion test:
Run it using:
Logs:
Use a distinct name and symbol to avoid collision with vault shares.
Or, If BriTechToken was meant to be the underlying asset, then:
Pass its address to the briVault constructor.
Remove hardcoded name/symbol from vault.
Inherit metadata from the asset token (standard ERC4626 pattern)
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.