{"id":22705249,"url":"https://github.com/blockstack-packages/blockstack-profiles-py","last_synced_at":"2026-03-17T19:23:51.115Z","repository":{"id":57415688,"uuid":"52374121","full_name":"blockstack-packages/blockstack-profiles-py","owner":"blockstack-packages","description":"Blockstack profile creation and verification tools","archived":false,"fork":false,"pushed_at":"2017-03-06T20:37:04.000Z","size":76,"stargazers_count":9,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-08T16:54:19.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/blockstack-packages.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}},"created_at":"2016-02-23T16:35:10.000Z","updated_at":"2024-01-19T10:23:58.000Z","dependencies_parsed_at":"2022-09-01T18:22:12.911Z","dependency_job_id":null,"html_url":"https://github.com/blockstack-packages/blockstack-profiles-py","commit_stats":null,"previous_names":["blockstack/blockstack-profiles-py"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockstack-packages%2Fblockstack-profiles-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockstack-packages%2Fblockstack-profiles-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockstack-packages%2Fblockstack-profiles-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockstack-packages%2Fblockstack-profiles-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blockstack-packages","download_url":"https://codeload.github.com/blockstack-packages/blockstack-profiles-py/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248703195,"owners_count":21148116,"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","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-12-10T09:09:48.984Z","updated_at":"2026-03-17T19:23:46.075Z","avatar_url":"https://github.com/blockstack-packages.png","language":"Python","readme":"# Blockstack Profiles Python\n\n[![CircleCI](https://img.shields.io/circleci/project/blockstack/blockstack-profiles-py/master.svg)](https://circleci.com/gh/blockstack/blockstack-profiles-py)\n[![PyPI](https://img.shields.io/pypi/v/blockstack-profiles.svg)](https://pypi.python.org/pypi/blockstack-profiles/)\n[![PyPI](https://img.shields.io/pypi/dm/blockstack-profiles.svg)](https://pypi.python.org/pypi/blockstack-profiles/)\n[![PyPI](https://img.shields.io/pypi/l/blockstack-profiles.svg)](https://pypi.python.org/pypi/blockstack-profiles/)\n[![Slack](http://slack.blockstack.org/badge.svg)](http://slack.blockstack.org/)\n\n### Installation\n\n```bash\n$ pip install blockstack-profiles\n```\n\nIf you have any trouble with the installation, see [the troubleshooting guide](/troubleshooting.md) for guidance on common issues.\n\n### Importing\n\n```python\nfrom blockstack_profiles import (\n  sign_token, wrap_token, sign_token_records,\n  validate_token_record, get_profile_from_tokens,\n  make_zone_file_for_hosted_data,\n  resolve_zone_file_to_profile\n)\n```\n\n### Creating Profiles\n\n```python\nprofile = { \"name\": \"Naval Ravikant\", \"birthDate\": \"1980-01-01\" }\nprofile_components = [\n    {\"name\": \"Naval Ravikant\"},\n    {\"birthDate\": \"1980-01-01\"}\n]\n```\n\n### Tokenizing Profiles\n\n```python\ntoken_records = sign_token_records(profile_components, \"89088e4779c49c8c3210caae38df06193359417036d87d3cc8888dcfe579905701\")\n```\n\n### Verifying Token Records\n\n#### Verifying Against Public Keys\n\n```python\npublic_key = \"030589ee559348bd6a7325994f9c8eff12bd5d73cc683142bd0dd1a17abc99b0dc\"\ndecoded_token = verify_token_record(token_records[0], public_key)\n```\n\n#### Verifying Against Addresses\n\n```python\naddress = \"1KbUJ4x8epz6QqxkmZbTc4f79JbWWz6g37\"\ndecoded_token = verify_token_record(token_records[0], address)\n```\n\n### Recovering Profiles\n\n```python\nprofile = get_profile_from_tokens(profile_tokens, \"02f1fd79dcd51bd017f71546ddc0fd3c8fb7de673da8661c4ceec0463dc991cc7e\")\n```\n\n```\n\u003e\u003e\u003e print profile\n{\n  \"name\": \"Naval Ravikant\", \n  \"birthDate\": \"1980-01-01\"\n}\n```\n\n### Creating Zone Files\n\n```python\nzone_file = make_zone_file_for_hosted_data(\"naval.id\", \"https://mq9.s3.amazonaws.com/naval.id/profile.json\")\n```\n\n```\n$ORIGIN naval.id\n$TTL 3600\n@ IN URI \"https://mq9.s3.amazonaws.com/naval.id/profile.json\"\n```\n\n### Resolving Zone Files to Profiles\n\n```python\nprofile = resolve_zone_file_to_profile(zone_file)\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockstack-packages%2Fblockstack-profiles-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblockstack-packages%2Fblockstack-profiles-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockstack-packages%2Fblockstack-profiles-py/lists"}