CodeBERT for Solidity Vulnerability Detection

Fine-tuned version of microsoft/codebert-base for binary classification of Solidity smart contracts as vulnerable (1) or safe (0).

Model Details

  • Base model: microsoft/codebert-base
  • Task: Binary classification (vulnerable=1, safe=0)
  • Dataset: 367 Solidity smart contracts generated by 5 LLMs
  • Training: 5 epochs, batch size 8, AdamW optimizer
  • Platform: Google Colaboratory (T4 GPU)

Results

  • Accuracy: 95.9%
  • Precision (vulnerable): 100%
  • Recall (vulnerable): 93.3%
  • F1-score (vulnerable): 0.97
  • False positives: 0

How to Use

Install: pip install transformers torch

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

tokenizer = AutoTokenizer.from_pretrained("Sabreen2026/codebert-solidity-vulnerability")
model = AutoModelForSequenceClassification.from_pretrained("Sabreen2026/codebert-solidity-vulnerability")
model.eval()

contract_code = "pragma solidity ^0.8.0; contract Test { }"

inputs = tokenizer(contract_code, truncation=True, padding=True, max_length=512, return_tensors='pt')
with torch.no_grad():
    outputs = model(**inputs)
    prediction = torch.argmax(outputs.logits, dim=1).item()

print('VULNERABLE' if prediction == 1 else 'SAFE')

Citation

Ahmadjee, S. (2026). Vulnerability Detection in LLM-Generated Solidity Smart Contracts Using Fine-Tuned CodeBERT.

Downloads last month
-
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Sabreen2026/codebert-solidity-vulnerability

Finetuned
(151)
this model