{ "info": { "author": "Algorand", "author_email": "pypiservice@algorand.com", "bugtrack_url": null, "classifiers": [], "description": "# py-algorand-sdk\n[![Build Status](https://travis-ci.com/algorand/py-algorand-sdk.svg?token=T43Tcse3Cxcyi7xtqmyQ&branch=master)](https://travis-ci.com/algorand/py-algorand-sdk) [![PyPI version](https://badge.fury.io/py/py-algorand-sdk.svg)](https://badge.fury.io/py/py-algorand-sdk) [![Documentation Status](https://readthedocs.org/projects/py-algorand-sdk/badge/?version=latest&style=flat)](https://py-algorand-sdk.readthedocs.io/en/latest)\n\nA python library for interacting with the Algorand network.\n\n## Installation\n\nRun ```$ pip3 install py-algorand-sdk``` to install the package.\n\nAlternatively, choose a [distribution file](https://pypi.org/project/py-algorand-sdk/#files), and run ```$ pip3 install [file name]```.\n\n## Quick start\n\nHere's a simple example you can run without a node.\n\n```python\nfrom algosdk import account, encoding\n\n# generate an account\nprivate_key, address = account.generate_account()\nprint(\"Private key:\", private_key)\nprint(\"Address:\", address)\n\n# check if the address is valid\nif encoding.is_valid_address(address):\n print(\"The address is valid!\")\nelse:\n print(\"The address is invalid.\")\n```\n\n## Node setup \n\nFollow the instructions in Algorand's [developer resources](https://developer.algorand.org/docs/introduction-installing-node) to install a node on your computer. \n\n## Running example.py\n\nBefore running [example.py](https://github.com/algorand/py-algorand-sdk/blob/master/example.py), start kmd:\n\n```\n$ ./goal kmd start -d [data directory]\n```\n\nNext, create a wallet and an account:\n\n```\n$ ./goal wallet new [wallet name] -d [data directory]\n```\n\n```\n$ ./goal account new -d [data directory] -w [wallet name]\n```\n\nVisit the [Algorand dispenser](https://bank.testnet.algorand.network/) and enter the account address to fund your account.\n\nNext, in [params.py](https://github.com/algorand/py-algorand-sdk/blob/master/params.py), either update the tokens and addresses, or provide a path to the data directory.\n\nYou're now ready to run example.py!\n\n## More examples\n\n### using the Wallet class\nInstead of always having to keep track of handles, IDs, and passwords for wallets, create a Wallet object to manage everything for you.\n```python\nimport params\nfrom algosdk import kmd\nfrom algosdk.wallet import Wallet\n\n# create a kmd client\nkcl = kmd.KMDClient(params.kmd_token, params.kmd_address)\n\n# create a wallet object\nwallet = Wallet(\"wallet_name\", \"wallet_password\", kcl)\n\n# get wallet information\ninfo = wallet.info()\nprint(\"Wallet name:\", info[\"wallet\"][\"name\"])\n\n# create an account\naddress = wallet.generate_key()\nprint(\"New account:\", address)\n\n# delete the account\ndelete = wallet.delete_key(address)\nprint(\"Account deleted:\", delete)\n```\n\n### backing up a wallet with mnemonic\n\n```python\nimport params\nfrom algosdk import kmd, mnemonic\nfrom algosdk.wallet import Wallet\n\n# create a kmd client\nkcl = kmd.KMDClient(params.kmd_token, params.kmd_address)\n\n# create a wallet object\nwallet = Wallet(\"wallet_name\", \"wallet_password\", kcl)\n\n# get the wallet's master derivation key\nmdk = wallet.export_master_derivation_key()\nprint(\"Master Derivation Key:\", mdk)\n\n# get the backup phrase\nbackup = mnemonic.from_master_derivation_key(mdk)\nprint(\"Wallet backup phrase:\", backup)\n```\nYou can also back up accounts using mnemonic.from_private_key().\n### recovering a wallet using a backup phrase\n\n```python\nimport params\nfrom algosdk import kmd, mnemonic\n\n# get the master derivation key from the mnemonic\nbackup = \"such chapter crane ugly uncover fun kitten duty culture giant skirt reunion pizza pill web monster upon dolphin aunt close marble dune kangaroo ability merit\"\nmdk = mnemonic.to_master_derivation_key(backup)\n\n# create a kmd client\nkcl = kmd.KMDClient(params.kmd_token, params.kmd_address)\n\n# recover the wallet by passing mdk when creating a wallet\nkcl.create_wallet(\"wallet_name\", \"wallet_password\", master_deriv_key=mdk)\n```\nYou can also recover accounts using mnemonic.to_private_key().\n\n### writing transactions to file\n\nIf you don't want to send your transactions now, you can write them to file. This works with both signed and unsigned transactions.\n```python\nimport params\nfrom algosdk import algod, kmd, transaction\n\nsender = \"sender_address\"\nreceiver = \"receiver_address\"\n\n# create an algod and kmd client\nacl = algod.AlgodClient(params.algod_token, params.algod_address)\nkcl = kmd.KMDClient(params.kmd_token, params.kmd_address)\n\n# get suggested parameters\nparams = acl.suggested_params()\ngen = params[\"genesisID\"]\ngh = params[\"genesishashb64\"]\nlast_round = params[\"lastRound\"]\nfee = params[\"fee\"]\n\n# create a transaction\namount = 10000\ntxn = transaction.PaymentTxn(sender, fee, last_round, last_round+100, gh, receiver, amount)\n\n# write to file\ntxns = [txn]\ntransaction.write_to_file([txn], \"pathtofile.tx\")\n```\n\nWe can also read transactions after writing them to file.\n\n```python\n# read from file\nread_txns = transaction.retrieve_from_file(\"pathtofile.tx\")\n```\n\n### manipulating multisig transactions\n\n```python\nimport params\nfrom algosdk import account, transaction, algod, encoding\n\nacl = algod.AlgodClient(params.algod_token, params.algod_address)\n\n# generate three accounts\nprivate_key_1, account_1 = account.generate_account()\nprivate_key_2, account_2 = account.generate_account()\nprivate_key_3, account_3 = account.generate_account()\n\n# create a multisig account\nversion = 1 # multisig version\nthreshold = 2 # how many signatures are necessary\nmsig = transaction.Multisig(version, threshold, [account_1, account_2])\n\n# get suggested parameters\nparams = acl.suggested_params()\ngen = params[\"genesisID\"]\ngh = params[\"genesishashb64\"]\nlast_round = params[\"lastRound\"]\nfee = params[\"fee\"]\n\n# create a transaction\nsender = msig.address()\namount = 10000\ntxn = transaction.PaymentTxn(sender, fee, last_round, last_round+100, gh, account_3, amount)\n\n# create a SignedTransaction object\nmtx = transaction.MultisigTransaction(txn, msig)\n\n# sign the transaction\nmtx.sign(private_key_1)\nmtx.sign(private_key_2)\n\n# print encoded transaction\nprint(encoding.msgpack_encode(mtx))\n```\n\n### working with NoteField\nWe can put things in the \"note\" field of a transaction; here's an example with an auction bid. Note that you can put any bytes you want in the \"note\" field; you don't have to use the NoteField object.\n\n```python\nfrom algosdk import auction, transaction, encoding, account, constants\nimport base64\n\n# generate account\nprivate_key, address = account.generate_account()\nauction_address = \"string address\"\n\n# create bid\nexternal_currency = 10000 # how much external currency you're willing to spend\nmax_price = 260 # maximum price for one algo\nbid = auction.Bid(address, external_currency, max_price,\n \"bid_id\", auction_address, \"auc_id\")\n\n# sign bid\nsb = bid.sign(private_key)\n\n# create notefield\nnote_field = auction.NoteField(sb, constants.note_field_type_bid)\n\n# create transaction; you can sign and send this like any other transaction\nfee = 1\nfirst_valid_round = 567\ngh = \"genesis hash\"\nnote_field_bytes = base64.b64decode(encoding.msgpack_encode(note_field))\ntxn = transaction.PaymentTxn(address, fee, first_valid_round,\n first_valid_round+100, gh, auction_address,\n 100000, note=note_field_bytes)\n```\n\nWe can also get the NoteField object back from its bytes:\n```python\n# decode notefield\ndecoded = encoding.msgpack_decode(base64.b64encode(note_field_bytes))\nprint(decoded.dictify())\n```\n\n## Documentation\nDocumentation for the Python SDK is available at [py-algorand-sdk.readthedocs.io](https://py-algorand-sdk.readthedocs.io/en/latest/).\n\n## License\npy-algorand-sdk is licensed under a MIT license. See the [LICENSE](https://github.com/algorand/py-algorand-sdk/blob/master/LICENSE) file for details.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "py-algorand-sdk", "package_url": "https://pypi.org/project/py-algorand-sdk/", "platform": "", "project_url": "https://pypi.org/project/py-algorand-sdk/", "project_urls": { "Source": "https://github.com/algorand/py-algorand-sdk" }, "release_url": "https://pypi.org/project/py-algorand-sdk/1.0.5/", "requires_dist": [ "pynacl", "cryptography", "msgpack" ], "requires_python": ">=3.5", "summary": "Algorand SDK in Python", "version": "1.0.5" }, "last_serial": 5805103, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "a1385b38dfc863e51190ed4b23d160dc", "sha256": "bb1e9a9a969b69faff6712c6dff10e7b60c3f212bb4084aab3474ad36f3a2e35" }, "downloads": -1, "filename": "py_algorand_sdk-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a1385b38dfc863e51190ed4b23d160dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25263, "upload_time": "2019-06-26T21:22:47", "url": "https://files.pythonhosted.org/packages/5e/b4/7768544e5529a498876a7ad11b96febe8ebef00e23e98a9aa89c508a9d8c/py_algorand_sdk-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "561f1e83ce65ecda460426bd5a7281b4", "sha256": "6e16dbd4947b57a3b71508445344f806df2f3f0bc0a05fc97f8b522470568c9a" }, "downloads": -1, "filename": "py-algorand-sdk-0.0.0.tar.gz", "has_sig": false, "md5_digest": "561f1e83ce65ecda460426bd5a7281b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20687, "upload_time": "2019-06-26T21:22:49", "url": "https://files.pythonhosted.org/packages/bd/62/ab1ed4735fbab2e5314dd035468459494be32a08e22214f3e60d7a1ff2f3/py-algorand-sdk-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "d0a886fc805144a576c6482789f76c29", "sha256": "88792133c2d75c6452ed4f13c3cf099dccbcc8e1d08f28b2ac4628b4a1450234" }, "downloads": -1, "filename": "py_algorand_sdk-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d0a886fc805144a576c6482789f76c29", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26509, "upload_time": "2019-06-28T13:41:47", "url": "https://files.pythonhosted.org/packages/a3/c0/9ea320191758588eb955fd446689a63d9ee3710c3e75907a44894bf9d506/py_algorand_sdk-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9328b5c2603e65cb50a8d9bf461c0928", "sha256": "28b27522c18a43af3053e9d2657a0a6bd2239f5599e2e6a38bea3f081dc344fd" }, "downloads": -1, "filename": "py-algorand-sdk-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9328b5c2603e65cb50a8d9bf461c0928", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23340, "upload_time": "2019-06-28T13:42:04", "url": "https://files.pythonhosted.org/packages/40/6f/2d667ddb486ff255d73f7484d5c51e47943baac0fc0a8b41aabedc14d6dd/py-algorand-sdk-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "61fe431f60f9d06e782314396829ff21", "sha256": "ccb0fb906c7de2e25d61cd8721da9a751305a6e275c797a0ab40e7edc87ab24b" }, "downloads": -1, "filename": "py_algorand_sdk-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "61fe431f60f9d06e782314396829ff21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26519, "upload_time": "2019-07-02T14:54:02", "url": "https://files.pythonhosted.org/packages/a6/41/992bf0489d0e562cb555bcc8421a09f04a854bfef261a94eff1f5803e6d3/py_algorand_sdk-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bcbde01037dd9f2203a0fbca01b496b4", "sha256": "c675d06ac8da8d150df1db6dfb49f5170cfbaf0612221677fc5427bcc9927bec" }, "downloads": -1, "filename": "py-algorand-sdk-0.1.1.tar.gz", "has_sig": false, "md5_digest": "bcbde01037dd9f2203a0fbca01b496b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23360, "upload_time": "2019-07-02T14:54:03", "url": "https://files.pythonhosted.org/packages/2a/9b/731ef03f0b6fe4ddca698312c5834304ee1200c1e67260d58532bac2a625/py-algorand-sdk-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "39cc3715ce2e779acd1116ef8891b5d0", "sha256": "7c39d0fbc6b174e409d94560517edcb447fcd65db3dddb982e22804d5b723c23" }, "downloads": -1, "filename": "py_algorand_sdk-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "39cc3715ce2e779acd1116ef8891b5d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26588, "upload_time": "2019-07-05T21:19:33", "url": "https://files.pythonhosted.org/packages/bf/b1/74b95c403066ac7df81348e66cc1d8446aa780afcd1c660f57b98a5e32a7/py_algorand_sdk-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f2df164613f91441ce0650adca89047", "sha256": "b4c00cfcead661ed4beff6961f0f98c67e457734c27260746e2322a2ce7e1de1" }, "downloads": -1, "filename": "py-algorand-sdk-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6f2df164613f91441ce0650adca89047", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23395, "upload_time": "2019-07-05T21:19:35", "url": "https://files.pythonhosted.org/packages/bb/a2/260066be47caa21d78932ab2b7998c89eab7c2b6022a0b5e111a43271c0b/py-algorand-sdk-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d60105d2734bd576754617a386244d6f", "sha256": "c96e973493773076c41f4f0cd65afc8e562f110355d6ab1273634fc30173164f" }, "downloads": -1, "filename": "py_algorand_sdk-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d60105d2734bd576754617a386244d6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26297, "upload_time": "2019-07-15T17:21:59", "url": "https://files.pythonhosted.org/packages/e3/f1/c30d4fc26a47570a8291227b44362d4f866ddbd94ced6577409aaebfd4b5/py_algorand_sdk-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0276048413135cb94ec37b2d2753b673", "sha256": "81cf7c2b091e55149b58016678593b3d4c4621b103a45a31ddf3674a5eb4502a" }, "downloads": -1, "filename": "py-algorand-sdk-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0276048413135cb94ec37b2d2753b673", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23122, "upload_time": "2019-07-15T17:22:02", "url": "https://files.pythonhosted.org/packages/98/53/5da70d3cc1ded5221c86f4985b704390daca1332d76cb20d94e31d363ff1/py-algorand-sdk-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7809633dd71159b271d632edf0260023", "sha256": "a76478dd2cae24a6bc081709d9d8a68eca62db578980f855182921f2394f0995" }, "downloads": -1, "filename": "py_algorand_sdk-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7809633dd71159b271d632edf0260023", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26587, "upload_time": "2019-07-18T17:06:26", "url": "https://files.pythonhosted.org/packages/76/ef/0873928b938848ee78f49b9b0f81fe84a343c499a301f2a2df0d957a46ae/py_algorand_sdk-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b904da24e496ec461df12a565e7aee3b", "sha256": "3e02b7a878d5f5035b5aae58dd8832c0b7506267da1d90507d6ff0c009c13e9f" }, "downloads": -1, "filename": "py-algorand-sdk-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b904da24e496ec461df12a565e7aee3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23763, "upload_time": "2019-07-18T17:06:28", "url": "https://files.pythonhosted.org/packages/14/d4/f53d6eb4e65035e8a6bd57f37bb4ad2cf601e7ee56cce57d517bc7266c01/py-algorand-sdk-0.2.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e162a553c3ffc7c7778ce3c385fb9942", "sha256": "1c3989c7023aa65d957a5bc79ec676c91407130b2615a1461be74474c2a4e736" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e162a553c3ffc7c7778ce3c385fb9942", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27286, "upload_time": "2019-07-23T18:22:48", "url": "https://files.pythonhosted.org/packages/61/2b/b19d9b513749599efdc669f0dd358a67195314fb986daf69fc4f8c9b9648/py_algorand_sdk-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c46ff44e6c14c702ebe6e765c05fd25b", "sha256": "47f620d74f6664e846fb7315486253e688fb98b0a6a6fe71fd4c887ef5bd4f13" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c46ff44e6c14c702ebe6e765c05fd25b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24232, "upload_time": "2019-07-23T18:22:55", "url": "https://files.pythonhosted.org/packages/02/a8/504d1df57f2ca633ffec3b8d634f1b69fb39b5f44bc501ceaed5f9ae8e08/py-algorand-sdk-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b6ed520a0c06a11061037232348145fe", "sha256": "91e38e0490d7a9d64dc405e8a60139aae58debebbce89b35446e7a33d286e25c" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b6ed520a0c06a11061037232348145fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27779, "upload_time": "2019-07-30T16:48:50", "url": "https://files.pythonhosted.org/packages/46/88/a02c6f070a72b1fc5793df8f7fbdf7a0121560d34000d20075e9fc73b3a3/py_algorand_sdk-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0630da9373eb5cbe334b4c74d2c9c735", "sha256": "ed04626b8867d47d4bea0bf08ffa962f0471b18da7d128aa441b00a3f83ba926" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.1.tar.gz", "has_sig": false, "md5_digest": "0630da9373eb5cbe334b4c74d2c9c735", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25307, "upload_time": "2019-07-30T16:48:51", "url": "https://files.pythonhosted.org/packages/ca/d6/2c83cdb030e720c06790549bb78875b9bce779d18380f02745ffbccbb567/py-algorand-sdk-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "e4e7d8899547481ccaf379d6017ad647", "sha256": "65f8928c4bfbeedf1fc3c92afefb7a16756d8fb29948b7b4bd0819a22d0bb9a7" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e4e7d8899547481ccaf379d6017ad647", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28184, "upload_time": "2019-08-07T19:15:54", "url": "https://files.pythonhosted.org/packages/80/69/20e944b821b3089eb8a2f21fc286da45504443e24e7e341db32ef7962f39/py_algorand_sdk-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a949f065b8b9c325dfe7d05d52d96a1", "sha256": "4fe4b29cc0ab56d067e0f7635b9d2261cca38daceb3bea34641a00d7f16c9814" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4a949f065b8b9c325dfe7d05d52d96a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25649, "upload_time": "2019-08-07T19:15:55", "url": "https://files.pythonhosted.org/packages/df/de/88edaede3e3d60157e20019df809f85864e4b537f8b5496b8ea556df502a/py-algorand-sdk-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7ea74e288655558d4f4ee6c421e6ffe6", "sha256": "18690d80d0472b333f9ca106a70c5819c95f492ca986544e67aa1bfa69377256" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7ea74e288655558d4f4ee6c421e6ffe6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29088, "upload_time": "2019-08-16T17:52:32", "url": "https://files.pythonhosted.org/packages/38/23/1770ebe70f198d0c87782c847f30e40bdb09d0c4ef6df794c62f21e0dd4a/py_algorand_sdk-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d3799441cd3c14753b8d5e4cb9b30fa", "sha256": "c3a67782b7ebbecd8f79adb923067ef60927232089f6e9837d1a2cc794860fee" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.3.tar.gz", "has_sig": false, "md5_digest": "4d3799441cd3c14753b8d5e4cb9b30fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26424, "upload_time": "2019-08-16T17:52:34", "url": "https://files.pythonhosted.org/packages/83/da/ecd16ab44d91d34b9e12eff49451eccd647e8d92e927141c43642a7de685/py-algorand-sdk-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "9e00ddfe855c135a96661e9c64b2ebaf", "sha256": "fa156723ce01b39f964e81d10e3c1eae8d3e4f085a5d585e61447d12a134ac21" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9e00ddfe855c135a96661e9c64b2ebaf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29091, "upload_time": "2019-08-20T19:34:37", "url": "https://files.pythonhosted.org/packages/06/90/e52cc3f630e40752eee5596463ba3640aa2a5b6ebd98cf32ea1e66ee58a9/py_algorand_sdk-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d4696b2a2a9e1efe2d9c6b262655b96", "sha256": "4c82f699287c65a1b11a67aff450c2280b084ad42707eeea7871f1a9c06826d2" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.4.tar.gz", "has_sig": false, "md5_digest": "0d4696b2a2a9e1efe2d9c6b262655b96", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26377, "upload_time": "2019-08-20T19:34:38", "url": "https://files.pythonhosted.org/packages/5b/b0/9e394028deb3f6ce1bb294787036ad63a15a255ffdbd8aaa068e95f7f1b9/py-algorand-sdk-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "546677fae51b49527e3215405c4e2ef4", "sha256": "65d8feb145aed3ae5a11b66454d6bdd302d0d6e90ff6263b3711b6c051f83e37" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "546677fae51b49527e3215405c4e2ef4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29190, "upload_time": "2019-09-09T19:13:04", "url": "https://files.pythonhosted.org/packages/80/bd/b38cd2dcd21a664238b171ad2768629aa76d15270aa693e359711089f850/py_algorand_sdk-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48de0e8351cd0d3ff87a2f8fadf46993", "sha256": "30be69aa77f1388ef925c18e16d3a563cb02a02635d46a378820994e5a0052f9" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.5.tar.gz", "has_sig": false, "md5_digest": "48de0e8351cd0d3ff87a2f8fadf46993", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26494, "upload_time": "2019-09-09T19:13:06", "url": "https://files.pythonhosted.org/packages/d5/72/fd869f801b00a2c0201a65aecaedd6777e102890e83148c6448ff116ae1c/py-algorand-sdk-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "546677fae51b49527e3215405c4e2ef4", "sha256": "65d8feb145aed3ae5a11b66454d6bdd302d0d6e90ff6263b3711b6c051f83e37" }, "downloads": -1, "filename": "py_algorand_sdk-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "546677fae51b49527e3215405c4e2ef4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29190, "upload_time": "2019-09-09T19:13:04", "url": "https://files.pythonhosted.org/packages/80/bd/b38cd2dcd21a664238b171ad2768629aa76d15270aa693e359711089f850/py_algorand_sdk-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48de0e8351cd0d3ff87a2f8fadf46993", "sha256": "30be69aa77f1388ef925c18e16d3a563cb02a02635d46a378820994e5a0052f9" }, "downloads": -1, "filename": "py-algorand-sdk-1.0.5.tar.gz", "has_sig": false, "md5_digest": "48de0e8351cd0d3ff87a2f8fadf46993", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26494, "upload_time": "2019-09-09T19:13:06", "url": "https://files.pythonhosted.org/packages/d5/72/fd869f801b00a2c0201a65aecaedd6777e102890e83148c6448ff116ae1c/py-algorand-sdk-1.0.5.tar.gz" } ] }