# ProofCarryingThought-SDK
[](https://github.com/Maverick0351a/ProofCarryingThought-SDK/actions/workflows/ci.yml)
[](https://pypi.org/project/proofcarryingthought-sdk/)
[](https://pypi.org/project/proofcarryingthought-sdk/)
[](LICENSE)
Minimal Proof-Carrying Thought (PCT) SDK: canonical bytes, Merkle, local CAS, optional Ed25519 signing, policy gates, and chain-of-custody.
## Install
- From PyPI:
pip install proofcarryingthought-sdk
- Optional extras (combine as needed):
pip install "proofcarryingthought-sdk[crypto]" # PyNaCl for Ed25519
pip install "proofcarryingthought-sdk[dcbor]" # cbor2 for canonical CBOR
- From source (editable):
- Base:
- pip install -e .
- Optional extras:
- pip install -e .[crypto] # PyNaCl for Ed25519
- pip install -e .[dcbor] # cbor2 for canonical CBOR
## Canonicalization
- Modes: auto (default, prefers dCBOR if installed), json (strict JSON), dcbor (requires cbor2)
- Programmatic: from pct_sdk import set_canonical_mode; set_canonical_mode("auto"|"json"|"dcbor")
- Env: set PCT_CANON_MODE=auto|json|dcbor
## Quick start
from pct_sdk import pct_wrap, verify
evidence = {"units_ok": True, "ocap_list": ["sandbox"]}
res = pct_wrap(lambda ev: {"result": "ok"}, include=["units_ok", "ocap_list"]) # noqa: E501
assert verify(res["pct_proof"], evidence)
With crypto:
from pct_sdk.sign import gen_keypair, sign, verify as sig_verify
sk_hex, vk_hex = gen_keypair()
sig_hex = sign(sk_hex, b"msg")
assert sig_verify(vk_hex, b"msg", sig_hex)
## CAS usage
from pct_sdk import cas
hid = cas.put({"hello": "world"})
obj = cas.get(hid)
## Tests
pytest
## Changelog
See CHANGELOG.md for release notes.
Raw data
{
"_id": null,
"home_page": null,
"name": "proofcarryingthought-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "cas, ed25519, merkle, pct, security, verification",
"author": null,
"author_email": "PCT <pct@example.com>",
"download_url": "https://files.pythonhosted.org/packages/1e/3b/e47cc9545d3ee784b7144faa7593aab93978b9a6001164af85962abf7178/proofcarryingthought_sdk-0.1.0.tar.gz",
"platform": null,
"description": "# ProofCarryingThought-SDK\n\n[](https://github.com/Maverick0351a/ProofCarryingThought-SDK/actions/workflows/ci.yml)\n[](https://pypi.org/project/proofcarryingthought-sdk/)\n[](https://pypi.org/project/proofcarryingthought-sdk/)\n[](LICENSE)\n\nMinimal Proof-Carrying Thought (PCT) SDK: canonical bytes, Merkle, local CAS, optional Ed25519 signing, policy gates, and chain-of-custody.\n\n## Install\n\n- From PyPI:\n\n\tpip install proofcarryingthought-sdk\n\n- Optional extras (combine as needed):\n\n\tpip install \"proofcarryingthought-sdk[crypto]\" # PyNaCl for Ed25519\n\tpip install \"proofcarryingthought-sdk[dcbor]\" # cbor2 for canonical CBOR\n\t\n- From source (editable):\n\n- Base:\n\t- pip install -e .\n- Optional extras:\n\t- pip install -e .[crypto] # PyNaCl for Ed25519\n\t- pip install -e .[dcbor] # cbor2 for canonical CBOR\n\n## Canonicalization\n\n- Modes: auto (default, prefers dCBOR if installed), json (strict JSON), dcbor (requires cbor2)\n- Programmatic: from pct_sdk import set_canonical_mode; set_canonical_mode(\"auto\"|\"json\"|\"dcbor\")\n- Env: set PCT_CANON_MODE=auto|json|dcbor\n\n## Quick start\n\nfrom pct_sdk import pct_wrap, verify\n\nevidence = {\"units_ok\": True, \"ocap_list\": [\"sandbox\"]}\nres = pct_wrap(lambda ev: {\"result\": \"ok\"}, include=[\"units_ok\", \"ocap_list\"]) # noqa: E501\nassert verify(res[\"pct_proof\"], evidence)\n\nWith crypto:\n\nfrom pct_sdk.sign import gen_keypair, sign, verify as sig_verify\nsk_hex, vk_hex = gen_keypair()\nsig_hex = sign(sk_hex, b\"msg\")\nassert sig_verify(vk_hex, b\"msg\", sig_hex)\n\n## CAS usage\n\nfrom pct_sdk import cas\nhid = cas.put({\"hello\": \"world\"})\nobj = cas.get(hid)\n\n## Tests\n\npytest\n\n## Changelog\n\nSee CHANGELOG.md for release notes.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Minimal Proof-Carrying Thought (PCT) SDK: canonical bytes, Merkle, CAS, optional Ed25519 signing, policy gates, and chain-of-custody.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/Maverick0351a/ProofCarryingThought-SDK",
"Repository": "https://github.com/Maverick0351a/ProofCarryingThought-SDK"
},
"split_keywords": [
"cas",
" ed25519",
" merkle",
" pct",
" security",
" verification"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7138f99b16d9283e3121419a11f1ac1aa57fc6ec1d758735aa45139800102972",
"md5": "6fc6a0c298bfb1de17e19839725fe7c6",
"sha256": "15ba6854f3672a51e2ea5f6bea6102b7c406407bb064cc9dd9eb600c15337999"
},
"downloads": -1,
"filename": "proofcarryingthought_sdk-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6fc6a0c298bfb1de17e19839725fe7c6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 12561,
"upload_time": "2025-09-08T02:54:49",
"upload_time_iso_8601": "2025-09-08T02:54:49.522336Z",
"url": "https://files.pythonhosted.org/packages/71/38/f99b16d9283e3121419a11f1ac1aa57fc6ec1d758735aa45139800102972/proofcarryingthought_sdk-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1e3be47cc9545d3ee784b7144faa7593aab93978b9a6001164af85962abf7178",
"md5": "f490d235aea1e10fe7d23b17604d9cc7",
"sha256": "8f12bd2accc739d799bfe4aa6acbc032fd3b88ae9c6826f845643a7a2c4f8d39"
},
"downloads": -1,
"filename": "proofcarryingthought_sdk-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "f490d235aea1e10fe7d23b17604d9cc7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 10150,
"upload_time": "2025-09-08T02:54:51",
"upload_time_iso_8601": "2025-09-08T02:54:51.099247Z",
"url": "https://files.pythonhosted.org/packages/1e/3b/e47cc9545d3ee784b7144faa7593aab93978b9a6001164af85962abf7178/proofcarryingthought_sdk-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-08 02:54:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Maverick0351a",
"github_project": "ProofCarryingThought-SDK",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "proofcarryingthought-sdk"
}