How can I use Monero RPC via Python
As documented in
https://ww.getmonero.org/resources/developer-guides/daemon-rpc.html
and
https://ww.getmonero.org/resources/developer-guides/wallet-rpc.html,
Monero can be used programmatically using daemon and wallet RPC.
If I wanted to use Python to extract data from the blockchain, for example nonce values over a block range to run statistics on, what is the best way to do it ?
blockchain rpc python
add a comment |
As documented in
https://ww.getmonero.org/resources/developer-guides/daemon-rpc.html
and
https://ww.getmonero.org/resources/developer-guides/wallet-rpc.html,
Monero can be used programmatically using daemon and wallet RPC.
If I wanted to use Python to extract data from the blockchain, for example nonce values over a block range to run statistics on, what is the best way to do it ?
blockchain rpc python
add a comment |
As documented in
https://ww.getmonero.org/resources/developer-guides/daemon-rpc.html
and
https://ww.getmonero.org/resources/developer-guides/wallet-rpc.html,
Monero can be used programmatically using daemon and wallet RPC.
If I wanted to use Python to extract data from the blockchain, for example nonce values over a block range to run statistics on, what is the best way to do it ?
blockchain rpc python
As documented in
https://ww.getmonero.org/resources/developer-guides/daemon-rpc.html
and
https://ww.getmonero.org/resources/developer-guides/wallet-rpc.html,
Monero can be used programmatically using daemon and wallet RPC.
If I wanted to use Python to extract data from the blockchain, for example nonce values over a block range to run statistics on, what is the best way to do it ?
blockchain rpc python
blockchain rpc python
asked 1 hour ago
user36303user36303
31.7k246108
31.7k246108
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The Monero team recently added a tool that makes it easy to integrate Monero RPC with Python. It can connect to running daemon and wallet and exposes their RPC interfaces:
The following command will connect to a monerod running on mainnet on default settings:
utils/python-rpc/console 18081
You'll get this output:
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
>>>
You're now in a python interpreter, and the daemon
variable is set to an object which can call daemon RPC directly, eg:
>>> daemon.get_version()
{u'status': u'OK', u'untrusted': False, u'version': 131078}
>>>
For the use case above (retrieving 21 nonce values from the blockchain from height 1000):
>>> [x.nonce for x in daemon.getblockheadersrange(1000, 1020).headers]
[3419004817, 3320605335, 295465941, 3696734864, 2221411748, 2201153093, 148086550, 524920481, 1766174771, 1831485859, 2409397405, 804573540, 535538542, 1487558207, 3340140970, 4029873826, 3890252333, 586366003, 1681558754, 1323530723, 240084243]
>>>
You can also connect the console to several processes, daemon and wallet, so you can interact with both from the same interpreter. The console will detect whether it's connecting to a node or a wallet, and will create the RPC proxy objects as daemon
or wallet
accordingly. If you connect to more than one demon or more than one wallet, the RPC objects will be daemons
and/or wallets
arrays instead of single variables. For instance, if you have a wallet running on port 8080:
$ utils/python-rpc/console 18081 8080
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
Variable 'wallet' connected to wallet RPC on 127.0.0.1:8080
>>>
The console tool accepts full URLs if the daemon/wallet does not run on 127.0.0.1.
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "656"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmonero.stackexchange.com%2fquestions%2f11171%2fhow-can-i-use-monero-rpc-via-python%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The Monero team recently added a tool that makes it easy to integrate Monero RPC with Python. It can connect to running daemon and wallet and exposes their RPC interfaces:
The following command will connect to a monerod running on mainnet on default settings:
utils/python-rpc/console 18081
You'll get this output:
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
>>>
You're now in a python interpreter, and the daemon
variable is set to an object which can call daemon RPC directly, eg:
>>> daemon.get_version()
{u'status': u'OK', u'untrusted': False, u'version': 131078}
>>>
For the use case above (retrieving 21 nonce values from the blockchain from height 1000):
>>> [x.nonce for x in daemon.getblockheadersrange(1000, 1020).headers]
[3419004817, 3320605335, 295465941, 3696734864, 2221411748, 2201153093, 148086550, 524920481, 1766174771, 1831485859, 2409397405, 804573540, 535538542, 1487558207, 3340140970, 4029873826, 3890252333, 586366003, 1681558754, 1323530723, 240084243]
>>>
You can also connect the console to several processes, daemon and wallet, so you can interact with both from the same interpreter. The console will detect whether it's connecting to a node or a wallet, and will create the RPC proxy objects as daemon
or wallet
accordingly. If you connect to more than one demon or more than one wallet, the RPC objects will be daemons
and/or wallets
arrays instead of single variables. For instance, if you have a wallet running on port 8080:
$ utils/python-rpc/console 18081 8080
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
Variable 'wallet' connected to wallet RPC on 127.0.0.1:8080
>>>
The console tool accepts full URLs if the daemon/wallet does not run on 127.0.0.1.
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
add a comment |
The Monero team recently added a tool that makes it easy to integrate Monero RPC with Python. It can connect to running daemon and wallet and exposes their RPC interfaces:
The following command will connect to a monerod running on mainnet on default settings:
utils/python-rpc/console 18081
You'll get this output:
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
>>>
You're now in a python interpreter, and the daemon
variable is set to an object which can call daemon RPC directly, eg:
>>> daemon.get_version()
{u'status': u'OK', u'untrusted': False, u'version': 131078}
>>>
For the use case above (retrieving 21 nonce values from the blockchain from height 1000):
>>> [x.nonce for x in daemon.getblockheadersrange(1000, 1020).headers]
[3419004817, 3320605335, 295465941, 3696734864, 2221411748, 2201153093, 148086550, 524920481, 1766174771, 1831485859, 2409397405, 804573540, 535538542, 1487558207, 3340140970, 4029873826, 3890252333, 586366003, 1681558754, 1323530723, 240084243]
>>>
You can also connect the console to several processes, daemon and wallet, so you can interact with both from the same interpreter. The console will detect whether it's connecting to a node or a wallet, and will create the RPC proxy objects as daemon
or wallet
accordingly. If you connect to more than one demon or more than one wallet, the RPC objects will be daemons
and/or wallets
arrays instead of single variables. For instance, if you have a wallet running on port 8080:
$ utils/python-rpc/console 18081 8080
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
Variable 'wallet' connected to wallet RPC on 127.0.0.1:8080
>>>
The console tool accepts full URLs if the daemon/wallet does not run on 127.0.0.1.
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
add a comment |
The Monero team recently added a tool that makes it easy to integrate Monero RPC with Python. It can connect to running daemon and wallet and exposes their RPC interfaces:
The following command will connect to a monerod running on mainnet on default settings:
utils/python-rpc/console 18081
You'll get this output:
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
>>>
You're now in a python interpreter, and the daemon
variable is set to an object which can call daemon RPC directly, eg:
>>> daemon.get_version()
{u'status': u'OK', u'untrusted': False, u'version': 131078}
>>>
For the use case above (retrieving 21 nonce values from the blockchain from height 1000):
>>> [x.nonce for x in daemon.getblockheadersrange(1000, 1020).headers]
[3419004817, 3320605335, 295465941, 3696734864, 2221411748, 2201153093, 148086550, 524920481, 1766174771, 1831485859, 2409397405, 804573540, 535538542, 1487558207, 3340140970, 4029873826, 3890252333, 586366003, 1681558754, 1323530723, 240084243]
>>>
You can also connect the console to several processes, daemon and wallet, so you can interact with both from the same interpreter. The console will detect whether it's connecting to a node or a wallet, and will create the RPC proxy objects as daemon
or wallet
accordingly. If you connect to more than one demon or more than one wallet, the RPC objects will be daemons
and/or wallets
arrays instead of single variables. For instance, if you have a wallet running on port 8080:
$ utils/python-rpc/console 18081 8080
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
Variable 'wallet' connected to wallet RPC on 127.0.0.1:8080
>>>
The console tool accepts full URLs if the daemon/wallet does not run on 127.0.0.1.
The Monero team recently added a tool that makes it easy to integrate Monero RPC with Python. It can connect to running daemon and wallet and exposes their RPC interfaces:
The following command will connect to a monerod running on mainnet on default settings:
utils/python-rpc/console 18081
You'll get this output:
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
>>>
You're now in a python interpreter, and the daemon
variable is set to an object which can call daemon RPC directly, eg:
>>> daemon.get_version()
{u'status': u'OK', u'untrusted': False, u'version': 131078}
>>>
For the use case above (retrieving 21 nonce values from the blockchain from height 1000):
>>> [x.nonce for x in daemon.getblockheadersrange(1000, 1020).headers]
[3419004817, 3320605335, 295465941, 3696734864, 2221411748, 2201153093, 148086550, 524920481, 1766174771, 1831485859, 2409397405, 804573540, 535538542, 1487558207, 3340140970, 4029873826, 3890252333, 586366003, 1681558754, 1323530723, 240084243]
>>>
You can also connect the console to several processes, daemon and wallet, so you can interact with both from the same interpreter. The console will detect whether it's connecting to a node or a wallet, and will create the RPC proxy objects as daemon
or wallet
accordingly. If you connect to more than one demon or more than one wallet, the RPC objects will be daemons
and/or wallets
arrays instead of single variables. For instance, if you have a wallet running on port 8080:
$ utils/python-rpc/console 18081 8080
Variable 'daemon' connected to daemon RPC on 127.0.0.1:18081
Variable 'wallet' connected to wallet RPC on 127.0.0.1:8080
>>>
The console tool accepts full URLs if the daemon/wallet does not run on 127.0.0.1.
answered 59 mins ago
user36303user36303
31.7k246108
31.7k246108
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
add a comment |
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
The answer shows using the new console tool, but doesn't show how to mix with other python code. Perhaps also reference: moneroexamples.github.io/python-json-rpc which shows calling the RPC interfaces directly from standalone python scripts.
– jtgrassie
38 mins ago
add a comment |
Thanks for contributing an answer to Monero Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmonero.stackexchange.com%2fquestions%2f11171%2fhow-can-i-use-monero-rpc-via-python%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown