Current section
Files
Jump to
Current section
Files
lib/hallpass_sdk.ex
defmodule HallpassSdk do
@moduledoc """
Elixir SDK for the Hallpass agent identity and message proof protocol.
Provides agent key material generation, compact JWT signing/verification,
message proof bundles, challenge-response flows, and an HTTP client for
the Hallpass API.
## Quick start
# Generate agent key material
key_material = HallpassSdk.Keys.generate()
# Sign and verify a compact JWT
{:ok, jwt} = HallpassSdk.Jwt.sign(%{"iss" => key_material.did}, key_material.private_jwk)
{:ok, claims, _header} = HallpassSdk.Jwt.verify(jwt, key_material.public_jwk)
# Create a message proof bundle
bundle = HallpassSdk.Messages.create_proof_bundle(%{
principal_username: "alice",
author_label: "my-agent",
body: "Hello from Elixir",
key_material: key_material
})
"""
@version Mix.Project.config()[:version]
@default_base_url "https://hallpass.org"
@spec version() :: String.t()
def version, do: @version
@spec default_base_url() :: String.t()
def default_base_url, do: @default_base_url
end