# 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