Get Started
Start building with Noxy in three simple steps. Create your app, send decision requests from your agent, route them to users, and execute based on their response.
Create & Fund Your App
Visit the Fund App page to create your app and fund it to get your unique API token.
Integrate Agent SDK
Install the Agent SDK (Node.js, Python, Go, or Rust) in your backend or agent system.
Integrate Client SDK
Add the Client SDK to your app (web, mobile, or bot).
Get Your API Token First
Before integrating any SDK, you must create and fund your app to receive your API token. This token is required for all agent SDKs to send decision requests.
Create & Fund App- 1
Agent Triggers Decision Request
Your agent detects a condition and proposes an action.
- 2
Noxy Routes the E2E Decision Request
Noxy delivers the request across channels: push, bot, other channels.
- 3
User Approves or Rejects
User receives a clear, actionable request: Approve → action proceeds, Reject → action is canceled.
- 4
Response Returns to Agent
The decision is sent back instantly to your agent, signed and verified.
- 5
Agent Executes Based on Outcome
Your agent executes action (if approved) or cancels/fallbacks (if rejected or timed out).
Example Integration
const noxy = await initNoxyClient({
endpoint: 'https://relay.noxy.network',
authToken: '__your-api-token__',
notificationTtlSeconds: 86400,
});
const proposedAction = {
kind: 'propose_tool_call',
tool: 'transfer_funds',
args: { to: '__your-burn-address__', amountWei: '1' },
title: 'Transfer 1 wei to the burn address',
summary: 'The agent is requesting approval to send 1 wei to the burn address.',
};
const resolution = await noxy.sendDecisionAndWaitForOutcome(__your-wallet-address__, proposedAction, {
maxWaitMs: 5 * 60 * 1000,
});
if (resolution?.outcome === NoxyHumanDecisionOutcome.APPROVED) {
// your agent should proceed the action
} else {
// your agent should abort the action
}
const noxy = await createNoxyClient({
identity: {
type: 'eoa',
address: account.address,
signer: async (data) =>
account.signMessage({ message: { raw: data } }),
},
network: {
relayNodesUrl: 'wss://relay.noxy.network',
appId: '__your-app-id__',
},
});
await noxy.on(async (decisionId, decision) => {
// show actionable decision requests in the UI
const isApproved = await showConfirmDialog(decision);
// send decision outcome to Noxy, which will be orchestrated to your agent
await noxy.submitDecisionOutcome({
decisionId,
outcome: isApproved ? NoxyDecisionOutcomeValues.APPROVE : NoxyDecisionOutcomeValues.REJECT,
receivedAt: Date.now(),
});
});