Secure your smart contracts with industry-leading formal verification tools & smart contract audits.













Certora Prover is a powerful tool that compares your smart contract bytecode against a rule detailing how you expect your code to behave. This process, known as formal verification, will check every possible contract state and contract path to identify critical vulnerabilities that hackers can exploit.
/contracts/BEP20.sol
contract BEP20 is IBEP20, IBEP20Metadata {
...
function transferFrom(address sender, address recipient, uint256 value) public virtual returns (bool) {
_spendAllowance(sender, msg.sender, value);
_transfer(sender, recipient, value);
return true;
}
...
}/specs/BEP20.spec
// Checks that transferFrom() decreases allowance of `e.msg.sender`
rule checkTransferFrom(address sender, address recipient, uint256 amount) {
env e; // represents global variables like msg.sender
require sender != recipient && amount > 0;
uint256 allowanceBefore = allowance(sender, e.msg.sender);
transferFrom(e, sender, recipient, amount);
uint256 allowanceAfter = allowance(sender, e.msg.sender);
assert (allowanceBefore > allowanceAfter),
"allowance must decrease..."; // error message
}Find the right solution for you, whether you run our tools yourself or hire our team of experts to secure your code.
Integrate into your process
Dedicated audit team
Work with our community to crowdsource custom formal specifications to find vulnerabilities in your code. We run frequent community audit contests together with leading platforms like Code4rena.