Practical overview
When it fits
Use SB Curated when an evaluation needs Solidity examples with vulnerability labels and reported line locations, especially for comparing analysis tools.
Who it is for
- Researchers comparing automated Solidity vulnerability analyzers.
- Developers or research teams assembling labeled contract cases for security evaluation.
Documented uses
- Compare analyzer findings against annotated vulnerability examples.
- Organize evaluation cases by vulnerability category.
- Contribute a contract or revise an annotation using the repository’s stated contribution process.
Requirements & limits
The repository is public and identifies its license as Apache-2.0. The README states that included contracts retain their original licenses.
- The dataset covers categories such as reentrancy, access control, arithmetic errors, unchecked low-level calls, denial of service, bad randomness, front running, time manipulation and short addresses.
- Annotations include source and author metadata, reported vulnerable line numbers, and category comments.
- The dataset provides evaluation material; running analysis requires an analysis tool or framework.
- Repository metadata lists Apache-2.0, while individual included contracts retain their original licenses.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Inspect SB Curated contracts and vulnerability annotations
Use the dataset’s DASP-organized Solidity contracts and report comments as labeled material for security research.
Before you start
- Access to the public SB Curated repository.
Steps
Choose a vulnerability category from the repository’s DASP-organized dataset, such as reentrancy or arithmetic.
Inspect the Solidity contracts in that category.
Read the annotations: file comments identify source, author, and reported line numbers; marked lines use the form
// CATEGORY.Use the annotated contracts as research or evaluation material for automated analysis tools.
Expected outcome
A set of Solidity contracts organized by vulnerability category, with annotations identifying reported vulnerable lines.
Guide limitations
- The dataset is a research corpus, not an automated analysis tool.
- Contracts were obtained from public websites or Etherscan and retain their original licenses; the README states the Apache-2.0 license applies to other files.
Propose an annotated contract for the dataset
Prepare a contribution that follows the repository’s documented process for adding a contract or updating annotations.
Before you start
- A new or existing Solidity contract and its vulnerability annotations.
- A GitHub pull request submission.
Steps
Add a contract or update an existing annotation using the repository’s documented annotation style.
Update the root
vulnerabilities.jsonfile.Run
scripts/get_vulns_lines.jsto update the vulnerability line information.Optionally format the JSON file with the command below.
python -m json.toolSubmit a pull request with the new information.
Expected outcome
A pull request containing the contract or annotation changes and an updated vulnerability index.
Guide limitations
- The repository welcomes contributions, but acceptance or merge is not guaranteed.
- Contracts retain their original licenses; the README says the Apache-2.0 license applies to other files.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 14 October 2026
- Original website title
- smartbugs/smartbugs-curated · Official homepage title · retained in its source language

