# Create Bitcoin Transaction > Satiate my need to understand how the engine works, not just that it works. Personal testing ground for learning and experimenting with how various bitcoin transactions are created. --- **⚠️ This is experimental. Please use at your own risk.⚠️** --- ## Install > Add package to Cargo.toml file ```rust [dependencies] create_bitcoin_transaction = "0.1.3" ``` ## Usage: ```rust use create_bitcoin_transaction::{ get_signed_transaction_hex, get_unsigned_transaction_hex, PayFrom, PayTo, Wifs, }; fn main() { let pay_froms = vec![PayFrom { transaction: "2d0821b1a1ee6d04c5f91b0b400ec38cf7613bdb06a5d43ce658e672ea66d081".to_string(), vout_index: 1, script_pub_key_hex_of_vout: "001443400caddfaffbb17b130304349384c8ef7e6fa4".to_string(), address: "tb1qgdqqetwl4lamz7cnqvzrfyuyerhhumayhhprt2".to_string(), vout_amount_in_sats: 30000, // }]; let pay_tos = vec![PayTo { address: "tb1psmsr8rc6jwl47xsv4zahnt39m2peexxhxrfvprqpw86yf55rkzgq70ycww".to_string(), amount_in_sats: 29878, }]; let mut wifs: Wifs = Wifs::new(); wifs.insert( 0, "cSPybNQG6n1LpmxGNiWUHSSseaVfNszVjoPwo7qi4dvRE2Se825q".to_string(), ); let unsigned_transaction_hex = get_unsigned_transaction_hex(&pay_froms, &pay_tos); println!("Unsigned transaction: {}", unsigned_transaction_hex); let signed_transaction_hex = get_signed_transaction_hex(&pay_froms, &pay_tos, &wifs); println!("Signed transaction: {}", signed_transaction_hex); } ``` ## Resources To read various resources used to learn how to create and sign transactions, see the [RESOURCES.md](./RESOURCES.md)