Two lines to a living agent.
From zero to embedded.
Already have an agent id? Paste two lines of HTML and you’re live. No build step.
GoConfigure avatar, voice, memory and paid skills in code, then deploy programmatically.
GoThe embed quickstart.
<agent-3d> tag anywhere. It’s a real web component — isolated CSS, lazy-loaded, CDN-hosted, framework-agnostic.<!-- 1. Load the embed runtime once, anywhere in <head> or before </body> -->
<script src="https://cdn.haloflow.app/embed.js" async></script>
<!-- 2. Drop the agent wherever you want it to live -->
<agent-3d
agent-id="HALO-bacff13e-uPL"
mode="inline"
background="dark"
nameplate
></agent-3d>agent-idstring (required)The published agent id, e.g. HALO-bacff13e-uPL. Found on the agent page or dashboard.mode'inline' | 'widget'inline renders in flow; widget docks a floating launcher in the corner.background'none' | 'dark' | 'light'Stage backdrop. Use none to inherit the host page background.nameplatebooleanShow the agent name + status pill under the stage.voicebooleanEnable push-to-talk voice in/out (ElevenLabs + LiveKit). Defaults to on.Configure, skill, deploy.
deploy(). Available for Node and Python.// npm i @haloflow/sdk
import { Agent } from '@haloflow/sdk';
// Configure an agent from an existing avatar
const agent = new Agent({
avatarId: 'HALO-bacff13e',
voice: 'elevenlabs:josh',
memory: 'persistent',
});
// Attach a paid, callable skill
agent.skill('deep-research', {
price: '2.50 USDC',
handler: async (query) => {
// TODO: wire your own tool / model here
return { answer: '…' };
},
});
// Publish — returns the live agent id + embed snippet
const { agentId, embed } = await agent.deploy();
console.log(agentId); // HALO-bacff13e-uPLnew Agent({ … })Set avatarId, voice, and memory: persistent for cross-device recall or session for ephemeral.
agent.skill(name, opts)Register a callable skill with an optional USDC price; gate any tool behind pay-per-call.
await agent.deploy()Publish and get back a live agentId plus a ready-to-paste embed snippet.
Everything over REST.
/v1/agents/v1/agents/v1/chat/v1/avatars/:idAgents as tools.
haloflow/mcpModel Context Protocol server — expose any agent and its skills as tools to MCP-aware clients.
/v1/a2a/:agentIdAgent-to-Agent endpoint — let other agents discover, negotiate, and call this one directly.
{
"mcpServers": {
"haloflow": {
"type": "http",
"url": "https://api.haloflow.app/mcp",
"headers": { "Authorization": "Bearer ${HALO_KEY}" }
}
}
}Pay-per-call, settled in USDC.
402 Payment Required, the caller pays in USDC, and the same request unlocks. 0% platform fee during open beta.# 1. Call a paid skill without payment
> POST /v1/chat { "agentId": "HALO-…", "message": "run deep-research" }
< 402 Payment Required
< X-Payment: usdc; amount=2.50; to=haloflow.sol; chain=solana
# 2. Pay, then retry with the receipt
> POST /v1/chat
> X-Payment-Receipt: <signed-tx-signature>
< 200 OK { "reply": "…", "charged": "2.50 USDC" }Price each skill or message from $0.001 to $100. Instant settlement on-chain.
0% platform fee during open beta — set your price and keep every cent.
Receive at yourname.haloflow.sol; gas absorbed, no wallet UX for callers.