Bitcoin Precompiles
What is a Precompile?
You can think of a precompile as a "pre-deployed" contract on the Sova blockchain. Precompiles are special in that at the genesis of the chain, the 'contract logic' is already apart of every validator. Our Bitcoin precompile 'contract' allows Solidity developers to integrate directly with a Bitcoin node.
Overview
On the Sova network, all Bitcoin precompiles are located at address 0x0000000000000000000000000000000000000999
. This address accepts a bytes payload consisting of a 4-byte method identifier followed by any additional data required for the specific Bitcoin action.
Available Precompiles
sendrawtransaction
0x00000001
Signed raw transaction data
Sends a raw Bitcoin transaction
decoderawtransaction
0x00000002
Signed raw transaction data
Decode a raw Bitcoin transaction
verifysignature
0x00000003
Signed raw transaction data
Verifies the unlocking scripts in a signed transaction
convertaddress
0x00000004
EVM address
Converts a Sova address to corresponding BTC address
createandsignrawtransaction
0x00000005
See decoding scheme for input data structure
Create and sign a BTC transaction using network keys
sendrawtransaction
cast call 0x0000000000000000000000000000000000000999 \
--data 0x00000001${raw_tx_hex} \
--rpc-url http://localhost:8545
decoderawtransaction
cast call 0x0000000000000000000000000000000000000999 \
--data 0x00000002${raw_tx_hex} \
--rpc-url http://localhost:8545
verifysignature
cast call 0x0000000000000000000000000000000000000999 \
--data 0x00000003${raw_tx_hex} \
--rpc-url http://localhost:8545
convertaddress
cast call 0x0000000000000000000000000000000000000999 \
--data 0x00000004${eth_address} \
--rpc-url http://localhost:8545
createandsignrawtransaction
cast call 0x0000000000000000000000000000000000000999 \
--data 0x00000005${abi_encoded_params} \
--rpc-url http://localhost:8545
Last updated