Product
What is Soteria ?
Soteria automatically scans for security vulnerabilities in Ethereum and other EVM-based blockchain smart contracts. Soteria uses security analysis techniques—including static analysis, dynamic analysis, and symbolic execution—can accurately detect security vulnerabilities to provide an in-depth analysis report. Soteria can be utilized in all phases of your project's lifecycle.
How does it works ?

1 - Submit your code
The analysis requests are encrypted with TLS and the code you submit is accessed only by you. Submit both the source code and the compiled bytecode of your smart contracts for best results.

2 - Run the security scan
Fast and regularly updated with the latest vulnerabilities.

3 - Generate a detailed analysis report
Soteria detects majority of vulnerabilities listed in the SWC Registry. The report will return a listing of all the weaknesses found in your code, including the exact position of the issue and its SWC ID. Reports generated can be only accessed by you.
Vulnerabilities Coverage
Soteria scanning tool covers all the vulnerabilities listed in the SWC registry and much more. The tool is updated regurarly each time new vulnerabilities are added to the list.
Benchmark
Soteria scanning tool has been benchmarked against some of the biggest hacks that have happens on both Ethereum and EVM projects. Soteria has been used to scan the smart contracts involved in those hacks. The vulnerabilities have been successfully detected and they could have been fixed before those contracts were deployed in the blockchain. Scanning your smart contracts with Soteria can avoid you hacks and serious financial loss in the future.
Fei Protocol
Smart Contract Address:
0xE39f3C40966DF56c69AA508D8AD459E77B8a2bc1
Date: 30 April 2022
Loss Amount: $80M USD
Vulnerabilities Involved: SWC-107 (Reentrancy)
BeautyChain (BEC)
Smart Contract Code: BECToken.sol
Smart Contract Address:
0xC5d105E63711398aF9bbff092d4B6769C82F793D
Date: 22 April 2018
Loss Amount: 10^58 BEC
Vulnerabilities Involved: SWC-101 (Integer Overflow and Underflow)
Parity Multi-Sig Wallets
Smart Contract Code: WalletLibrary.sol
Date: 19 July 2017
Loss Amount: 587 wallets frozen holding a total amount of 513,774 Ethers
Vulnerabilities Involved: SWC-106 (Unprotected SELFDESTRUCT Instruction)
Rubixi
Smart Contract Code: Rubixi.sol
Date: March 2016
Smart Contract Address:
0xe82719202e5965Cf5D9B6673B7503a3b92DE20be
Loss Amount: Accumulated Fees in the financial pyramid stolen because the constructor function had an incorrect name, allowing anyone to become the owner
Vulnerabilities Involved: SWC-105 (Unprotected Ether Withdrawal)
King of the Ether Throne (KotET)
Smart Contract Code: KingOfTheEtherThrone.sol
Date: February 2016
Loss Amount: Payment failure
Vulnerabilities Involved: SWC-128 (Denial of Service With Block Gas Limit)
Try Soteria Security Scanning Tool
You can try the Soteria security scanning tool with a sample smart contract. Two samples are available for you to test and visualise the detected vulnerabilities.
Select a contract sample
Contract Code Sample 1
1 pragma solidity ^0.4.19; 2 3 contract Private_Bank 4 { 5 mapping (address => uint) public balances; 6 7 uint public MinDeposit = 1 ether; 8 9 Log TransferLog; 10 11 function Private_Bank(address _log) 12 { 13 TransferLog = Log(_log); 14 } 15 16 function Deposit() 17 public 18 payable 19 { 21 if(msg.value > MinDeposit) 22 { 23 balances[msg.sender]+=msg.value; 24 TransferLog.AddMessage(msg.sender,msg.value,"Deposit"); 25 } 26 } 27 28 function CashOut(uint _am) 29 public 30 payable 31 { 32 if(_am<=balances[msg.sender]) 33 { 34 //41 42 function() public payable{} 43 } 44 45 contract Log 46 { 47 48 struct Message 49 { 50 address Sender; 51 string Data; 52 uint Val; 53 uint Time; 54 } 55 56 Message[] public History; 57 58 Message LastMsg; 59 61 function AddMessage(address _adr,uint _val,string _data) 62 public 63 { 64 LastMsg.Sender = _adr; 65 LastMsg.Time = now; 66 LastMsg.Val = _val; 67 LastMsg.Data = _data; 68 History.push(LastMsg); 69 } 70 } REENTRANCY 35 // UNCHECKED_LL_CALLS 36 msg.sender.call.value(_am)(); 37 balances[msg.sender]-=_am; 38 TransferLog.AddMessage(msg.sender,_am,"CashOut"); 39 } 40 }
Detected Vulnerabilities
Contract Code Sample 2
1 pragma solidity ^0.5.0; 2 3 contract Owned { 4 /// @dev `owner` is the only address that can call a function with this modifier 5 modifier onlyOwner() { 6 require(msg.sender == owner); 7 _; 8 } 9 10 address public owner; 11 12 /// @notice The Constructor assigns the message sender to be `owner` 13 function Owned() { 14 owner = msg.sender; 15 } 16 17 address public newOwner; 18 19 function changeOwner(address _newOwner) onlyOwner { 20 newOwner = _newOwner; 21 } 22 23 function acceptOwnership() { 24 if (msg.sender == newOwner) { 25 owner = newOwner; 26 } 27 } 28 29 function execute(address _dst, uint _value, bytes _data) onlyOwner { 30 //33 } 34 35 // contract WedIndex 36 contract WedIndex is Owned { 37 // declare index data variables 38 string public wedaddress; 39 string public partnernames; 40 uint public indexdate; 41 uint public weddingdate; 42 uint public displaymultisig; 43 44 IndexArray[] public indexarray; 45 46 struct IndexArray { 47 uint indexdate; 48 string wedaddress; 49 string partnernames; 50 uint weddingdate; 51 uint displaymultisig; 52 } 53 54 function numberOfIndex() constant public returns (uint) { 55 return indexarray.length; 56 } 57 58 function writeIndex(uint indexdate, string wedaddress, string partnernames, uint weddingdate, uint displaymultisig) { 59 indexarray.push(IndexArray(now, wedaddress, partnernames, weddingdate, displaymultisig)); 60 IndexWritten(now, wedaddress, partnernames, weddingdate, displaymultisig); 61 } 62 63 // declare events 64 event IndexWritten (uint time, string contractaddress, string partners, uint weddingdate, uint display); 65 } UNCHECKED_LL_CALLS 31 _dst.call.value(_value)(_data); 32 }
Detected Vulnerabilities
SEVERITY : MEDIUM
Owned.execute(
address, uint256, bytes)
ignores return value by
_dst.call.value(_value)(_data)
Line : 29-32
Pricing
Soteria automatically scans for security vulnerabilities in Ethereum and other EVM-based blockchain smart contracts. Soteria uses security analysis techniques—including static analysis, dynamic analysis, and symbolic execution—can accurately detect security vulnerabilities to provide an in-depth analysis report. Soteria can be utilized in all phases of your project's lifecycle.
Professional
USD $149
monthly
- For small to medium size team
- Daily development usage
- 3,000 scans max per month
Enterprise
Custom Need
- For large team and enterprises
- Monthly scans according to your needs
- Daily development usage
- Monthly Allocated Credits
- Credits Expiration
- Smart Contract Scans
- Scan Option 1 :
Gas Optimization - Scan Option 2 :
Contract Class Diagram - Estimated Cost per Scan
(scan without options) - Security Report Review (30 mins)
1 to 1 call with our security expert. - Create Projects
Easier collaborative work - Manage Members
Easier collaborative work
On Demand
USD $4.99-
Monthly Allocated Credits
- 15 days Credits Expiration
-
1 scan Smart Contract Scans -
Included Scan Option 1 :
Gas Optimization -
Included Scan Option 2 :
Contract Class Diagram -
Estimated Cost per Scan
(scan without options) USD $4.99 -
On demand
USD $100/session Security Report Review (30 mins)
1 to 1 call with our security expert. -
Create Projects Easier collaborative work -
Manage Members Easier collaborative work
Developer
USD $19- 200 credits Monthly Allocated Credits
- 45 days Credits Expiration
-
1 credit/scan Smart Contract Scans -
+1 credit Scan Option 1 :
Gas Optimization -
+1 credit Scan Option 2 :
Contract Class Diagram -
Estimated Cost per Scan
(scan without options) USD $0.1 -
On demand
USD $100/session Security Report Review (30 mins)
1 to 1 call with our security expert. -
Create Projects Easier collaborative work -
Manage Members
Professional
USD $149- 3,000 credits Monthly Allocated Credits
- 90 days Credits Expiration
-
1 credit/scan Smart Contract Scans -
+1 credit Scan Option 1 :
Gas Optimization -
+1 credit Scan Option 2 :
Contract Class Diagram -
Estimated Cost per Scan
(scan without options) USD $0.05 -
On demand
USD $100/session Security Report Review (30 mins)
1 to 1 call with our security expert. -
Create Projects Easier collaborative work -
Manage Members Easier collaborative work
Enterprise
Custom Need- Customizable Monthly Allocated Credits
- 90 days Credits Expiration
-
1 credit/scan Smart Contract Scans -
+1 credit Scan Option 1 :
Gas Optimization -
+1 credit Scan Option 2 :
Contract Class Diagram -
Estimated Cost per Scan
(scan without options) < USD $0.05 -
On demand
USD $100/session Security Report Review (30 mins)
1 to 1 call with our security expert. -
Create Projects Easier collaborative work -
Manage Members Easier collaborative work
Frequently Asked Questions
Check out our commonly asked questions to find the answer to your most common question.
1 - Submit your code. The analysis requests are encrypted with TLS and the code you submit is accessed only by you. Submit both the source code and the compiled bytecode of your smart contracts for best results.
2 - Run the security scan. The analysis requests are encrypted with TLS and the code you submit is accessed only by you. Submit both the source code and the compiled bytecode of your smart contracts for best results.
3 - Generate a detailed analysis report. Soteria detects majority of vulnerabilities listed in the SWC Registry. The report will return a listing of all the weaknesses found in your code, including the exact position of the issue and its SWC ID. Reports generated can be only accessed by you.
The goals of the SWC scheme are as follows:
Provide a straightforward way to classify weaknesses in smart contract systems.
Provide a straightforward way to identify the weakness(es) that lead to a vulnerability in a smart contract system.
Define a common language for describing weaknesses in smart contract systems’ architecture, design and code.
Train and increase the performance of smart contract security analysis tools.
1 - Ethereum
2 - Tron
3 - BSC
4 - Arbitrum
5 - Polygon
6 - Avalanche
7 - Optimism
8 - Fantom
Partnership

1 - Build your Security Tool
Build your own scan security tool service and offer it to your customers.

2 - Integrate Soteria API
Use Soteria API and integrate security scanning capabilities inside your own product.

3 - Get Revenue Sharing
Get a revenue sharing each time your customers scan a contract.
Contact Us
Soteria's Research and Developements Lab is located in Asia.
Get in touch
Send us a message.
Location:
Bangkok Sukhumvit Thonglor
Email:
info@soteria.io