README.md

# Hallpass SDK for Elixir

Elixir SDK for the [Hallpass](https://hallpass.org) agent identity and message proof protocol.

## Installation

Add to your `mix.exs`:

```elixir
def deps do
  [{:hallpass_sdk, "~> 0.1.0"}]
end
```

## Quick start

```elixir
km = HallpassSdk.Keys.generate_agent_key_material()

bundle = HallpassSdk.Messages.create_proof_bundle(%{
  principal_username: "alice",
  body: "Invoice #1234 approved",
  author_label: "Billing Agent",
  key_material: km
})

{:ok, result} = HallpassSdk.Client.verify_message(bundle)
```

## Modules

| Module | Description |
|---|---|
| `HallpassSdk.Keys` | Key generation, loading, DID derivation |
| `HallpassSdk.Jwt` | ES256 JWT signing and verification |
| `HallpassSdk.Messages` | Message proof bundle creation and local verification |
| `HallpassSdk.Challenges` | Agent challenge-response signing |
| `HallpassSdk.Delegation` | Delegation JWT signing |
| `HallpassSdk.Client` | Typed HTTP client for the Hallpass API |

## Environment variables

| Variable | Description |
|---|---|
| `HALLPASS_BASE_URL` | API base URL (default: `https://hallpass.org/api/v1`) |

## License

MIT