SDKs

SDKs Overview

Two families: Agent SDKs route encrypted decisions from your backend, and Client SDKs receive them on user-facing surfaces. Pick one of each.

Connectors

Already building with LangGraph or LangChain? Skip the boilerplate — the connectors wrap the Python Agent SDK as a graph node or HITL middleware so your agent pauses on interrupt(), fans the approval out to every registered device, and resumes from a webhook.

Prefer to wire decisions yourself? Pick an Agent SDK below and call send_decision directly.

Agent SDKs

Agent SDKs live on your server. They wrap the relay's Agent API with idiomatic types, perform the per-device post-quantum encryption locally, and provide a one-call sendDecisionAndWaitForOutcome helper.

All Agent SDKs share the same surface:

MethodPurpose
initNoxyAgentClient(config)Construct the client. Loads the post-quantum primitives.
sendDecision(identityId, payload)Route an encrypted decision to every device of the identity.
getDecisionOutcome({decisionId, identityId})Single outcome poll.
waitForDecisionOutcome(options)Backoff loop until terminal or timeout.
sendDecisionAndWaitForOutcome(identityId, payload, options?)Convenience — send + wait in one call.
getQuota()Current quota for your application.

Client SDKs

Client SDKs live on user-facing surfaces. They register a device once with the relay using your APP_SIGNING_SECRET, then receive encrypted decisions on an open stream and submit outcomes back.

All Client SDKs share the same shape:

MethodPurpose
createNoxyClient(options) / initialize()Load or create the device, connect, authenticate.
on(handler)Receive decrypted decisions; handler decides UI.
submitDecisionOutcome / sendDecisionOutcomePublish APPROVE or REJECT for a decision id.
rotateKeys()Generate fresh device keys, publish new public keys.
revokeDevice()Remove the device from the relay.
close()Disconnect cleanly.

Example projects

Reference agents live in the official noxy-network/agent-examples repository. Each is a self-contained project with its own README and .env.example — clone it, configure, and run in demo or live mode.

  • Sale Trigger Agent — Python e-commerce/marketing agent that watches competitor sales via Tavily search. When it spots a price drop worth reacting to, it routes a promotional email through Noxy and only sends to customers after you approve. Built on the LangGraph connector (langgraph-noxy + noxy-sdk).
  • Liquidation Sentinel Agent — Node.js (TypeScript) 24/7 Aave v3 health-factor watchdog on Ethereum or Base. When your position drifts into danger, it drafts a rescue plan and Noxy asks you to approve before any repay or supply transaction is broadcast. Uses the Node.js SDK (send decision + poll for outcome).
  • Yield Rebalancer Agent — Node.js (TypeScript) cross-protocol lending yield scanner via DeFiLlama. It compares net APY after gas and friction, then routes a rebalance proposal through Noxy and only moves funds on-chain after you approve. Uses the Node.js SDK (send decision + poll for outcome).

Picking the right pair

If your agent is in…And your users are on…Recommended pair
Node.js / TypeScriptWebNode.js SDK + Browser SDK
PythoniOS / AndroidPython SDK + iOS SDK / Android SDK
Go / RustTelegramGo SDK or Rust SDK + Telegram Bot SDK
AnythingMultiple surfacesAny Agent SDK; install Client SDKs on each surface — outcomes are unified per identity.