Skip to main content
An agent profile is what Naïve gives every agent: its own verified business identity (KYC/EIN/formation), a spend-capped card, an inbox and phone number, and (optionally) a place to run — provisioned per tenant, governed on every action, and instantly revocable. The bundle is the product: identity + money + comms + runtime as one governed unit.

Provision an agent profile

import { Naive } from "@usenaive-sdk/server";
const naive = new Naive({ apiKey: process.env.NAIVE_SECRET_KEY! });

const op = await naive.forUser(tenant.id).provision("sdr", {
  idempotencyKey: `op:${tenant.id}`,            // retried webhook → same agent profile
  overrides: {
    identity: { legalName: tenant.company },
    comms: { email: { domain: `mail.${tenant.domain}` } },
  },
});
// op.status === "provisioning" — entity formation / KYB / A2P / DNS are async.
Provisioning is idempotent on idempotencyKey: a duplicate signup webhook resumes the same agent profile and never forms a second entity or issues a second card.

Lifecycle

provisioning → verifying → active
                    ↘ needs_action (KYB doc, A2P rejection) → verifying
                    ↘ failed → reconciled
                    ↘ revoked
await op.refresh();
if (op.status === "active") {
  const tools = await op.tools();   // governed toolset, ready for your agent
}

Use the agent profile’s tools (anywhere)

The agent profile’s tools are handles, never raw secrets. Drop them into your own agent loop, a Vercel Eve tool, a LangGraph node, or a Naïve-hosted microVM — every regulated action routes through the governance gateway.
const tools = await op.tools();
await theirAgent.run({ tools, task: "Resolve ticket #492. Refund if policy allows." });

Revoke

await op.revoke();   // freeze the card, halt sends, rotate credentials, tear down runtime
Revoke is absolute and applies mid-action. Revoking a parent agent profile kills the whole multi-agent system.

REST / CLI / MCP

SurfaceProvisionRevoke
RESTPOST /v1/users/:user_id/agent-profilesPOST /v1/agent-profiles/:id/revoke
CLInaive agent profiles provision <role> --user <tenant>naive agent profiles revoke <id>
MCPnaive_provision_agent_profilenaive_revoke_agent_profile
See Infrastructure as code for declaring agent roles and Runtime & hosting for where the agent runs.