API Documentation¶
Classes¶
Address¶
-
class
stellar_base.address.
Address
(address=None, secret=None, network='TESTNET', horizon_uri=None)[source]¶ The
Address
object, which represents an address (public key) on Stellar’s network.An
Address
is initialized via a public key string, or derived via a secret seed. The network on which the account exists is also specified, as it is used to verify and set attributes via connecting to Horizon. It mostly exists as a helper class for Horizon operations on a given account ID.Parameters: - address (str) – The address string that represents this
Address
. - secret (str) – The secret seed string that is used to derive the
address for this
Address
. - network (str) – The network to connect to for verifying and retrieving additional attributes from. ‘PUBLIC’ is an alias for ‘Public Global Stellar Network ; September 2015’, ‘TESTNET’ is an alias for ‘Test SDF Network ; September 2015’. Defaults to TESTNET.
- horizon_uri (str) – The horizon url to use for connecting to for additional information for the account to which this address corresponds to.
-
effects
(cursor=None, order='asc', limit=10, sse=False)[source]¶ Retrieve the effects JSON from this instance’s Horizon server.
Retrieve the effects JSON response for the account associated with this
Address
.Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use the SSE client for connecting to Horizon.
-
get
()[source]¶ Retrieve the account data that corresponds to this
Address
.Retrieve the account data from Horizon for the account that corresponds to this
Address
. Attempt to retrieve the following attributes from Horizon:- ID
- Paging Token
- Account ID
- Sequence Number
- Subentry Count
- Inflation Destination
- Home Domain
- Last Modified Ledger
- Thresholds
- Flags
- Balances
- Signers
- Data
-
offers
(cursor=None, order='asc', limit=10, sse=False)[source]¶ Retrieve the offers JSON from this instance’s Horizon server.
Retrieve the offers JSON response for the account associated with this
Address
.Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
-
operations
(cursor=None, order='asc', limit=10, sse=False)[source]¶ Retrieve the operations JSON from this instance’s Horizon server.
Retrieve the operations JSON response for the account associated with this
Address
.Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use the SSE client for connecting to Horizon.
-
payments
(cursor=None, order='asc', limit=10, sse=False)[source]¶ Retrieve the payments JSON from this instance’s Horizon server.
Retrieve the payments JSON response for the account associated with this
Address
.Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
-
trades
(cursor=None, order='asc', limit=10, sse=False)[source]¶ Retrieve the trades JSON from this instance’s Horizon server.
Retrieve the trades JSON response for the account associated with this
Address
.Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use the SSE client for connecting to Horizon.
-
transactions
(cursor=None, order='asc', limit=10, sse=False)[source]¶ Retrieve the transactions JSON from this instance’s Horizon server.
Retrieve the transactions JSON response for the account associated with this
Address
.Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
- address (str) – The address string that represents this
Asset¶
-
class
stellar_base.asset.
Asset
(code, issuer=None)[source]¶ The
Asset
object, which represents an asset and its corresponding issuer on the Stellar network.For more information about the formats used for asset codes and how issuers work on Stellar’s network, see Stellar’s guide on assets.
Parameters: - code (str) – The asset code, in the formats specified in Stellar’s guide on assets.
- issuer (str, None) – The strkey encoded issuer of the asset. Note if the currency is the native currency (XLM (Lumens)), no issuer is necessary.
-
classmethod
from_xdr
(xdr)[source]¶ Create an
Asset
object from its base64 encoded XDR representation.Parameters: xdr (bytes) – The base64 encoded XDR Asset object. Returns: A new Asset
object from its encoded XDR representation.
-
classmethod
from_xdr_object
(asset_xdr_object)[source]¶ Create a
Asset
from an XDR Asset object.Parameters: asset_xdr_object – The XDR Asset object. Returns: A new Asset
object from the given XDR Asset object.
-
is_native
()[source]¶ Return true if the
Asset
is the native asset.Returns: True if the Asset is native, False otherwise.
-
static
native
()[source]¶ Create a
Asset
with the native currency.Currently, the native currency is Stellar Lumens (XLM)
Returns: A new Asset
representing the native currency on the Stellar network.
Builder¶
-
class
stellar_base.builder.
Builder
(secret=None, address=None, horizon_uri=None, network=None, sequence=None, fee=None)[source]¶ The
Builder
object, which uses the builder pattern to create a list of operations in aTransaction
, ultimately to be submitted as aTransactionEnvelope
to the network via Horizon (seeHorizon
).Parameters: - secret (str) – The base32 secret seed for the source address.
- address (str) – The base32 source address.
- horizon_uri (str) – The horizon instance to use for submitting the created transaction.
- network (str) – The network to connect to for verifying and retrieving additional attributes from. ‘PUBLIC’ is an alias for ‘Public Global Stellar Network ; September 2015’, ‘TESTNET’ is an alias for ‘Test SDF Network ; September 2015’. Defaults to TESTNET.
- sequence (int, str) – The sequence number to use for submitting this transaction with (must be the current sequence number of the source account)
- fee (int) – Base fee in stroops. The network base fee is obtained by default from the latest ledger. Transaction fee is equal to base fee times number of operations in this transaction.
-
add_hash_memo
(memo_hash)[source]¶ Set the memo for the transaction to a new
HashMemo
.Parameters: memo_hash (bytes, str) – A 32 byte hash or hex encoded string to use as the memo. Returns: This builder instance.
-
add_id_memo
(memo_id)[source]¶ Set the memo for the transaction to a new
IdMemo
.Parameters: memo_id (int) – A 64 bit unsigned integer to set as the memo. Returns: This builder instance.
-
add_memo
(memo)[source]¶ Set the memo for the transaction build by this
Builder
.Parameters: memo ( Memo
) – A memo to add to this transaction.Returns: This builder instance.
-
add_ret_hash_memo
(memo_return)[source]¶ Set the memo for the transaction to a new
RetHashMemo
.Parameters: memo_return (bytes, str) – A 32 byte hash or hex encoded string intended to be interpreted as the hash of the transaction the sender is refunding. Returns: This builder instance.
-
add_text_memo
(memo_text)[source]¶ Set the memo for the transaction to a new
TextMemo
.Parameters: memo_text (str, bytes) – The text for the memo to add. Returns: This builder instance.
-
add_time_bounds
(time_bounds)[source]¶ Add a time bound to this transaction.
Add a UNIX timestamp, determined by ledger time, of a lower and upper bound of when this transaction will be valid. If a transaction is submitted too early or too late, it will fail to make it into the transaction set. maxTime equal 0 means that it’s not set.
Parameters: time_bounds (dict) – A dict that contains a minTime and maxTime attribute ({‘minTime’: 1534392138, ‘maxTime’: 1534392238}) representing the lower and upper bound of when a given transaction will be valid. Returns: This builder instance.
-
append_account_merge_op
(destination, source=None)[source]¶ Append a
AccountMerge
operation to the list of operations.Parameters: Returns: This builder instance.
-
append_allow_trust_op
(trustor, asset_code, authorize, source=None)[source]¶ Append an
AllowTrust
operation to the list of operations.Parameters: - trustor (str) – The account of the recipient of the trustline.
- asset_code (str) – The asset of the trustline the source account is authorizing. For example, if an anchor wants to allow another account to hold its USD credit, the type is USD:anchor.
- authorize (bool) – Flag indicating whether the trustline is authorized.
- source (str) – The source address that is establishing the trust in the allow trust operation.
Returns: This builder instance.
-
append_bump_sequence_op
(bump_to, source=None)[source]¶ Append a
BumpSequence
operation to the list of operations.Only available in protocol version 10 and above
Parameters: Returns: This builder instance.
-
append_change_trust_op
(asset_code, asset_issuer, limit=None, source=None)[source]¶ Append a
ChangeTrust
operation to the list of operations.Parameters: Returns: This builder instance.
-
append_create_account_op
(destination, starting_balance, source=None)[source]¶ Append a
CreateAccount
operation to the list of operations.Parameters: Returns: This builder instance.
-
append_create_passive_offer_op
(selling_code, selling_issuer, buying_code, buying_issuer, amount, price, source=None)[source]¶ Append a
CreatePassiveOffer
operation to the list of operations.Parameters: - selling_code (str) – The asset code for the asset the offer creator is selling.
- selling_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- buying_code (str) – The asset code for the asset the offer creator is buying.
- buying_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- amount (str) – Amount of the asset being sold. Set to 0 if you want to delete an existing offer.
- price (str, dict) – Price of 1 unit of selling in terms of buying. You can pass in a number as a string or a dict like {n: numerator, d: denominator}
- source (str) – The source address that is creating a passive offer on Stellar’s distributed exchange.
Returns: This builder instance.
-
append_create_passive_sell_offer_op
(selling_code, selling_issuer, buying_code, buying_issuer, amount, price, source=None)[source]¶ Append a
CreatePassiveSellOffer
operation to the list of operations.Parameters: - selling_code (str) – The asset code for the asset the offer creator is selling.
- selling_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- buying_code (str) – The asset code for the asset the offer creator is buying.
- buying_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- amount (str) – Amount of the asset being sold. Set to 0 if you want to delete an existing offer.
- price (str, dict) – Price of 1 unit of selling in terms of buying. You can pass in a number as a string or a dict like {n: numerator, d: denominator}
- source (str) – The source address that is creating a passive offer on Stellar’s distributed exchange.
Returns: This builder instance.
-
append_hashx_signer
(hashx, signer_weight, source=None)[source]¶ Add a HashX signer to an account.
Add a HashX signer to an account via a
SetOptions <stellar_base.operation.SetOptions
operation. This is a helper function forappend_set_options_op()
.Parameters: Returns: This builder instance.
-
append_inflation_op
(source=None)[source]¶ Append a
Inflation
operation to the list of operations.Parameters: source (str) – The source address that is running the inflation operation. Returns: This builder instance.
-
append_manage_buy_offer_op
(selling_code, selling_issuer, buying_code, buying_issuer, amount, price, offer_id=0, source=None)[source]¶ Append a
ManageBuyOffer
operation to the list of operations.Parameters: - selling_code (str) – The asset code for the asset the offer creator is selling.
- selling_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- buying_code (str) – The asset code for the asset the offer creator is buying.
- buying_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- amount (str) – Amount being bought. if set to. Set to 0 if you want to delete an existing offer.
- price (str, dict) – Price of thing being bought in terms of what you are selling. You can pass in a number as a string or a dict like {n: numerator, d: denominator}
- offer_id (int) – The ID of the offer. 0 for new offer. Set to existing offer ID to update or delete.
- source (str) – The source address that is managing an offer on Stellar’s distributed exchange.
Returns: This builder instance.
-
append_manage_data_op
(data_name, data_value, source=None)[source]¶ Append a
ManageData
operation to the list of operations.Parameters: - data_name (str) – String up to 64 bytes long. If this is a new Name it will add the given name/value pair to the account. If this Name is already present then the associated value will be modified.
- data_value (str, bytes, None) – If not present then the existing Name will be deleted. If present then this value will be set in the DataEntry. Up to 64 bytes long.
- source (str) – The source account on which data is being managed. operation.
Returns: This builder instance.
-
append_manage_offer_op
(selling_code, selling_issuer, buying_code, buying_issuer, amount, price, offer_id=0, source=None)[source]¶ Append a
ManageOffer
operation to the list of operations.Parameters: - selling_code (str) – The asset code for the asset the offer creator is selling.
- selling_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- buying_code (str) – The asset code for the asset the offer creator is buying.
- buying_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- amount (str) – Amount of the asset being sold. Set to 0 if you want to delete an existing offer.
- price (str, dict) – Price of 1 unit of selling in terms of buying. You can pass in a number as a string or a dict like {n: numerator, d: denominator}
- offer_id (int) – The ID of the offer. 0 for new offer. Set to existing offer ID to update or delete.
- source (str) – The source address that is managing an offer on Stellar’s distributed exchange.
Returns: This builder instance.
-
append_manage_sell_offer_op
(selling_code, selling_issuer, buying_code, buying_issuer, amount, price, offer_id=0, source=None)[source]¶ Append a
ManageSellOffer
operation to the list of operations.Parameters: - selling_code (str) – The asset code for the asset the offer creator is selling.
- selling_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- buying_code (str) – The asset code for the asset the offer creator is buying.
- buying_issuer (str, None) – The issuing address for the asset the offer creator is selling.
- amount (str) – Amount of the asset being sold. Set to 0 if you want to delete an existing offer.
- price (str, dict) – Price of 1 unit of selling in terms of buying. You can pass in a number as a string or a dict like {n: numerator, d: denominator}
- offer_id (int) – The ID of the offer. 0 for new offer. Set to existing offer ID to update or delete.
- source (str) – The source address that is managing an offer on Stellar’s distributed exchange.
Returns: This builder instance.
-
append_op
(operation)[source]¶ Append an
Operation
to the list of operations.Add the operation specified if it doesn’t already exist in the list of operations of this
Builder
instance.Parameters: operation ( Operation
) – The operation to append to the list of operations.Returns: This builder instance.
-
append_path_payment_op
(destination, send_code, send_issuer, send_max, dest_code, dest_issuer, dest_amount, path, source=None)[source]¶ Append a
PathPaymentStrictReceive
operation to the list of operations.Parameters: - destination (str) – The destination address (Account ID) for the payment.
- send_code (str) – The asset code for the source asset deducted from the source account.
- send_issuer (str, None) – The address of the issuer of the source asset.
- send_max (str) – The maximum amount of send asset to deduct (excluding fees).
- dest_code (str) – The asset code for the final destination asset sent to the recipient.
- dest_issuer (str, None) – Account address that receives the payment.
- dest_amount (str) – The amount of destination asset the destination account receives.
- path (list) – A list of asset tuples, each tuple containing a (asset_code, asset_issuer) for each asset in the path. For the native asset, None is used for the asset_issuer.
- source (str) – The source address of the path payment.
Returns: This builder instance.
-
append_path_payment_strict_receive_op
(destination, send_code, send_issuer, send_max, dest_code, dest_issuer, dest_amount, path, source=None)[source]¶ Append a
PathPaymentStrictReceive
operation to the list of operations.Parameters: - destination (str) – The destination address (Account ID) for the payment.
- send_code (str) – The asset code for the source asset deducted from the source account.
- send_issuer (str, None) – The address of the issuer of the source asset.
- send_max (str) – The maximum amount of send asset to deduct (excluding fees).
- dest_code (str) – The asset code for the final destination asset sent to the recipient.
- dest_issuer (str, None) – Account address that receives the payment.
- dest_amount (str) – The amount of destination asset the destination account receives.
- path (list) – A list of asset tuples, each tuple containing a (asset_code, asset_issuer) for each asset in the path. For the native asset, None is used for the asset_issuer.
- source (str) – The source address of the path payment.
Returns: This builder instance.
-
append_path_payment_strict_send_op
(destination, send_code, send_issuer, send_amount, dest_code, dest_issuer, dest_min, path, source=None)[source]¶ Append a
PathPaymentStrictSend
operation to the list of operations.Parameters: - destination (str) – The destination address (Account ID) for the payment.
- send_code (str) – The asset code for the source asset deducted from the source account.
- send_issuer (str, None) – The address of the issuer of the source asset.
- send_amount (str) – Amount of send_asset to send (excluding fees).
- dest_code (str) – The asset code for the final destination asset sent to the recipient.
- dest_issuer (str, None) – Account address that receives the payment.
- dest_min (str) – The minimum amount of destination asset the destination account receives.
- path (list) – A list of asset tuples, each tuple containing a (asset_code, asset_issuer) for each asset in the path. For the native asset, None is used for the asset_issuer.
- source (str) – The source address of the path payment.
Returns: This builder instance.
-
append_payment_op
(destination, amount, asset_code='XLM', asset_issuer=None, source=None)[source]¶ Append a
Payment
operation to the list of operations.Parameters: - destination (str) – Account address that receives the payment.
- amount (str) – The amount of the currency to send in the payment.
- asset_code (str) – The asset code for the asset to send.
- asset_issuer (str, None) – The address of the issuer of the asset.
- source (str) – The source address of the payment.
Returns: This builder instance.
-
append_pre_auth_tx_signer
(pre_auth_tx, signer_weight, source=None)[source]¶ Add a PreAuthTx signer to an account.
Add a PreAuthTx signer to an account via a
SetOptions <stellar_base.operation.SetOptions
operation. This is a helper function forappend_set_options_op()
.Parameters: Returns: This builder instance.
-
append_set_options_op
(inflation_dest=None, clear_flags=None, set_flags=None, master_weight=None, low_threshold=None, med_threshold=None, high_threshold=None, home_domain=None, signer_address=None, signer_type=None, signer_weight=None, source=None)[source]¶ Append a
SetOptions
operation to the list of operations.Parameters: - inflation_dest (str) – The address in which to send inflation to on
an
Inflation
operation. - clear_flags (int) – Indicates which flags to clear. For details about the flags, please refer to Stellar’s documentation on Accounts. The bit mask integer subtracts from the existing flags of the account. This allows for setting specific bits without knowledge of existing flags.
- set_flags (int) – Indicates which flags to set. For details about the flags, please refer to Stellar’s documentation on Accounts. The bit mask integer adds onto the existing flags of the account. This allows for setting specific bits without knowledge of existing flags.
- master_weight (int) – Weight of the master key. This account may also add other keys with which to sign transactions using the signer param.
- low_threshold (int) – A number from 0-255 representing the threshold this account sets on all operations it performs that have a low threshold.
- med_threshold (int) – A number from 0-255 representing the threshold this account sets on all operations it performs that have a medium threshold.
- high_threshold (int) – A number from 0-255 representing the threshold this account sets on all operations it performs that have a high threshold.
- home_domain (str) – Sets the home domain of an account. See Stellar’s documentation on Federation.
- signer_address (str, bytes) – The address of the new signer to add to the source account.
- signer_type (str) – The type of signer to add to the account. Must be in (‘ed25519PublicKey’, ‘hashX’, ‘preAuthTx’). See Stellar’s documentation for Multi-Sign for more information.
- signer_weight (int) – The weight of the signer. If the weight is 0, the signer will be deleted.
- source (str) – The source address for which options are being set.
Returns: This builder instance.
- inflation_dest (str) – The address in which to send inflation to on
an
-
append_trust_op
(destination, code, limit=None, source=None)[source]¶ append_trust_op will be deprecated in the future, use append_change_trust_op instead. Append a
ChangeTrust
operation to the list of operations.Parameters: Returns: This builder instance.
-
classmethod
challenge_tx
(server_secret, client_account_id, archor_name, network='TESTNET', timeout=300)[source]¶ - Returns a valid SEP0010
- challenge transaction which you can use for Stellar Web Authentication.
Parameters: - server_secret (str) – secret key for server’s signing account.
- client_account_id (str) – The stellar account that the wallet wishes to authenticate with the server.
- archor_name (str) – Anchor’s name to be used in the manage_data key.
- network (str) – The network to connect to for verifying and retrieving additional attributes from. ‘PUBLIC’ is an alias for ‘Public Global Stellar Network ; September 2015’, ‘TESTNET’ is an alias for ‘Test SDF Network ; September 2015’. Defaults to TESTNET.
- timeout (int) – Challenge duration in seconds (default to 5 minutes).
Returns: a valid SEP0010 challenge transaction which you can use for Stellar Web Authentication.
Return type:
-
federation_payment
(fed_address, amount, asset_code='XLM', asset_issuer=None, source=None, allow_http=False)[source]¶ Append a
Payment
operation to the list of operations using federation on the destination address.Translates the destination stellar address to an account ID via
federation
, before creating a new payment operation viaappend_payment_op()
.Parameters: - fed_address (str) – A Stellar Address that needs to be translated into a valid account ID via federation.
- amount (str) – The amount of the currency to send in the payment.
- asset_code (str) – The asset code for the asset to send.
- asset_issuer (str) – The address of the issuer of the asset.
- source (str) – The source address of the payment.
- allow_http (bool) – When set to True, connections to insecure http protocol federation servers will be allowed. Must be set to False in production. Default: False.
Returns: This builder instance.
-
gen_compliance_xdr
()[source]¶ Create an XDR object representing this builder’s transaction to be sent over via the Compliance protocol (notably, with a sequence number of 0).
Intentionally, the XDR object is returned without any signatures on the transaction.
See Stellar’s documentation on its Compliance Protocol for more information.
-
gen_te
()[source]¶ Generate a
TransactionEnvelope
around the generated Transaction via the list of operations in this instance.Returns: A transaction envelope ready to send over the network. Return type: TransactionEnvelope
-
gen_tx
()[source]¶ Generate a
Transaction
object from the list of operations contained within this object.Returns: A transaction representing all of the operations that have been appended to this builder. Return type: Transaction
-
gen_xdr
()[source]¶ Create an XDR object around a newly generated
TransactionEnvelope
.Returns: An XDR object representing a newly created transaction envelope ready to send over the network.
-
get_sequence
()[source]¶ Get the sequence number for a given account via Horizon.
Returns: The current sequence number for a given account Return type: int
-
hash
()[source]¶ Return a hash for this transaction.
Returns: A hash for this transaction. Return type: bytes
-
hash_hex
()[source]¶ Return a hex encoded hash for this transaction.
Returns: A hex encoded hash for this transaction. Return type: str
-
import_from_xdr
(xdr)[source]¶ Create a
TransactionEnvelope
via an XDR object.In addition, sets the fields of this builder (the transaction envelope, transaction, operations, source, etc.) to all of the fields in the provided XDR transaction envelope.
Parameters: xdr (bytes, str) – The XDR object representing the transaction envelope to which this builder is setting its state to.
-
next_builder
()[source]¶ Create a new builder based off of this one with its sequence number incremented.
Returns: A new Builder instance Return type: Builder
-
sign
(secret=None)[source]¶ Sign the generated
TransactionEnvelope
from the list of this builder’s operations.Parameters: secret (str) – The secret seed to use if a key pair or secret was not provided when this class was originaly instantiated, or if another key is being utilized to sign the transaction envelope.
-
sign_preimage
(preimage)[source]¶ Sign the generated transaction envelope using a Hash(x) signature.
Parameters: preimage (str, bytes) – The value to be hashed and used as a signer on the transaction envelope.
-
submit
()[source]¶ Submit the generated XDR object of the built transaction envelope to Horizon.
Sends the generated transaction envelope over the wire via this builder’s
Horizon
instance. Note that you’ll typically want to sign the transaction before submitting via the sign methods.Returns: A dict representing the JSON response from Horizon.
-
static
verify_challenge_tx
(challenge_tx, server_account_id, network='TESTNET')[source]¶ Verifies if a transaction is a valid SEP0010 challenge transaction.
- This function performs the following checks:
- verify that transaction sequenceNumber is equal to zero;
- verify that transaction source account is equal to the server’s signing key;
- verify that transaction has time bounds set, and that current time is between the minimum and maximum bounds;
- verify that transaction contains a single Manage Data operation and it’s source account is not null;
- verify that transaction envelope has a correct signature by server’s signing key;
- verify that transaction envelope has a correct signature by the operation’s source account;
Parameters: - challenge_tx (str) – SEP0010 transaction challenge transaction in base64.
- server_account_id (str) – public key for server’s account.
- network (str) – The network to connect to for verifying and retrieving additional attributes from. ‘PUBLIC’ is an alias for ‘Public Global Stellar Network ; September 2015’, ‘TESTNET’ is an alias for ‘Test SDF Network ; September 2015’. Defaults to TESTNET.
Raises: SEP10VerificationError
Keypair¶
-
class
stellar_base.keypair.
Keypair
(verifying_key, signing_key=None)[source]¶ The
Keypair
object, which represents a signing and verifying key for use with the Stellar network.Instead of instantiating the class directly, we recommend using one of several class methods:
Parameters: - verifying_key (ed25519.VerifyingKey) – The verifying (public) Ed25519 key in the keypair.
- signing_key (ed25519.SigningKey) – The signing (private) Ed25519 key in the keypair.
-
account_xdr_object
()[source]¶ Create PublicKey XDR object via public key bytes.
Returns: Serialized XDR of PublicKey type.
-
address
()[source]¶ Get the public key encoded as a strkey.
See
encode_check()
for more details on the strkey encoding process.Returns: The public key encoded as a strkey. Return type: bytes
-
classmethod
deterministic
(mnemonic, passphrase='', lang='english', index=0)[source]¶ Generate a
Keypair
object via a deterministic phrase.Using a mnemonic, such as one generated from
StellarMnemonic
, generate a new keypair deterministically. UsesStellarMnemonic
internally to generate the seed from the mnemonic, using PBKDF2.Parameters: - mnemonic (str) – A unique string used to deterministically generate keypairs.
- passphrase (str) – An optional passphrase used as part of the salt during PBKDF2 rounds when generating the seed from the mnemonic.
- lang (str) – The language of the mnemonic, defaults to english.
- index (int) –
The index of the keypair generated by the mnemonic. This allows for multiple Keypairs to be derived from the same mnemonic, such as:
>>> from stellar_base.keypair import Keypair >>> m = 'update hello cry airport drive chunk elite boat shaft sea describe number' # Don't use this mnemonic in practice. >>> kp1 = Keypair.deterministic(m, lang='english', index=0) >>> kp2 = Keypair.deterministic(m, lang='english', index=1) >>> kp3 = Keypair.deterministic(m, lang='english', index=2)
Returns: A new
Keypair
instance derived from the mnemonic.
-
classmethod
from_address
(address)[source]¶ Generate a
Keypair
object via a strkey encoded public key.Parameters: address (str) – A base32 encoded public key encoded as described in encode_check()
Returns: A new Keypair
with only a verifying (public) key.
-
classmethod
from_base58_seed
(base58_seed)[source]¶ Generate a
Keypair
object via Base58 encoded seed.Deprecated since version 0.1.7: Base58 address encoding is DEPRECATED! Use this method only for transition to strkey encoding.
Parameters: base58_seed (str) – A base58 encoded encoded secret seed. Returns: A new Keypair
derived from the secret seed.
-
classmethod
from_raw_address
(raw_address)[source]¶ Generate a
Keypair
object via a sequence of bytes.Parameters: raw_address (bytes) – A bytes object used as the address for generating the keypair. Returns: A new Keypair
derived by the raw public key.
-
classmethod
from_raw_seed
(raw_seed)[source]¶ Generate a
Keypair
object via a sequence of bytes.Typically these bytes are random, such as the usage of
os.urandom()
inKeypair.random()
. However this class method allows you to use an arbitrary sequence of bytes, provided the sequence is 32 bytes long.Parameters: raw_seed (bytes) – A bytes object used as the seed for generating the keypair. Returns: A new Keypair
derived by the raw secret seed.
-
classmethod
from_seed
(seed)[source]¶ Generate a
Keypair
object via a strkey encoded seed.Parameters: seed (str) – A base32 encoded secret seed string encoded as described in encode_check()
.Returns: A new Keypair
instance derived by the secret seed.
-
raw_public_key
()[source]¶ Get the bytes that comprise the verifying (public) key.
Returns: The verifying key’s bytes.
-
raw_seed
()[source]¶ Get the bytes of the signing key’s seed.
Returns: The signing key’s secret seed as a byte sequence. Return type: bytes
-
seed
()[source]¶ Get the secret seed encoded as a strkey.
See
encode_check()
for more details on the strkey encoding process.Returns: The secret seed encoded as a strkey. Return type: bytes
-
sign
(data)[source]¶ Sign a bytes-like object using the signing (private) key.
Parameters: data (bytes) – The data to sign Returns: The signed data Return type: bytes
-
sign_decorated
(data)[source]¶ Sign a bytes-like object and return the decorated signature.
Sign a bytes-like object by signing the data using the signing (private) key, and return a decorated signature, which includes the last four bytes of the public key as a signature hint to go along with the signature as an XDR DecoratedSignature object.
Parameters: data (bytes) – A sequence of bytes to sign, typically a transaction.
-
signature_hint
()[source]¶ Get the signature hint derived from the public key in this
Keypair
.Get the last four bytes of the public key to be used as a signature hint when utilizing decorated signatures.
Memo¶
-
class
stellar_base.memo.
Memo
[source]¶ The
Memo
object, which represents the base class for memos for use with Stellar transactions.The memo for a transaction contains optional extra information about the transaction taking place. It is the responsibility of the client to interpret this value.
See the following implementations that serve a more practical use with the library:
NoneMemo
- No memo.TextMemo
- A string encoded using either ASCII or UTF-8, up to- 28-bytes long.
IdMemo
- A 64 bit unsigned integer.HashMemo
- A 32 byte hash.RetHashMemo
- A 32 byte hash intended to be interpreted as the- hash of the transaction the sender is refunding.
See Stellar’s documentation on Transactions for more information on how memos are used within transactions, as well as information on the available types of memos.
-
class
stellar_base.memo.
TextMemo
(text)[source]¶ The
TextMemo
, which represents MEMO_TEXT in a transaction.Parameters: text (str, bytes) – A string encoded using either ASCII or UTF-8, up to 28-bytes long.
-
class
stellar_base.memo.
IdMemo
(memo_id)[source]¶ The
IdMemo
which represents MEMO_ID in a transaction.Parameters: memo_id (int) – A 64 bit unsigned integer.
-
class
stellar_base.memo.
HashMemo
(memo_hash)[source]¶ The
HashMemo
which represents MEMO_HASH in a transaction.Parameters: memo_hash (bytes, str) – A 32 byte hash or hex encoded string.
-
class
stellar_base.memo.
RetHashMemo
(memo_return)[source]¶ The
RetHashMemo
which represents MEMO_RETURN in a transaction.MEMO_RETURN is typically used with refunds/returns over the network - it is a 32 byte hash intended to be interpreted as the hash of the transaction the sender is refunding.
Parameters: memo_return (bytes, str) – A 32 byte hash or hex encoded string intended to be interpreted as the hash of the transaction the sender is refunding.
Network¶
-
class
stellar_base.network.
Network
(passphrase=None)[source]¶ The
Network
object, which represents a Stellar network.This class represents such a stellar network such as the public livenet and the Stellar Development Foundation Test network.
Parameters: passphrase (str) – The passphrase for the network. (ex. ‘Public Global Stellar Network ; September 2015’)
Operation¶
-
class
stellar_base.operation.
Operation
(source=None)[source]¶ The
Operation
object, which represents an operation on Stellar’s network.An operation is an individual command that mutates Stellar’s ledger. It is typically rolled up into a transaction (a transaction is a list of operations with additional metadata).
Operations are executed on behalf of the source account specified in the transaction, unless there is an override defined for the operation.
For more on operations, see Stellar’s documentation on operations as well as Stellar’s List of Operations, which includes information such as the security necessary for a given operation, as well as information about when validity checks occur on the network.
The
Operation
class is typically not used, but rather one of its subclasses is typically included in transactions.Parameters: source (str) – The source account for the payment. Defaults to the transaction’s source account. -
classmethod
from_xdr
(xdr)[source]¶ Create the appropriate
Operation
subclass from the XDR structure.Decode an XDR base64 encoded string and create the appropriate
Operation
object.Parameters: xdr (str) – The XDR object to create an Operation
(or subclass) instance from.
-
static
from_xdr_amount
(value)[source]¶ Converts an amount from an XDR object into its appropriate integer representation.
Each asset amount is encoded as a signed 64-bit integer in the XDR structures. An asset amount unit (that which is seen by end users) is scaled down by a factor of ten million (10,000,000) to arrive at the native 64-bit integer representation. For example, the integer amount value 25,123,456 equals 2.5123456 units of the asset. This scaling allows for seven decimal places of precision in human-friendly amount units.
This static method correctly divides the value by the scaling factor in order to get the proper units of the asset.
See Stellar’s documentation on Asset Precision for more information.
Parameters: value (int) – The amount to convert to a string from an XDR int64 amount.
-
static
to_xdr_amount
(value)[source]¶ Converts an amount to the appropriate value to send over the network as a part of an XDR object.
Each asset amount is encoded as a signed 64-bit integer in the XDR structures. An asset amount unit (that which is seen by end users) is scaled down by a factor of ten million (10,000,000) to arrive at the native 64-bit integer representation. For example, the integer amount value 25,123,456 equals 2.5123456 units of the asset. This scaling allows for seven decimal places of precision in human-friendly amount units.
This static method correctly multiplies the value by the scaling factor in order to come to the integer value used in XDR structures.
See Stellar’s documentation on Asset Precision for more information.
Parameters: value (str) – The amount to convert to an integer for XDR serialization.
-
classmethod
Transaction¶
-
class
stellar_base.transaction.
Transaction
(source, sequence, time_bounds=None, memo=None, fee=None, operations=None)[source]¶ The
Transaction
object, which represents a transaction on Stellar’s network.A transaction contains a list of operations (see
Operation
), which are all executed in order as one ACID transaction, along with an associated source account, fee, account sequence number, list of signatures, both an optional memo and an optional timebound. Typically aTransaction
is placed in aTransactionEnvelope
which is then signed before being sent over the network.For more information on Transactions in Stellar, see Stellar’s guide on transactions.
Parameters: - source (str) – A strkey encoded account ID (public key) of the source account for the transaction.
- sequence (int, str) – The current sequence number of the source account. The sequence number is incremented by 1 automatically, as is necessary for a new transaction for a given source account.
- time_bounds (dict) – A dict that contains a minTime and maxTime attribute ({‘minTime’: 1534392138, ‘maxTime’: 1534392238}) representing the lower and upper bound of when a given transaction will be valid.
- memo (Memo) – The memo being sent with the transaction, being
represented as one of the subclasses of the
Memo
object. - fee (int) – The fee amount for the transaction, which should equal FEE (currently 100 stroops) multiplied by the number of operations in the transaction. See Stellar’s latest documentation on fees for more information.
- operations (list) – A list of
Operation
objects (typically its subclasses as defined instellar_base.operation
to be included in the transaction. By default this is an empty list.
-
add_operation
(operation)[source]¶ Add an
Operation
to this transaction.This method will only add an operation if it is not already in the transaction’s list of operations, i.e. every operation in the transaction should be unique.
Parameters: operation (Operation) – The operation to add to this transaction.
-
classmethod
from_xdr_object
(tx_xdr_object)[source]¶ Create a
Transaction
object from a Transaction XDR object.
-
to_xdr_object
()[source]¶ Creates an XDR Transaction object that represents this
Transaction
.
-
xdr
()[source]¶ Packs and base64 encodes this
Transaction
as an XDR string.
TransactionEnvelope¶
-
class
stellar_base.transaction_envelope.
TransactionEnvelope
(tx, signatures=None, network_id=None)[source]¶ The
TransactionEnvelope
object, which represents a transaction envelope ready to sign and submit to send over the network.When a transaction is ready to be prepared for sending over the network, it must be put into a
TransactionEnvelope
, which includes additional metadata such as the signers for a given transaction. Ultimately, this class handles signing and conversion to and from XDR for usage on Stellar’s network.Parameters: - tx (
Transaction
) – The transaction that is encapsulated in this envelope. - signatures (list) – which contains a list of signatures that have already been created.
- network_id (str) – which contains the network ID for which network this transaction envelope is associated with.
-
classmethod
from_xdr
(xdr)[source]¶ Create a new
TransactionEnvelope
from an XDR string.Parameters: xdr (bytes, str) – The XDR string that represents a transaction envelope.
-
hash_meta
()[source]¶ Get the XDR Hash of the signature base.
This hash is ultimately what is signed before transactions are sent over the network. See
signature_base()
for more details about this process.Returns: The XDR Hash of this transaction envelope’s signature base.
-
sign
(keypair)[source]¶ Sign this transaction envelope with a given keypair.
Note that the signature must not already be in this instance’s list of signatures.
Parameters: keypair ( Keypair
) – The keypair to use for signing this transaction envelope.Raises: SignatureExistError
-
sign_hashX
(preimage)[source]¶ Sign this transaction envelope with a Hash(X) signature.
See Stellar’s documentation on Multi-Sig for more details on Hash(x) signatures.
Parameters: preimage (str, bytes) – 32 byte hash or hex encoded string, the “x” value to be hashed and used as a signature.
-
signature_base
()[source]¶ Get the signature base of this transaction envelope.
Return the “signature base” of this transaction, which is the value that, when hashed, should be signed to create a signature that validators on the Stellar Network will accept.
It is composed of a 4 prefix bytes followed by the xdr-encoded form of this transaction.
Returns: The signature base of this transaction envelope.
-
to_xdr_object
()[source]¶ Get an XDR object representation of this
TransactionEnvelope
.
-
xdr
()[source]¶ Get the base64 encoded XDR string representing this
TransactionEnvelope
.
- tx (
List of Operations¶
Create Account¶
-
class
stellar_base.operation.
CreateAccount
(destination, starting_balance, source=None)[source]¶ The
CreateAccount
object, which represents a Create Account operation on Stellar’s network.This operation creates and funds a new account with the specified starting balance.
Threshold: Medium
Parameters: - destination (str) – Destination account ID to create an account for.
- starting_balance (str) – Amount in XLM the account should be funded for. Must be greater than the [reserve balance amount] (https://www.stellar.org/developers/learn/concepts/fees.html).
- source (str) – The source account for the payment. Defaults to the transaction’s source account.
-
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
CreateAccount
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
CreateAccount
.
Payment¶
-
class
stellar_base.operation.
Payment
(destination, asset, amount, source=None)[source]¶ The
Payment
object, which represents a Payment operation on Stellar’s network.Sends an amount in a specific asset to a destination account.
Threshold: Medium
Parameters:
Manage Sell Offer¶
-
class
stellar_base.operation.
ManageSellOffer
(selling, buying, amount, price, offer_id=0, source=None)[source]¶ The
ManageSellOffer
object, which represents a ManageSellOffer operation on Stellar’s network.Creates, updates, or deletes an sell offer.
If you want to create a new offer set Offer ID to 0.
If you want to update an existing offer set Offer ID to existing offer ID.
If you want to delete an existing offer set Offer ID to existing offer ID and set Amount to 0.
Threshold: Medium
Parameters: - selling (Asset) – What you’re selling.
- buying (Asset) – What you’re buying.
- amount (str) – The total amount you’re selling. If 0, deletes the offer.
- price (str, dict) – Price of 1 unit of selling in terms of buying.
- offer_id (int) – If 0, will create a new offer (default). Otherwise, edits an existing offer.
- source (str) – The source account (defaults to transaction source).
-
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
ManageOffer
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
ManageOffer
.
Manage Buy Offer¶
-
class
stellar_base.operation.
ManageBuyOffer
(selling, buying, amount, price, offer_id=0, source=None)[source]¶ The
ManageBuyOffer
object, which represents a ManageBuyOffer operation on Stellar’s network.Creates, updates, or deletes an buy offer.
If you want to create a new offer set Offer ID to 0.
If you want to update an existing offer set Offer ID to existing offer ID.
If you want to delete an existing offer set Offer ID to existing offer ID and set Amount to 0.
Threshold: Medium
Parameters: - selling (Asset) – What you’re selling.
- buying (Asset) – What you’re buying.
- amount (str) – Amount being bought. if set to 0, delete the offer.
- price (str, dict) – Price of thing being bought in terms of what you are selling.
- offer_id (int) – If 0, will create a new offer (default). Otherwise, edits an existing offer.
- source (str) – The source account (defaults to transaction source).
-
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
ManageOffer
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
ManageOffer
.
Create Passive Sell Offer¶
-
class
stellar_base.operation.
CreatePassiveSellOffer
(selling, buying, amount, price, source=None)[source]¶ The
CreatePassiveSellOffer
object, which represents a CreatePassiveSellOffer operation on Stellar’s network.A passive sell offer is an offer that does not act on and take a reverse offer of equal price. Instead, they only take offers of lesser price. For example, if an offer exists to buy 5 BTC for 30 XLM, and you make a passive sell offer to buy 30 XLM for 5 BTC, your passive sell offer does not take the first offer.
Note that regular offers made later than your passive sell offer can act on and take your passive sell offer, even if the regular offer is of the same price as your passive sell offer.
Passive sell offers allow market makers to have zero spread. If you want to trade EUR for USD at 1:1 price and USD for EUR also at 1:1, you can create two passive sell offers so the two offers don’t immediately act on each other.
Once the passive sell offer is created, you can manage it like any other offer using the manage offer operation - see
ManageOffer
for more details.Parameters: -
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
CreatePassiveOffer
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
CreatePassiveOffer
.
-
classmethod
Set Options¶
-
class
stellar_base.operation.
SetOptions
(inflation_dest=None, clear_flags=None, set_flags=None, master_weight=None, low_threshold=None, med_threshold=None, high_threshold=None, home_domain=None, signer_address=None, signer_type=None, signer_weight=None, source=None)[source]¶ The
SetOptions
object, which represents a SetOptions operation on Stellar’s network.This operation sets the options for an account.
For more information on the signing options, please refer to the multi-sig doc.
When updating signers or other thresholds, the threshold of this operation is high.
Threshold: Medium or High
Parameters: - inflation_dest (str) – Set this account ID as the account’s inflation destination.
- clear_flags (int) – Bitmap integer for which account flags to clear.
- set_flags (int) – Bitmap integer for which account flags to set.
- master_weight (int) – The master key weight.
- low_threshold (int) – The sum weight for the low threshold.
- med_threshold (int) – The sum weight for the medium threshold.
- high_threshold (int) – The sum weight for the high threshold.
- home_domain (str) – sets the home domain used for reverse federation lookup.
- signer_address (str, bytes) – signer
- signer_type (str) – The type of signer, it should be ‘ed25519PublicKey’, ‘hashX’ or ‘preAuthTx’
- signer_weight (int) – The weight of the new signer (0 to delete or 1-255)
- source (str) – The source account (defaults to transaction source).
-
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
SetOptions
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
SetOptions
.
Change Trust¶
-
class
stellar_base.operation.
ChangeTrust
(asset, limit=None, source=None)[source]¶ The
ChangeTrust
object, which represents a ChangeTrust operation on Stellar’s network.Creates, updates, or deletes a trustline. For more on trustlines, please refer to the assets documentation <https://www.stellar.org/developers/guides/concepts/assets.html>_.
Threshold: Medium
Parameters: -
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
ChangeTrust
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
ChangeTrust
.
-
classmethod
Allow Trust¶
-
class
stellar_base.operation.
AllowTrust
(trustor, asset_code, authorize, source=None)[source]¶ The
AllowTrust
object, which represents a AllowTrust operation on Stellar’s network.Updates the authorized flag of an existing trustline. This can only be called by the issuer of a trustline’s asset.
The issuer can only clear the authorized flag if the issuer has the AUTH_REVOCABLE_FLAG set. Otherwise, the issuer can only set the authorized flag.
Threshold: Low
Parameters: -
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
AllowTrust
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
AllowTrust
.
-
classmethod
Account Merge¶
-
class
stellar_base.operation.
AccountMerge
(destination, source=None)[source]¶ The
AccountMerge
object, which represents a AccountMerge operation on Stellar’s network.Transfers the native balance (the amount of XLM an account holds) to another account and removes the source account from the ledger.
Threshold: High
Parameters: -
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
AccountMerge
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
AccountMerge
.
-
classmethod
Inflation¶
-
class
stellar_base.operation.
Inflation
(source=None)[source]¶ The
Inflation
object, which represents a Inflation operation on Stellar’s network.This operation runs inflation.
Threshold: Low
Parameters: source (str) – The source account (defaults to transaction source).
Manage Data¶
-
class
stellar_base.operation.
ManageData
(data_name, data_value, source=None)[source]¶ The
ManageData
object, which represents a ManageData operation on Stellar’s network.Allows you to set, modify or delete a Data Entry (name/value pair) that is attached to a particular account. An account can have an arbitrary amount of DataEntries attached to it. Each DataEntry increases the minimum balance needed to be held by the account.
DataEntries can be used for application specific things. They are not used by the core Stellar protocol.
Threshold: Medium
Parameters: -
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
ManageData
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
ManageData
.
-
classmethod
Bump Sequence¶
-
class
stellar_base.operation.
BumpSequence
(bump_to, source=None)[source]¶ The
BumpSequence
object, which represents a BumpSequence operation on Stellar’s network.Only available in protocol version 10 and above
Bump sequence allows to bump forward the sequence number of the source account of the operation, allowing to invalidate any transactions with a smaller sequence number. If the specified bumpTo sequence number is greater than the source account’s sequence number, the account’s sequence number is updated with that value, otherwise it’s not modified.
Threshold: Low
Parameters: -
classmethod
from_xdr_object
(op_xdr_object)[source]¶ Creates a
BumpSequence
object from an XDR Operation object.
-
to_xdr_object
()[source]¶ Creates an XDR Operation object that represents this
BumpSequence
.
-
classmethod
List of Exceptions¶
NoStellarSecretOrAddressError¶
HorizonError¶
-
class
stellar_base.exceptions.
HorizonError
(msg, status_code)[source]¶ A
HorizonError
that represents an issue stemming from Stellar Horizon.
HorizonRequestError¶
-
class
stellar_base.exceptions.
HorizonRequestError
(msg)[source]¶ A
HorizonRequestError
that represents we cannot connect to Stellar Horizon.
FederationError¶
-
class
stellar_base.exceptions.
FederationError
[source]¶ A
FederationError
that represents an issue stemming from Stellar Federation.
Federation¶
-
stellar_base.federation.
federation
(address_or_id, fed_type='name', domain=None, allow_http=False)[source]¶ Send a federation query to a Stellar Federation service.
For more info, see the complete guide on Stellar Federation..
Parameters: - address_or_id (str) – The address which you expect te retrieve federation information about.
- fed_type (str) – The type of federation query that you are making. Must be ‘name’, ‘id’, ‘forward’, or ‘txid’.
- domain (str) – The domain that corresponds to the address or ID; this is where the stellar.toml file lives (which ultimately points to the URL of the federation service).
- allow_http (bool) – Whether to allow for requests over plain HTTP over HTTPS. Note - you should always use HTTPS outside of testing.
Return dict: The federation query response decoded from JSON as a dict.
-
stellar_base.federation.
get_auth_server
(domain, allow_http=False)[source]¶ Retrieve the AUTH_SERVER config from a domain’s stellar.toml.
Parameters: Return str: The AUTH_SERVER url.
-
stellar_base.federation.
get_federation_service
(domain, allow_http=False)[source]¶ Retrieve the FEDERATION_SERVER config from a domain’s stellar.toml.
Parameters: Return str: The FEDERATION_SERVER url.
Horizon¶
-
class
stellar_base.horizon.
Horizon
(horizon_uri=None, pool_size=10, num_retries=3, request_timeout=11, backoff_factor=0.5, user_agent=None)[source]¶ -
account
(address)[source]¶ Returns information and links relating to a single account.
Parameters: address (str) – The account ID to retrieve details about. Returns: The account details in a JSON response. Return type: dict
-
account_data
(address, key)[source]¶ This endpoint represents a single data associated with a given account.
GET /accounts/{account}/data/{key}
Parameters: Returns: The value of the data field for the given account and data key.
Return type:
-
account_effects
(address, cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint represents all effects that changed a given account.
GET /accounts/{account}/effects{?cursor,limit,order}
Parameters: - address (str) – The account ID to look up effects for.
- cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: The list of effects in a JSON response.
Return type:
-
account_offers
(address, cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint represents all the offers a particular account makes.
GET /accounts/{account}/offers{?cursor,limit,order}
Parameters: - address (str) – The account ID to retrieve offers from.
- cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: The list of offers for an account in a JSON response.
Return type:
-
account_operations
(address, cursor=None, order='asc', limit=10, include_failed=False, sse=False)[source]¶ This endpoint represents all operations that were included in valid transactions that affected a particular account.
GET /accounts/{account}/operations{?cursor,limit,order}
Parameters: - address (str) – The account ID to list operations on.
- cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
- include_failed (bool) – Set to True to include operations of failed transactions in results.
Returns: The list of operations for an account in a JSON response.
Return type:
-
account_payments
(address, cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint responds with a collection of Payment operations where the given account was either the sender or receiver.
GET /accounts/{id}/payments{?cursor,limit,order}
Parameters: - address (str) – The account ID to list payments to/from.
- cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: The list of payments for an account in a JSON response.
Return type:
-
account_trades
(address, cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint responds with a collection of Trades where the given account was either the taker or the maker
GET /accounts/{id}/trades{?cursor,limit,order}
Parameters: - address (str) – The account ID to list trades to/from.
- cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: The list of payments for an account in a JSON response.
Return type:
-
account_transactions
(address, cursor=None, order='asc', limit=10, include_failed=False, sse=False)[source]¶ This endpoint represents all transactions that affected a given account.
GET /accounts/{account_id}/transactions{?cursor,limit,order}
Parameters: - address (str) – The account ID to list transactions from.
- cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- include_failed (bool) – Set to True include failed transactions in results.
- sse (bool) – Use server side events for streaming responses.
Returns: The list of transactions for an account in a JSON response.
Return type:
-
assets
(asset_code=None, asset_issuer=None, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all assets. It will give you all the assets in the system along with various statistics about each.
See the documentation below for details on query parameters that are available.
GET /assets{?asset_code,asset_issuer,cursor,limit,order}
Parameters: - asset_code (str) – Code of the Asset to filter by.
- asset_issuer (str) – Issuer of the Asset to filter by.
- cursor (int) – A paging token, specifying where to start returning records from.
- order (str) – The order in which to return rows, “asc” or “desc”, ordered by asset_code then by asset_issuer.
- limit (int) – Maximum number of records to return.
Returns: A list of all valid payment operations
Return type:
-
base_fee
()[source]¶ Fetch the base fee from the latest ledger. In the future, we’ll fetch the base fee from /fee_stats :return: base free :rtype: int
-
effects
(cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint represents all effects.
GET /effects{?cursor,limit,order}
Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: A list of all effects.
Return type:
-
fee_stats
()[source]¶ This endpoint gives useful information about fee stats in the last 5 ledgers. It can be used to predict a fee set on the transaction that will be submitted to the network.
Returns: Useful information about fee stats in the last 5 ledgers. Return type: dict
-
ledger
(ledger_id)[source]¶ The ledger details endpoint provides information on a single ledger.
Parameters: ledger_id (int) – The id of the ledger to look up. Returns: The details of a single ledger. Return type: dict
-
ledger_effects
(ledger_id, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all effects that occurred in the given ledger.
GET /ledgers/{id}/effects{?cursor,limit,order}
Parameters: Returns: The effects for a single ledger.
Return type:
-
ledger_operations
(ledger_id, cursor=None, order='asc', include_failed=False, limit=10)[source]¶ This endpoint returns all operations that occurred in a given ledger.
GET /ledgers/{id}/operations{?cursor,limit,order}
Parameters: - ledger_id (int) – The id of the ledger to look up.
- cursor (int) – A paging token, specifying where to start returning records from.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- include_failed (bool) – Set to True to include operations of failed transactions in results.
Returns: The operations contained in a single ledger.
Return type:
-
ledger_payments
(ledger_id, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all payment operations that are part of a valid transactions in a given ledger.
GET /ledgers/{id}/payments{?cursor,limit,order}
Parameters: Returns: The payments contained in a single ledger.
Return type:
-
ledger_transactions
(ledger_id, cursor=None, order='asc', include_failed=False, limit=10)[source]¶ This endpoint represents all transactions in a given ledger.
GET /ledgers/{id}/transactions{?cursor,limit,order}
Parameters: - ledger_id (int) – The id of the ledger to look up.
- cursor (int) – A paging token, specifying where to start returning records from.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- include_failed (bool) – Set to True to include failed transactions in results.
Returns: The transactions contained in a single ledger.
Return type:
-
ledgers
(cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint represents all ledgers.
GET /ledgers{?cursor,limit,order}
Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: All ledgers on the network.
Return type:
-
metrics
()[source]¶ The metrics endpoint returns a host of useful data points for monitoring the health of the underlying Horizon process.
Returns: A host of useful data points for monitoring the health of the underlying Horizon process Return type: dict
-
offer_trades
(offer_id, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all trades for a given offer.
GET /offers/{offer_id}/trades{?cursor,limit,order}
Parameters: Returns: A list of effects on the given operation.
Return type:
-
operation
(op_id)[source]¶ The operation details endpoint provides information on a single operation.
Parameters: op_id (id) – The operation ID to get details on. Returns: Details on a single operation. Return type: dict
-
operation_effects
(op_id, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all effects that occurred as a result of a given operation.
GET /operations/{id}/effects{?cursor,limit,order}
Parameters: Returns: A list of effects on the given operation.
Return type:
-
operations
(cursor=None, order='asc', limit=10, include_failed=False, sse=False)[source]¶ This endpoint represents all operations that are part of validated transactions.
GET /operations{?cursor,limit,order}
Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- include_failed (bool) – Set to True to include operations of failed transactions in results.
- sse (bool) – Use server side events for streaming responses.
Returns: A list of all operations.
Return type:
-
order_book
(selling_asset_code, buying_asset_code, selling_asset_issuer=None, buying_asset_issuer=None, limit=10, sse=False)[source]¶ Return, for each orderbook, a summary of the orderbook and the bids and asks associated with that orderbook.
See the external docs below for information on the arguments required.
Parameters: - selling_asset_code (str) – Code of the Asset being sold.
- buying_asset_code (str) – Type of the Asset being bought.
- selling_asset_issuer (str) – Account ID of the issuer of the Asset being sold, if it is a native asset, let it be None.
- buying_asset_issuer (str) – Account ID of the issuer of the Asset being bought, if it is a native asset, let it be None.
- limit (int) – Limit the number of items returned.
- sse (bool) – Use server side events for streaming responses.
Returns: A list of orderbook summaries as a JSON object.
Return type:
-
paths
(destination_account, destination_amount, source_account, destination_asset_code, destination_asset_issuer=None)[source]¶ Load a list of assets available to the source account id and find any payment paths from those source assets to the desired destination asset.
See the below docs for more information on required and optional parameters for further specifying your search.
Parameters: - destination_account (str) – The destination account that any returned path should use.
- destination_amount (str) – The amount, denominated in the destination asset, that any returned path should be able to satisfy.
- source_account (str) – The sender’s account id. Any returned path must use a source that the sender can hold.
- destination_asset_code (str) – The asset code for the destination.
- destination_asset_issuer (str, None) – The asset issuer for the destination, if it is a native asset, let it be None.
Returns: A list of paths that can be used to complete a payment based on a given query.
Return type:
-
payments
(cursor=None, order='asc', limit=10, sse=False)[source]¶ This endpoint represents all payment operations that are part of validated transactions.
GET /payments{?cursor,limit,order}
Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- sse (bool) – Use server side events for streaming responses.
Returns: A list of all valid payment operations.
Return type:
-
submit
(te)[source]¶ Submit the transaction using a pooled connection, and retry on failure.
Uses form-encoded data to send over to Horizon.
Returns: The JSON response indicating the success/failure of the submitted transaction. Return type: dict
-
trade_aggregations
(resolution, base_asset_code, counter_asset_code, base_asset_issuer=None, counter_asset_issuer=None, start_time=None, end_time=None, order='asc', limit=10, offset=0)[source]¶ Load a list of aggregated historical trade data, optionally filtered by an orderbook.
Parameters: - start_time (int) – Lower time boundary represented as millis since epoch.
- end_time (int) – Upper time boundary represented as millis since epoch.
- resolution (int) – Segment duration as millis since epoch. Supported values are 1 minute (60000), 5 minutes (300000), 15 minutes (900000), 1 hour (3600000), 1 day (86400000) and 1 week (604800000).
- base_asset_code (str) – Code of base asset.
- base_asset_issuer (str) – Issuer of base asset, if it is a native asset, let it be None.
- counter_asset_code (str) – Code of counter asset.
- counter_asset_issuer (str) – Issuer of counter asset, if it is a native asset, let it be None.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- offset (int) – segments can be offset using this parameter. Expressed in milliseconds. *Can only be used if the resolution is greater than 1 hour. Value must be in whole hours, less than the provided resolution, and less than 24 hours.
Returns: A list of collected trade aggregations.
Return type:
-
trades
(base_asset_code=None, counter_asset_code=None, base_asset_issuer=None, counter_asset_issuer=None, offer_id=None, cursor=None, order='asc', limit=10)[source]¶ Load a list of trades, optionally filtered by an orderbook.
See the below docs for more information on required and optional parameters for further specifying your search.
Parameters: - base_asset_code (str) – Code of base asset.
- base_asset_issuer (str) – Issuer of base asset, if it is a native asset, let it be None.
- counter_asset_code (str) – Code of counter asset.
- counter_asset_issuer (str) – Issuer of counter asset, if it is a native asset, let it be None.
- offer_id (int) – Filter for by a specific offer id.
- cursor (int) – A paging token, specifying where to start returning records from.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
Returns: A list of trades filtered by a given query.
Return type:
-
transaction
(tx_hash)[source]¶ The transaction details endpoint provides information on a single transaction.
Parameters: tx_hash (str) – The hex-encoded transaction hash. Returns: A single transaction’s details. Return type: dict
-
transaction_effects
(tx_hash, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all effects that occurred as a result of a given transaction.
GET /transactions/{hash}/effects{?cursor,limit,order}
Parameters: Returns: A single transaction’s effects.
Return type:
-
transaction_operations
(tx_hash, cursor=None, order='asc', include_failed=False, limit=10)[source]¶ This endpoint represents all operations that are part of a given transaction.
GET /transactions/{hash}/operations{?cursor,limit,order}
Parameters: - tx_hash (str) – The hex-encoded transaction hash.
- cursor (int) – A paging token, specifying where to start returning records from.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- include_failed (bool) – Set to True to include operations of failed transactions in results.
Returns: A single transaction’s operations.
Return type:
-
transaction_payments
(tx_hash, cursor=None, order='asc', limit=10)[source]¶ This endpoint represents all payment operations that are part of a given transaction.
GET /transactions/{hash}/payments{?cursor,limit,order}
Parameters: Returns: A single transaction’s payment operations.
Return type:
-
transactions
(cursor=None, order='asc', limit=10, include_failed=False, sse=False)[source]¶ This endpoint represents all validated transactions.
GET /transactions{?cursor,limit,order}
Parameters: - cursor (int, str) – A paging token, specifying where to start returning records from. When streaming this can be set to “now” to stream object created since your request time.
- order (str) – The order in which to return rows, “asc” or “desc”.
- limit (int) – Maximum number of records to return.
- include_failed (bool) – Set to True to include operations of failed transactions.
- sse (bool) – Use server side events for streaming responses.
Returns: The list of all transactions
Return type:
-