Metadata-Version: 2.4
Name: vercre-sdk
Version: 1.0.0
Summary: Python SDK for the VERCRE Verifiable Credentials API
Project-URL: Homepage, https://vercre.vectorguardlabs.com
Project-URL: Documentation, https://vercre.vectorguardlabs.com/docs/sdk
Project-URL: Repository, https://github.com/pavondunbar/Verified-Credentials-SDK
Project-URL: Issues, https://github.com/pavondunbar/Verified-Credentials-SDK/issues
Author: Pavon Dunbar
License-Expression: MIT
Keywords: api-client,did,sdk,vercre,verifiable-credentials,w3c
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: httpx<1.0,>=0.25.0
Requires-Dist: pydantic<3.0,>=2.0
Provides-Extra: async
Requires-Dist: anyio>=4.0; extra == 'async'
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Description-Content-Type: text/markdown

# vercre-sdk

Python SDK for the [VERCRE](https://vercre.vectorguardlabs.com) Verifiable Credentials API.

## Installation

```bash
pip install vercre-sdk
```

## Quick Start

```python
from vercre_sdk import VercreClient

client = VercreClient(
    api_key="vercre_admin_your_key_here",
    base_url="https://api.vercre.io",
)

# Issue a credential
credential = client.issue_credential(
    issuer_did="did:key:z6Mk...",
    subject_did="did:key:z6Mp...",
    credential_type="KYCBasic",
    claims={"name": "Alice Johnson", "country": "US"},
)
print(f"Issued: {credential.credential_id}")

# Verify a credential
result = client.verify_credential(credential=credential.credential)
print(f"Valid: {result.valid}, Decision: {result.compliance_decision}")
```

## Async Usage

```python
import asyncio
from vercre_sdk import AsyncVercreClient

async def main():
    async with AsyncVercreClient(api_key="vercre_admin_xxx") as client:
        result = await client.verify_credential(credential=my_credential)
        print(result.compliance_decision)

asyncio.run(main())
```

## Error Handling

```python
from vercre_sdk import VercreClient, RateLimitError, AuthenticationError

client = VercreClient(api_key="...")

try:
    result = client.verify_credential(credential=cred)
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after}s")
except AuthenticationError:
    print("Invalid API key")
```

## Available Methods

### Credentials
- `issue_credential()` - Issue a new verifiable credential
- `verify_credential()` - Verify a credential with compliance scoring
- `revoke_credential()` - Revoke a credential
- `get_credential_status()` - Check on-chain attestation status
- `get_credential()` - Look up credential by ID
- `list_credentials()` - List credentials by subject DID

### Verification
- `verify_presentation()` - Verify a W3C Verifiable Presentation

### Issuers
- `get_issuer()` - Get issuer details
- `list_issuers()` - List registered issuers
- `check_issuer_can_issue()` - Check credential type authorization

### Disputes
- `file_dispute()` - File a dispute against a credential
- `get_dispute()` - Get dispute details
- `list_disputes()` - List disputes

### Reputation
- `get_reputation()` - Get issuer reputation score
- `submit_feedback()` - Submit verifier feedback

### Webhooks
- `register_webhook()` - Register a webhook endpoint
- `list_webhooks()` - List registered webhooks
- `delete_webhook()` - Remove a webhook

### Billing
- `get_subscription()` - Get current plan
- `get_usage()` - Get usage and remaining quota
- `subscribe()` - Change billing plan
- `get_billing_portal_url()` - Self-service billing management

### Keys
- `rotate_key()` - Rotate signing key for a DID
- `list_key_versions()` - List key version history

## License

MIT
