Mathematical-by-design smart contracts on an eUTXO ledger
No shared global state, first-class Sigma protocols, verifiable execution. Build secure applications that are predictable by design.
Supports formal verification and auditability via declarative constraints and first-class crypto primitives
The class of reentrancy vulnerabilities common to account-based systems is absent in eUTXO
Computational complexity is predictable, though network fees are market-driven
First-class support for multi-signature, threshold, and ring-signature constructions
Parallel transaction processing with batcher patterns for high-contention scenarios
Non-Turing-complete within scripts for safety, yet sequences can express complex behaviors
Built from the ground up with security as the primary concern, eliminating entire classes of vulnerabilities.
Declarative constraints enable external verification tools and auditing
No shared global state eliminates reentrancy vulnerability class
First-class cryptographic primitives for multi-party signatures
Designed for clarity and ease of use, making complex cryptographic operations accessible to all developers.
Test contracts instantly in your browser without setup
SDKs for Java, JavaScript, Python, and more
Learn from production-ready contract templates
Built from the ground up with security and mathematical precision as core principles.
Like Bitcoin Script, works with outputs, not accounts. Unlike BTC, scripts are much more powerful for DeFi, DAO, and complex contracts.
Eliminates the reentrancy vulnerability class; mitigates some MEV patterns, but does not fully prevent frontrunning.
Sigma protocols and zero-knowledge proofs are native. No need for external libraries or complex implementations.
Script execution cost is statically bounded; the final network fee is still market-driven (mempool conditions).
ErgoScript's design philosophy prioritizes safety, predictability, and mathematical rigor.
Intentionally limited to prevent infinite loops and ensure all contracts terminate predictably.
Express what you want to achieve rather than how to achieve it. More readable and less error-prone.
Think of contracts as mathematical proofs rather than imperative programs. Safer and more verifiable.
Formal methods and mathematical proofs ensure your contracts work exactly as intended.
| Feature | ErgoScript (Ergo) | Solidity (Ethereum) | Plutus (Cardano) | Bitcoin Script | Move (Aptos/Sui) |
|---|---|---|---|---|---|
| Platform Type | eUTXO | Account-based (EVM) | eUTXO | UTXO | Account-based |
| Language Base | Sigma-based (Scala-like) | JS/C++-like | Haskell, DSL | Forth-like, stack-based | Rust-like |
| Turing-complete | No (restricted for security) | Yes (with gas limits) | No (highly restricted) | No | Yes |
| Type Safety | Strong typing system | Good, but pitfalls remain | Very high (Haskell-based) | Simple but safe | Very high (Rust-based) |
| Security | High (no reentrancy, no shared state) | Complex (reentrancy, overflows) | Very high (strong types) | Very high (minimal features) | Above average |
| Custom Cryptography | Native Sigma protocols | External libraries | Limited support | Minimal | Moderate |
| Formal Verification | Strong support | External tools | Strong support | Limited | Moderate |
| Learning Curve | Gentle | Steep | Very steep | Simple but limited | Moderate |
| Transaction Costs | Predictable, low | Variable, can be high | Predictable, moderate | Low, simple | Low, predictable |
Comprehensive comparison of smart contract languages including platform types, language bases, security features, and development characteristics.
See how ErgoScript's mathematical approach compares to traditional smart contracts
atLeast(2, Coll( proveDlog(A), proveDlog(B), proveDlog(C) ))Mathematical proof: "At least 2 of these 3 signatures must be valid"
require(validSignatures >= 2, "Need 2+ sigs");
for (uint i = 0; i < signers.length; i++) {
if (verify(signers[i], signature[i])) {
validSignatures++;
}
}Imperative logic with loops, state variables, and manual validation
Continue your ErgoScript development journey