There is a tradition in Monero that when you want to come up with a public key for which there is no known private key, you calculate that public key as H = hash_to_point(G), which in hex is 8b655970153799af2aeadc9ff1add0ea6c7251d54154cfa92c173a0dd39c1f94.
Therefore providing proof of payment to any wallet with H as the public spend key would be proof of ...
You should use --generate-from-json for this.
The input fields in the JSON file are:
version: integer, should be 1
filename: string, path/filename for the newly created wallet
scan_from_height: 64 bit unsigned integer, optional
password: string, optional
viewkey: string, hex representation
spendkey: string, hex ...
Bitcoin's HD (hierarchical deterministic) wallets use subsequent addresses derived from your private key / seed to send your change to and improve privacy a bit. You can still follow the funds and determine eg. from spending patterns or known destinations what actually was the spending amount(s) and what the change.
Monero's design focussed on mandatory ...
I made an offline command-line tool, subaddress-derive-xmr, that derives any number of subaddresses from mnemonic, seed, or priv-view-key + pub-spend-key.
Usage would look like:
$ ./subaddress-derive-xmr --seed="66dcbb7490ee34dad1b04fa316b90ba1795ce70586298e2cc09455de1ae95273" -g --numderive=3
Is there a way to pre-generate 1000 subaddresses from your monero private key?
Generating subaddresses from a private view key explained in this answer and on the monerodocs site here.
And then say I sent some xmr to the 979th subaddress, would the wallet see it or do I need to do something first?
The default wallet lookahead indices are set to 50:200 (...
You just run commands like monerod status which connects to the detached process and runs the command (status in this example).
You can also use the daemons RPC get_info.
But, how can I check the detached daemon status without a wallet?
A node does not have a wallet attached to it.
Yes, as we have done before for the other forks, you'll need to update daemon, wallet, and miner.
As you can see here, the upcoming fork will bring to Monero a new PoW algorithm: the CNv4, Cryptonight variant 4 aka CryptonightR.
The full math you have to do is:
D = P - Hs(8aR || i)G, where i is a varint representing the index of the output. You then check whether D matches your main public spend key or any of your subaddress public spend keys. if it does, the output is destined for you.
The output public key P is in the json as vout.target.key. The transaction public key R is not ...
First off, the node does not do anything about addresses, the wallet does. The node never gets your secret keys.
Next, the Monero wallet will always cache/calculate the next 200 addresses for the next 50 accounts. Every time you receive monero in one of these, the Monero wallet will cache/calculate more of these to always keep a buffer of 200/50 beyond the "...
In bash, just:
monero-wallet-cli --create-address-file --password password123 --mnemonic-language English --generate-new-wallet ./new.wallet
You can enumerate new.wallet with a variable. Just wait a few seconds and (p)kill the client before moving on to next.
You have a couple of options.
One option is to have a running wallet RPC: monero-wallet-rpc --wallet-dir . --rpc-bind-port 18085 --disable-rpc-login
Which you can then call its create_wallet method like:
curl -X POST http://localhost:18085/json_rpc -d \
What is the difference between simplewallet, wallet and wallet2?
simplewallet.[cpp|h] is the source code for the command-line wallet monero-wallet-cli.
wallet2.[cpp|h] is the source code for the core wallet functionality. simplewallet therefore makes heavy use of this.
There seems to be 3 variations of wallets in the Monero code.
No, there are only two ...
As an alternative to user36303's answer, you can also just supply the additional required parameters when calling with --generate-from-spend-key to prevent any prompting. E.g.
monero-wallet-cli --generate-from-spend-key "xxxxxx" \
--wallet-file xzy --password xyz \
--mnemonic-language English --restore-height 123456
(and any others I may have missed)
It should be fine, unless the programs stay stopped for a long time, in which cases timeouts may occur. If you're local, timeouts with a single client is more than 3 minutes IIRC, so it should be just fine. I've done this a few times before with a loop and kill pidof monerod and there was no problem.
You have given a login for the daemon, but no password. monero-wallet-rpc is an unattended program, so does not prompt. You need to pass the password after the login, with a separating colon, like this:
Arguably, there should be a --prompt-for-daemon-password option, which would override the unattended part.
Each Monero transaction contains multiple inputs/outputs. It is not expected that you own all of the outputs of the transaction; only those destined for you.
The utility you used is reporting:
This address owns output 1 with pubkey: 238a...48ce for amount: 0.297602
Which indicates that your address did, in fact, receive 0.297602 XMR.
Last I was aware, Poloniex issues users with a Monero integrated address, which embeds a payment ID in the address. You can easily verify this by the address length - integrated addresses are 106 hex digits long.
As the Monero community has already signalled that payment IDs are being deprecated, subaddresses should be used instead moving forwards.
The wallet RPC and daemon RPC are different. Refer to the projects documentation on how to run both wallet and daemon RPCs.
The node you reference at node.xmr.to is a daemon RPC, not a wallet RPC, therefore you cannot use it for any of the wallet commands, only daemon commands.
To use a wallet RPC (like you are trying to do from php), you have to run ...
For compiling, the dependencies are all listed in the project's README file. When built as static binaries though (the way the releases are built), there are no runtime dependencies, but if you compiled as dynamic, the libraries listed as dependencies are then required to be installed on the target system.
For any Android/iOS wallets, you will need to ...