Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - Utrum/python-OP_RETURN: Simple Python commands and library for using bitcoin OP_RETURNs · GitHub
Skip to content

Repository files navigation

python-OP_RETURN v2
===================
Simple Python commands and libraries for using OP_RETURNs in bitcoin transactions.
Copyright (c) Coin Sciences Ltd - http://coinsecrets.org/
MIT License (see headers in files)
REQUIREMENTS
------------
* Python 2.5 or later (including Python 3)
* Bitcoin Core 0.9 or later
BEFORE YOU START
----------------
Check the constant settings at the top of OP_RETURN.py.
If you just installed Bitcoin Core, wait for it to download and verify old blocks.
If using as a library, add 'from OP_RETURN import *' in your Python script file.
TO SEND A BITCOIN TRANSACTION WITH SOME OP_RETURN METADATA
----------------------------------------------------------
On the command line:
* python send-OP_RETURN.py <send-address> <send-amount> <metadata> <testnet (optional)>
<send-address> is the bitcoin address of the recipient
<send-amount> is the amount to send (in units of BTC)
<metadata> is a hex string or raw string containing the OP_RETURN metadata
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or the txid if sending was successful
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transaction.
* Examples:
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 'Hello, blockchain!'
python send-OP_RETURN.py 149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS 0.001 48656c6c6f2c20626c6f636b636861696e21
python send-OP_RETURN.py mzEJxCrdva57shpv62udriBBgMECmaPce4 0.001 'Hello, testnet!' 1
As a library:
* OP_RETURN_send(send_address, send_amount, metadata, testnet=False)
send_address is the bitcoin address of the recipient
send_amount is the amount to send (in units of BTC)
metadata is a string of raw bytes containing the OP_RETURN metadata
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txid': '<sent txid>'}
* Examples
OP_RETURN_send('149wHUMa41Xm2jnZtqgRx94uGbZD9kPXnS', 0.001, 'Hello, blockchain!')
OP_RETURN_send('mzEJxCrdva57shpv62udriBBgMECmaPce4', 0.001, 'Hello, testnet!', True)
TO STORE SOME DATA IN THE BLOCKCHAIN USING OP_RETURNs
-----------------------------------------------------
On the command line:
* python store-OP_RETURN.py <data> <testnet (optional)>
<data> is a hex string or raw string containing the data to be stored
(auto-detection: treated as a hex string if it is a valid one)
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the txids that were used to store
the data and a short reference that can be used to retrieve it using this library.
* Wait a few seconds then check http://coinsecrets.org/ for your OP_RETURN transactions.
* Examples:
python store-OP_RETURN.py 'This example stores 47 bytes in the blockchain.'
python store-OP_RETURN.py 'This example stores 44 bytes in the testnet.' 1
As a library:
* OP_RETURN_store(data, testnet=False)
data is the string of raw bytes to be stored
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'txids': ['<1st txid>', '<2nd txid>', ...],
'ref': '<ref for retrieving data>'}
* Examples:
OP_RETURN_store('This example stores 47 bytes in the blockchain.')
OP_RETURN_store('This example stores 44 bytes in the testnet.', True)
TO RETRIEVE SOME DATA FROM OP_RETURNs IN THE BLOCKCHAIN
-------------------------------------------------------
On the command line:
* python retrieve-OP_RETURN.py <ref> <testnet (optional)>
<ref> is the reference that was returned by a previous storage operation
<testnet> should be 1 to use the bitcoin testnet, otherwise it can be omitted
* Outputs an error if one occurred or if successful, the retrieved data in hexadecimal
and ASCII format, a list of the txids used to store the data, a list of the blocks in
which the data is stored, and (if available) the best ref for retrieving the data
quickly in future. This may or may not be different from the ref you provided.
* Examples:
python retrieve-OP_RETURN.py 356115-052075
python retrieve-OP_RETURN.py 396381-059737 1
As a library:
* OP_RETURN_retrieve(ref, max_results=1, testnet=False)
ref is the reference that was returned by a previous storage operation
max_results is the maximum number of results to retrieve (in general, omit for 1)
testnet is whether to use the bitcoin testnet network (False if omitted)
* Returns: {'error': '<some error string>'}
or: {'data': '<raw binary data>',
'txids': ['<1st txid>', '<2nd txid>', ...],
'heights': [<block 1 used>, <block 2 used>, ...],
'ref': '<best ref for retrieving data>',
'error': '<error if data only partially retrieved>'}
A value of 0 in the 'heights' array means some data is still in the mempool. The 'ref' and 'error' elements are only present if appropriate.
* Examples:
OP_RETURN_retrieve('356115-052075')
OP_RETURN_retrieve('396381-059737', 1, True)
VERSION HISTORY
---------------
v2.0.2 - 30 June 2015
* First port of php-OP_RETURN to Python

About

Simple Python commands and library for using bitcoin OP_RETURNs

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages