One Elixir module. Every surface, one runtime.

Runtime, agent harness, and payment rails run on OTP. Render to terminal, LiveView, SSH, MCP, Telegram, Watch, and Speech.

$ curl -fsSL https://raxol.io/install | bash
settle.ex · quote, gate, sign, poll -- no funds rendering to the terminal
defmodule Settle do
  use Raxol.Core.Runtime.Application
  alias Raxol.Payments.Actions.Payments, as: P
  alias RaxolPlayground.SettlementSandbox, as: Sandbox
  @payment %{
    amount: "25.00", from_chain_id: 8453,
    to_chain_id: 42_161, settlement: "stealth",
    trust_score: 25, slippage_bps: 50,
    min_to_amount: "24900000"
  }
  def init(_) do
    {:ok, demo} = Sandbox.start(@payment)
    {:ok, intent} =
      P.ExecuteXochiIntent.call(demo.payment, demo.context)
    {:ok, receipt} = P.PollXochiStatus.call(
      %{intent_id: intent.intent_id}, demo.context)
    signed = Sandbox.Wallet.signatures()
    {:error, denied} = P.ExecuteXochiIntent.call(
      %{demo.payment | amount: "75.00"}, demo.context)
    %{demo: demo, intent: intent, receipt: receipt,
      denied: denied,
      safe?: Sandbox.Wallet.signatures() == signed,
      t: 0}
  end
  def update(:tick, m), do: {%{m | t: m.t + 1}, []}
  def update(_, m), do: {m, []}
  def subscribe(_), do: [subscribe_interval(200, :tick)]
  def view(m),
    do: column(do: Enum.map(Sandbox.lines(m), &text/1))
end
models Claude (subscription, via CLI) Grok (subscription, via CLI) Anthropic (Claude) OpenAI Kimi (Moonshot) OpenRouter LongCat (Meituan) DeepSeek Proton Lumo Ollama (local) LM Studio (local) LLM7 Cursor acp editors Zed JetBrains neovim Emacs VS Code agent commerce Virtuals Protocol networks Ethereum Optimism Polygon Robinhood Chain Arc Base Arbitrum One Tron