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. The precompiles are used to send and receive Bitcoin on the Sova Network during EVM transaction execution.
A Makefile is used as a command runner to execute repository commands.
# view all make commands
make help
# build the sova-reth binary
make build
# run in devnet mode using Bitcoin regtest
make run-sova-regtest
Validators are free to join the testnet and sync their own historical chain data from genesis. For more information on how to join the Testnet as an operator view our Guide.
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 |
Vault Spend | 0x0000000000000000000000000000000000000996 |
Network vault spending |
For more information on how to use the precompiles see related docs.
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.