monero-python is a Python wrapper around the Monero RPC API.
It allows receiving and sending Monero using a Python API.
Copyright 2014, 2015 moneromooo. Licensed as BSD.
Git tree: http://duckpool.mooo.com/python-monero
Requirements:
- Monero
- Python 2.x
- Redis
The API consists of a single class, Monero, with a number of methods.
Calling raw module functions is undocumented and subject to change.
* Initialization:
monero=Monero(daemon_host,daemon_port,wallet_host,wallet_port,redis_host,redis_port,site_salt)
Site salt is a string that's specific to your particular use.
It should be random but constant. Its intent is to cause the
same recipient identifier to map to different payment IDs for
two different users of monero-python. It is recommended to
hard code some random string in the call.
* Checking the current balance:
full_balance,unlocked_balance = monero.GetWalletBalance()
The full balance is the total amount (in atomic units, of which a
monero contains 1e12, or 1000000000000) in the wallet. The unlocked
balance is the portion of it that may be used now. Part of the
balance may be locked if it was just mined or received (including
as part of change to an outgoing transaction). Those locked funds
will become unlocked as new blocks are found by the network.
* Create a new payment ID for a recipient:
payment_id=monero.GetPaymentID(recipient,deterministic=True)
recipient is a string representing a user, destination, etc. The
semantics of it are left to the API user. Numbers can be used if
they're passed as strings. CheckForDeposits and other such functions
will return that recipient when the associated payment ID is found
in a transaction.
Payment IDs can be deterministic (so asking for a payment ID for a
given recipient will always yield the same payment ID) or not (so
multiple calls to GetPaymentID will yield different Payment IDs).
* Get the recipient corresponding to a payment ID:
recipient=monero.GetRecipient(payment_id)
Returns the recipient associated with the given payment ID, or None
if there is none. If there is one, it is the string that was passed
to a previous call to GetPaymentID which returned this payment ID.
* Check for new deposits:
payments=monero.CheckForDeposits()
payments will be either None, in case of an error, or an array
containing payment information. This array may be empty if no new
transactions were found. Deposits are checked for all payment IDs
that were created with GetPaymentID.
Each member of the array has the following fields:
tx_hash (string): the transaction hash for that transaction
amount (long): the amount of atomic units received
confirmed (boolean): whether that transaction has enough confirmations
confirmations (int): number of blocks received on top of the block with this transaction
payment_id (string): the payment id associated with that transaction, None if none
recipient (string): the recipient corresponding to that payment id, or None
* Get full transaction history:
payments=monero.GetDepositHistory(paymentid=[])
Returns the same data format as CheckForDeposits, but for all time,
rather that just new ones. This retrieves all deposits matching the
given filters.
A payment ID of None will return history for all the payment IDs created
by GetPaymentID. [] will return all history, regardless of payment ID.
A payment ID string will return history for this particular payment ID.
A list of payment IDs will return history for all these payment IDs.
Since a list is returned, it is easy to perform extra steps with the list,
such as accumulating amounts, eg:
total = sum(tx['amount'] for tx in payments)
* Send monero to an address:
tx_hash=monero.Send(address,amount,paymentid=None,mixin=None)
Sends some monero to the address. The amount is in atomic units.
The payment ID and mixin are optional. It is recommended to use
a mixin equal to 3 or higher. The network will take a fee for this
transaction, so you will be unable to send the full balance. At
the time of writing, the network fee is 0.01 monero per kilobyte.
* Send monero to several addresses at once:
tx_hash=monero.SendMany(address,amount,paymentid=None,mixin=None)
Sends some monero to a number of addresses. The recipient parameter
is a dict containing the amounts (in atomic units) as a value of
the address in the key (ie, {'4....': 823900000000}).
Other comments from Send also apply.