The Bitcoin-powered EVM with native BTC interoperability
A sova-reth is a custom EVM node built upon the Reth SDK. It extends the EVM to enable a new set of Bitcoin precompiles. Along with the precompiles, a first of its kind Bitcoin finality inspector is employed in the transaction execution pipeline. The Inspector ensures any Sova state that is tied to a pending Bitcoin transaction is properly finalized depending on the outcome of the Bitcoin transaction. The Inspector plays a big part in mitigating double-spend attacks, chain reorganizations, and other cross-chain race conditions.
# view all make commands
make help
# build the sova-reth binary
make build
# run in devnet mode using Bitcoin regtest
make run-sova-regtest| Precompile Name | Address | Description |
|---|---|---|
| Broadcast Transaction | 0x0000000000000000000000000000000000000999 |
Broadcasts Bitcoin transactions |
| Decode Transaction | 0x0000000000000000000000000000000000000998 |
Decodes raw Bitcoin transactions |
| Convert Address | 0x0000000000000000000000000000000000000997 |
EVM to Bitcoin address conversion |
For more information on how to use the precompiles see related docs.
Validators are free to join the mainnet or testnet. Validators are required to provide their own Bitcoin node API connection, and also run their own Sentinel database service.
The sova-sentinel is a necessary component to every sove-reth node. It is used in custom EVM hooks to enforce Bitcoin finality. Transactions on Sova that are associated with a Bitcoin transaction have their state confirmed by the sova-sentinel. If a transaction that was flagged by the chain is not confirmed on Bitcoin, the Sova state associated with the flagged Bitcoin tx will be reverted.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in these crates by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.