Skip to content
Back to skills

Reviewing With Solodit And Swc

ASecurity

Manual smart-contract review against Solodit historical findings and SWC weakness IDs by protocol type (vault, AMM, bridge, governance). Use after static analysis, before writing a contest report.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsrustgoawssecurity

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add nuroctane/nur-cli --skill reviewing-with-solodit-and-swc --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reviewing With Solodit And Swc?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reviewing With Solodit And Swc
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nuroctane-reviewing-with-solodit-and-swc/badge)](https://www.skillsdirectory.com/skills/nuroctane-reviewing-with-solodit-and-swc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reviewing-with-solodit-and-swc
description: "Manual smart-contract review against Solodit historical findings and SWC weakness IDs by protocol type (vault, AMM, bridge, governance). Use after static analysis, before writing a contest report."
---

# Reviewing with Solodit and SWC

Tools catch known detectors. This playbook catches **logic bugs that already landed on similar protocols**. Whitehat only: in-scope source, local tests.

Load `sc-research` if you do not yet have scope. Companion checklist: `skills/security/SCA/auditing-foundry-smart-contract-security/references/vulnerability-checklist.md`.

## Steps

### 1. Label the protocol

Pick one or more labels before searching. Wrong label = wrong bugs.

| Label | Typical conservation laws |
|-------|---------------------------|
| ERC-4626 / vault / yield | `totalAssets` vs shares, first-depositor inflation, donation attack |
| AMM / CL / spot pool | reserve accounting, fee-on-transfer, empty-pool, tick math |
| Lending / CDP | oracle, LTV, liquidation bonus, interest index, bad debt |
| Staking / rewards | reward-index checkpoint, leftover dust, double-claim |
| Bridge / messenger | message replay, finality, address spoof, amount decode |
| Governance / timelock | proposal hijack, delay bypass, queue/execute mismatch |
| Proxy / upgrade | storage clash, missing initializer lock, impl selfdestruct |
| NFT / marketplace | callback reentrancy, royalty, signature replay |
| Wallet / Safe UI / Permit2 | simulation vs calldata, EIP-712 domain, leftover allowance (`investigator-ops.md`) |

### 2. Pull historical findings

Open [Solodit](https://solodit.xyz/) and search:

- protocol type + function name (`deposit`, `harvest`, `liquidate`, `borrow`)
- the exact dependency (OpenZeppelin version, Chainlink feed, Uniswap callback)
- known-issue titles from the contest README so you do **not** re-report them

For each hit: extract the **pattern** (what was trusted that shouldn't be), not the copy-paste report text.

Also map to [SWC](https://swcregistry.io/) ids. Core set: SWC-107 reentrancy, 105/106/115 access control, 101 arithmetic, 104 unchecked call, 112 delegatecall, 114 timing, 120 randomness, 113/128 DoS.

Paid bounty analog: `hunting-x-linked-bounties` (one slice) then the Playbook column. Public hack analog: one slice of `historical-smart-contract-vulns`. Ingest T-ids: `ingest-class-map.md`. Do not dump either library.

### 3. Walk the in-scope contracts

For every value-moving function:

1. Who can call it? (`msg.sender`, roles, callbacks, `tx.origin`)
2. What price / share / rate does it trust?
3. What external call happens, and can that callee re-enter or return less than assumed?
4. What invariant would break if this function is composed with one other function in the same tx?

Write the question down. Then try to break it with a Foundry test - do not "reason it is fine".

### 4. Dedup against tools

If Slither/Aderyn already flagged the line, keep **one** finding. Prefer the tool hit when it is a true positive; prefer the Solodit-shaped writeup when the bug is economic / compositional.

## Expected output

A short table: `(contract, function, pattern, SWC, Solodit analog, local test idea, severity)`. No exploit scripts. Next skill is usually `writing-foundry-invariant-handlers` or `contest-and-bounty-reporting`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.