{"id":14529419,"url":"https://github.com/FACINGS/pyntelope","last_synced_at":"2025-09-02T00:31:26.753Z","repository":{"id":60985939,"uuid":"547300192","full_name":"FACINGS/pyntelope","owner":"FACINGS","description":"Minimalist python library to interact with antelope blockchains","archived":false,"fork":false,"pushed_at":"2025-03-17T17:25:32.000Z","size":397,"stargazers_count":11,"open_issues_count":4,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-17T18:31:58.806Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FACINGS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-07T13:06:40.000Z","updated_at":"2024-06-12T09:42:44.000Z","dependencies_parsed_at":"2024-09-05T00:02:12.551Z","dependency_job_id":"22e6cb6d-806f-4cc9-b738-c9a982cbbfa2","html_url":"https://github.com/FACINGS/pyntelope","commit_stats":{"total_commits":157,"total_committers":8,"mean_commits":19.625,"dds":"0.40764331210191085","last_synced_commit":"492bbdb6466a7be348b48b3d6f12fc521490264e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FACINGS/pyntelope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FACINGS%2Fpyntelope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FACINGS%2Fpyntelope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FACINGS%2Fpyntelope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FACINGS%2Fpyntelope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FACINGS","download_url":"https://codeload.github.com/FACINGS/pyntelope/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FACINGS%2Fpyntelope/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273213619,"owners_count":25065056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-05T00:00:59.651Z","updated_at":"2025-09-02T00:31:26.373Z","avatar_url":"https://github.com/FACINGS.png","language":"Python","funding_links":[],"categories":["Developer Resources"],"sub_categories":["Languages"],"readme":"\u003cdiv align=\"center\"\u003e\n    \n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"https://miro.medium.com/max/1400/1*5KEvJB1UBBsk_1ZTBtJfJA.png\"\u003e\n\u003c/p\u003e\n    \n*Minimalist python library to interact with antelope blockchain networks*\n \n![Test](https://github.com/FACINGS/pyntelope/actions/workflows/main_workflow.yml/badge.svg)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyntelope)\n![version](https://img.shields.io/pypi/v/pyntelope)\n![GitHub repo size](https://img.shields.io/github/repo-size/facings/pyntelope)\n![GitHub last commit](https://img.shields.io/github/last-commit/facings/pyntelope)\n\n\u003c/div\u003e\n\n# What is it?\n**pyntelope** is a python library to interact with Antelope blockchains.  \nIts main focus are server side applications.  \nThis library is heavily influenced by [µEOSIO](https://github.com/EOSArgentina/ueosio). Many thanks to them for the astonishing job!  \n\n\n# Main features\n- Send transactions\nIts main usage today is to send transactions to the blockchain\n- Statically typed\nThis library enforces and verifies types and values.\n- Serialization\n**pyntelope** serializes the transaction before sending to the blockchain. \n- Paralellization\nAlthough python has the [GIL](https://realpython.com/python-gil/) we try to make as easier as possible to paralellize the jobs.  \nAll data is as immutable and all functions are as pure as we can make them.  \n\n\n# Stability\nThis work is in alpha version. That means that we make constant breaking changes to its api.  \nAlso there are known (and, of course unknown) bugs and various limitations.  \nGiven that, we at [FACINGS](https://facings.io/) have been using this library in production for over an year now.  \nHowever we'd advise for you to fix its version when deploying to prod.  \n\n\n# Using\nJust `pip install pyntelope` and play around.  \n(we don't support, and have no plans to support [conda](https://docs.conda.io/en/latest/))  \nRather then starting with long docs, just a simple example:  \n\n\n## Use Send Message action\n```python\nimport pyntelope\n\n\nprint(\"Create Transaction\")\ndata=[\n    pyntelope.Data(\n        name=\"from\",\n        value=pyntelope.types.Name(\"me.wam\"), \n    ),\n    pyntelope.Data(\n        name=\"message\",\n         value=pyntelope.types.String(\"hello from pyntelope\"),\n    ),\n]\n\nauth = pyntelope.Authorization(actor=\"me.wam\", permission=\"active\")\n\naction = pyntelope.Action(\n    account=\"me.wam\", # this is the contract account\n    name=\"sendmsg\", # this is the action name\n    data=data,\n    authorization=[auth],\n)\n\nraw_transaction = pyntelope.Transaction(actions=[action])\n\nprint(\"Link transaction to the network\")\nnet = pyntelope.WaxTestnet()  # this is an alias for a testnet node\n# notice that pyntelope returns a new object instead of change in place\nlinked_transaction = raw_transaction.link(net=net)\n\n\nprint(\"Sign transaction\")\nkey = \"a_very_secret_key\"\nsigned_transaction = linked_transaction.sign(key=key)\n\n\nprint(\"Send\")\nresp = signed_transaction.send()\n\nprint(\"Printing the response\")\nresp_fmt = json.dumps(resp, indent=4)\nprint(f\"Response:\\n{resp_fmt}\")\n```\n\nThere are some other examples [here](./examples)\n\n\n# Known bugs\n### multi-byte utf-8 characters can not be serialized\n- Serialization of multi-byte utf-8 characters is somewhat unpredictable in the current implementation, therfore any String input containing multi-utf8 byte characters will be blocked for the time being.\n\n\n# Contributing\nAll contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.  \nIf you find a bug, just open a issue with a tag \"BUG\".  \nIf you want to request a new feature, open an issue with a tag \"ENH\" (for enhancement).  \nIf you feel like that our docs could be better, please open one with a tag \"DOC\".  \nAlthough we have the next few steps already planned, we are happy to receive the community feedback to see where to go from there.  \n\n\n### Development\nIf you want to develop for **pyntelope**, here are some tips for a local development environment.\nWe'll be more then happy to receive PRs from the community.\nAlso we're going full [Black](https://black.readthedocs.io/en/stable/) and enforcing [pydocstyle](http://www.pydocstyle.org/en/stable/) and [isort](https://pypi.org/project/isort/) (with the limitations described in the .flake8 file)\n\n#### Setup\nCreate a virtual env\nEnsure the dependencies are met:\n```\npip install poetry\npoetry install\n```\n\n#### Run tests\nThe tests are run against a local network.  \nBefore running the tests you'll need to `docker-compose up` to create the local network, users and contracts used in the tests.  \nWhen ready, just:\n```\npytest\n```\nSome tests are marked as \"slow\".  \nYou can skip them and run the test suite faster with:\n```\npytest -m \"not slow\"\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFACINGS%2Fpyntelope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFACINGS%2Fpyntelope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFACINGS%2Fpyntelope/lists"}