Ethereum Smart Contract Best Practices
Initializing search
Github
Home
General Philosophy
Development Recommendations
Attacks
Security Tools
Bug Bounty Programs
About
Ethereum Smart Contract Best Practices
Github
Home
General Philosophy
General Philosophy
Prepare for Failure
Stay up to Date
Keep it Simple
Rolling out
Blockchain Properties
Simplicity vs. Complexity
Development Recommendations
Development Recommendations
General
General
External Calls
Force-feeding Ether
Public on-chain Data
Unreliable Participants
Negation of Signed Integers
Precautions
Precautions
General
Upgradeability
Circuit Breakers
Speed Bumps
Rate Limiting
Deployment
Safe Haven
Solidity-specific
Solidity-specific
Assert, Require, Revert
Modifiers as Guards
Integer Division
Abstract vs Interfaces
Fallback Functions
Payability
Visibility
Locking Pragmas
Event Monitoring
Shadowing
tx.origin
Timestamp Dependence
Complex Inheritance
Interface Types
EXTCODESIZE Checks
Token-specific
Token-specific
Standardization
Frontrunning
Zero Address
Contract Address
Documentation
Documentation
General
Specification
Status
Procedures
Known Issues
History
Contact
Deprecated
Deprecated
Division by Zero
Functions and Events
Constructor Naming
Attacks
Attacks
Reentrancy
Oracle Manipulation
Frontrunning
Timestamp Dependence
Insecure Arithmetic
Denial of Service
Griefing
Force Feeding
Deprecated/Historical
More
Security Tools
Security Tools
Visualization
Static and Dynamic Analysis
Classification
Testing
Linters and Formatters
Bug Bounty Programs
About
About
License
404 - Not found
Back to top