Project overview and audit preparation for smart contract security. Triggers on weasel overview, weasel scope, or weasel onboard.
Project overview and audit scoping for security engineers starting a new audit.
audit/, audits/, or audit reportsknown-issues.md, issue tracker linksUser Functions (highest risk - untrusted input):
Admin Functions (check access control):
Callbacks (reentrancy risk):
Untrusted - assume malicious:
Privileged - trusted but verify:
Internal - trusted:
| Project Type | High-Risk Areas |
|---|---|
| DeFi/Lending | Liquidation, interest calc, oracles, flash loans |
| DEX/AMM | Price calc, slippage, LP math, fees |
| Staking/Vaults | Deposit/withdraw, rewards, share accounting |
| NFT/Gaming | Minting, randomness, marketplace |
| Governance | Voting, timelock, proposal execution |
# [Project Name] Overview
## Summary
[2-3 sentences: what does this project do?]
## Architecture
- Contract list with purpose
- Key inheritance (ERC4626, Ownable, etc.)
- External dependencies
## Entry Points
### User Functions (Priority: High)
| Function | Contract | Risk |
|----------|----------|------|
| deposit() | Vault.sol:45 | Handles ETH |
| withdraw() | Vault.sol:89 | Sends ETH |
### Admin Functions (Check Access Control)
| Function | Contract | Permission |
|----------|----------|------------|
| setFee() | Vault.sol:120 | onlyOwner |
### Callbacks (Reentrancy Risk)
- onFlashLoan() called by flash lender
## Value Flow
- **In:** ETH via deposit(), tokens via depositToken()
- **Out:** ETH via withdraw(), rewards via claim()
## Trust Model
- **Owner:** Can pause, set fees (max X%)
- **External:** Chainlink oracle (single price feed)
## Audit Focus (Prioritized)
1. [High] Reentrancy in withdraw() - external call before state update
2. [High] Oracle manipulation - single feed, no TWAP
3. [Med] Share inflation - first depositor attack?
## Recommended Audit Order
1. Vault.sol - core logic, highest risk
2. Router.sol - entry point, input validation
3. Token.sol - standard ERC20, lower priority
Offer:
| Rationalization | Why It's Wrong |
|---|---|
| "I'll skip the libraries, they're standard" | Libraries can be modified or misused. Note them. |
| "This looks like a simple project" | Simple projects can have complex bugs. Be thorough. |
| "README explains everything" | README can be outdated. Verify against actual code. |
| "I'll focus only on the main contract" | Entry points can be anywhere. Map ALL external functions. |
| "Previous audit means it's safe" | Previous audits miss things. Note them, don't rely on them. |
| "I understand the pattern, no need to map it" | Every implementation differs. Map THIS codebase. |