Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Symbolic execution analysis using Mythril for deep vulnerability detection in smart contracts. Supports configurable transaction depth, timeout settings, and proof-of-concept exploit generation.
.claude/skills/a5c-ai-mythril-symbolic/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 114% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-16 | ✓→✓ | = Same ✓ | 143% | 0% |
Deep vulnerability detection through symbolic execution using Mythril, a security analysis tool for EVM bytecode.
bash# Install via pip pip install mythril # Or use Docker (recommended) docker pull mythril/myth # Verify installation myth version
bash# Analyze single file myth analyze Contract.sol # Analyze with Solidity version myth analyze Contract.sol --solv 0.8.20 # Analyze specific contract myth analyze Contract.sol:MyContract
bash# Analyze deployed contract myth analyze -a 0x<address> --rpc <rpc_url> # Analyze bytecode file myth analyze --bin-runtime contract.bin
bash# Default depth (2) myth analyze Contract.sol # Increased depth for complex interactions myth analyze Contract.sol --execution-timeout 300 -t 3 # Deep analysis (slow) myth analyze Contract.sol --execution-timeout 600 -t 4
bash# Set execution timeout (seconds) myth analyze Contract.sol --execution-timeout 300 # Set solver timeout myth analyze Contract.sol --solver-timeout 10000 # Quick scan myth analyze Contract.sol --execution-timeout 60 -t 2
bash# Run specific modules myth analyze Contract.sol --modules ether_thief,suicide # Available modules # - ether_thief # - suicide # - integer_overflow/underflow # - delegatecall # - arbitrary_write # - state_change_external_call
bashmyth analyze Contract.sol
bashmyth analyze Contract.sol -o json > report.json
bashmyth analyze Contract.sol -o markdown > report.md
bashmyth analyze Contract.sol -o jsonv2 > detailed.json
Mythril detects reentrancy by tracking:
==== External Call To User-Supplied Address ====
SWC ID: 107
Severity: Low
Contract: Vulnerable
Function name: withdraw()
PC address: 1234
Estimated Gas Usage: 2500 - 10000
Type: Informational
...==== Integer Overflow ====
SWC ID: 101
Severity: High
Contract: Token
Function name: transfer(address,uint256)
PC address: 567
Estimated Gas Usage: 3000 - 5000
A possible integer overflow exists in the function...==== Unprotected Selfdestruct ====
SWC ID: 106
Severity: High
Contract: Vulnerable
Function name: kill()
Any sender can trigger self-destruction...bash# Use concrete values where possible myth analyze Contract.sol --strategy dfs --execution-timeout 300
bash# Analyze with constraints file myth analyze Contract.sol --constraints constraints.json
bash# Limit state explosion myth analyze Contract.sol --max-depth 30 --call-depth-limit 3
yamlname: Mythril Analysis on: [push] jobs: mythril: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Mythril uses: docker://mythril/myth with: args: analyze /github/workspace/contracts/*.sol --solv 0.8.20
bash#!/bin/bash for file in contracts/*.sol; do myth analyze "$file" --solv 0.8.20 -o json > "reports/$(basename $file .sol).json" done
| Level | Description | Action | |-------|-------------|--------| | High | Critical vulnerability | Fix immediately | | Medium | Potential issue | Investigate | | Low | Minor concern | Consider fixing | | Informational | Code quality | Optional fix |
| SWC ID | Name | Description | |--------|------|-------------| | SWC-101 | Integer Overflow | Arithmetic overflow | | SWC-104 | Unchecked Return | Ignored return values | | SWC-106 | Unprotected Destruct | Accessible selfdestruct | | SWC-107 | Reentrancy | State change after call | | SWC-110 | Assert Violation | Reachable assertion | | SWC-116 | Timestamp Dependence | Block timestamp usage |
| Process | Purpose | |---------|---------| | smart-contract-security-audit.js | Deep vulnerability analysis | | smart-contract-fuzzing.js | Complement to fuzzing | | invariant-testing.js | Property verification |
| Tool | Technique | Speed | Depth | |------|-----------|-------|-------| | Mythril | Symbolic Execution | Slow | Deep | | Slither | Static Analysis | Fast | Surface | | Echidna | Fuzzing | Medium | Medium | | Certora | Formal Verification | Slow | Deepest |
bash# Increase timeout, reduce depth myth analyze Contract.sol --execution-timeout 600 -t 2
bash# Increase solver timeout myth analyze Contract.sol --solver-timeout 30000
bash# Specify Solidity version myth analyze Contract.sol --solv 0.8.20 # Use specific compiler myth analyze Contract.sol --solc-json solc.json
skills/slither-analysis/SKILL.md - Static analysisskills/echidna-fuzzer/SKILL.md - Property-based fuzzingagents/solidity-auditor/AGENT.md - Security auditor| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 5,512 | 3,174 | -42% | 1 | 1 | 0% | 1,070 | 2,287 | +114% | 0 | 0 | — |
case-02 | fail→pass | 11,425 | 3,958 | -65% | 1 | 1 | 0% | 1,652 | 2,282 | +38% | 0 | 0 | — |
case-03 | fail→fail | 6,816 | 5,475 | -20% | 1 | 1 | 0% | 1,174 | 2,606 | +122% | 0 | 0 | — |
case-04 | fail→fail | 5,601 | 1,578 | -72% | 1 | 1 | 0% | 1,182 | 1,982 | +68% | 0 | 0 | — |
case-05 | fail→fail | 20,111 | 4,298 | -79% | 1 | 1 | 0% | 1,624 | 2,429 | +50% | 0 | 0 | — |
case-06 | fail→pass | 6,684 | 2,839 | -58% | 1 | 1 | 0% | 1,254 | 2,196 | +75% | 0 | 0 | — |
case-07 | fail→fail | 8,061 | 2,236 | -72% | 1 | 1 | 0% | 1,585 | 2,101 | +33% | 0 | 0 | — |
case-08 | fail→fail | 9,664 | 2,185 | -77% | 1 | 1 | 0% | 1,681 | 2,060 | +23% | 0 | 0 | — |
case-09 | fail→fail | 4,259 | 2,463 | -42% | 1 | 1 | 0% | 814 | 2,110 | +159% | 0 | 0 | — |
case-10 | fail→fail | 2,632 | 1,666 | -37% | 1 | 1 | 0% | 387 | 1,910 | +394% | 0 | 0 | — |
case-11 | fail→fail | 3,036 | 3,681 | +21% | 1 | 1 | 0% | 336 | 1,885 | +461% | 0 | 0 | — |
case-12 | fail→fail | 1,689 | 1,283 | -24% | 1 | 1 | 0% | 277 | 1,829 | +560% | 0 | 0 | — |
case-13 | fail→fail | 3,463 | 1,419 | -59% | 1 | 1 | 0% | 645 | 1,900 | +195% | 0 | 0 | — |
case-14 | fail→fail | 6,031 | 2,918 | -52% | 1 | 1 | 0% | 1,192 | 2,243 | +88% | 0 | 0 | — |
case-15 | fail→fail | 7,611 | 1,882 | -75% | 1 | 1 | 0% | 1,431 | 1,964 | +37% | 0 | 0 | — |
case-16 | pass→pass | 9,214 | 1,722 | -81% | 1 | 1 | 0% | 822 | 2,000 | +143% | 0 | 0 | — |
case-17 | fail→fail | 5,983 | 2,282 | -62% | 1 | 1 | 0% | 1,056 | 2,018 | +91% | 0 | 0 | — |
case-18 | fail→fail | 5,887 | 1,954 | -67% | 1 | 1 | 0% | 808 | 1,921 | +138% | 0 | 0 | — |
case-19 | fail→pass | 19,281 | 4,675 | -76% | 1 | 1 | 0% | 1,412 | 2,488 | +76% | 0 | 0 | — |
case-20 | fail→fail | 10,842 | 6,820 | -37% | 1 | 1 | 0% | 1,873 | 2,983 | +59% | 0 | 0 | — |
case-21 | fail→fail | 6,820 | 3,704 | -46% | 1 | 1 | 0% | 1,257 | 2,395 | +91% | 0 | 0 | — |
case-22 | fail→fail | 4,149 | 3,285 | -21% | 1 | 1 | 0% | 768 | 2,238 | +191% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.