A standard Bitcoin address works like a digital vault. There are one or more keys that allow key holders to release the coins by opening the vault.
In addition to standard addresses, a certain type of Bitcoin addresses, known as Pay-to-Script-Hash or P2SH, require the knowledge of a redeem script.
The redeem script is a set of conditions that must be met to unlock the coins locked in a previous transaction funding the P2SH address.
The redeem script must be written in a stack-based scripting language specified in the Bitcoin core protocol.
In a way, the redeem script is like the digital vault owner's manual: without it, the key holders would be unable to open the vault with their keys.
With the Bitcoin network acting as a distributed timestamp server on a peer-to-peer basis, a Bitcoin script can set time conditions for opening a vault.
Hence, a P2SH address can be thought of as a digital vault connected to a tamper-proof clock.
This application allows users to create transactions using the Bitcoin scripting language.
Please note that the application does NOT store any private key or secret,
only public key(s), expiry date(s) and hash(es) required by the script.
Make sure to backup and store your private keys and/or secrets securely before funding your P2SH address.
Do not use this application to move large sums of money: this is only a demo tutorial, not a commercial site!
Need help? Contact me at pierre dot noizat at paymium dot com
Need bitcoins ? Sign up at paymium.com !
If the application doesn't work as expected, please report an issue.
and include the diagnostics.
This application was developped using the following free software:
* Ruby 2.4.2
* Rails 5.1.1
* btcruby, the awesome Bitcoin ruby library developped by Oleg Andreev and Ryan Smith.
* bitcoin-ruby, the equally awesome Bitcoin ruby library written and maintained by Julian Langschaedel. Special thanks to Shigeyuki Azuchi for his remarkable work on Segwit.
Getting Started with Bitcoin Scripts
To create a new script, select one amongst the available scripts and give it a name.
Once your script is created, fill in the required parameters, typically one or more public keys and date/time values.
Once this first step is completed, the application will display the corresponding P2SH address.
If the P2SH address is funded, the application will allow you to sign a transaction spending the funds to another address supplied by you.
The coins can be spent by supplying the required private keys (both WIF compressed and uncompressed formats are accepted). Then you can broadcast the spending transaction to the Bitcoin network.
Depending on the set time conditions, the network will either reject the signed spending transaction as non-final or confirm it.
If the time conditions are not met, the network nodes will return an error message like "Locktime requirement not satisfied".
If you enter the wrong private key in the transaction signing form, your signed transaction can be broadcast but you are likely to get an error message from the network like "Script evaluated without error but finished with a false/empty top stack element".
More scripts will be added over time after being carefully tested.
To suggest a new script, drop me a note via email at pierre dot noizat at paymium dot com.
© Pierre Noizat - 2015-2017 Source code soon to be released under the MIT license