# `Layr8`
[🔗](https://github.com/layr8/elixir_sdk/blob/main/lib/layr8.ex#L1)

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

---

*Consult [api-reference.md](api-reference.md) for complete listing*
