defmodule Layr8 do @moduledoc """ Elixir SDK for the Layr8 decentralized identity-native messaging network. Layr8 enables agents to communicate over DIDComm v2 via a Phoenix Channel WebSocket connection to a Layr8 cloud-node. ## Quick Start {:ok, client} = Layr8.Client.start_link(%{ node_url: "wss://node.example.com/plugin_socket/websocket", api_key: System.fetch_env!("LAYR8_API_KEY") }) Layr8.Client.handle(client, "https://example.com/echo/1.0/request", fn msg -> {:reply, %Layr8.Message{ type: "https://example.com/echo/1.0/response", body: msg.body }} end) :ok = Layr8.Client.connect(client) ## Configuration See `Layr8.Config` for configuration options and environment variables. ## Modules - `Layr8.Client` — main entry point, GenServer lifecycle - `Layr8.Config` — configuration resolution and URL normalization - `Layr8.Message` — DIDComm message struct, marshal/parse - `Layr8.Handler` — handler registry - `Layr8.Channel` — Phoenix Channel WebSocket transport - `Layr8.REST` — HTTP client for REST API - `Layr8.Credentials` — W3C Verifiable Credential operations - `Layr8.Presentations` — W3C Verifiable Presentation operations - `Layr8.Error` and friends — exception types """ end