proofcarryingthought-sdk


Nameproofcarryingthought-sdk JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryMinimal Proof-Carrying Thought (PCT) SDK: canonical bytes, Merkle, CAS, optional Ed25519 signing, policy gates, and chain-of-custody.
upload_time2025-09-08 02:54:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
keywords cas ed25519 merkle pct security verification
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ProofCarryingThought-SDK

[![CI](https://github.com/Maverick0351a/ProofCarryingThought-SDK/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Maverick0351a/ProofCarryingThought-SDK/actions/workflows/ci.yml)
[![PyPI version](https://img.shields.io/pypi/v/proofcarryingthought-sdk.svg)](https://pypi.org/project/proofcarryingthought-sdk/)
[![Python versions](https://img.shields.io/pypi/pyversions/proofcarryingthought-sdk.svg)](https://pypi.org/project/proofcarryingthought-sdk/)
[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](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[![CI](https://github.com/Maverick0351a/ProofCarryingThought-SDK/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Maverick0351a/ProofCarryingThought-SDK/actions/workflows/ci.yml)\n[![PyPI version](https://img.shields.io/pypi/v/proofcarryingthought-sdk.svg)](https://pypi.org/project/proofcarryingthought-sdk/)\n[![Python versions](https://img.shields.io/pypi/pyversions/proofcarryingthought-sdk.svg)](https://pypi.org/project/proofcarryingthought-sdk/)\n[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](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"
}
        
Elapsed time: 0.78469s