Primitive/formation4 min read

Introducing /formation: Company formation for AI agents

Form a US LLC from your AI agent via KYC, Stripe Checkout, and Doola filing. Registered agent, state filing, and EIN application are included in the published formation fee; the Company becomes the substrate for cards, domains, and email.

Primitive/formation
TL;DR
  • /formation US LLC incorporation via Doola after KYC, checkout payment, and execute step (per published API)
  • $249 formation fee (published) Stripe Checkout covers Doola formation, state filing, registered agent, EIN application, and documents
  • Two-step API POST /v1/formation returns checkout_url; after payment, POST /v1/formation/:id/submit submits to Doola
  • Composes with /kyc, /cards, /domain a Company formed via /formation is the substrate other primitives attach to
  • Entity type in public docs centers on LLC follow the formation guide for supported states and parameters
  • Built on Company → Employee → Primitive the resulting Company is a first-class runtime object, not a PDF

Today we're launching /formation — a company formation primitive that lets your AI agent drive US LLC incorporation through the published flow: KYC validation, Stripe Checkout for the formation fee, then submission to Doola. The Company Formation guide is the source of truth for steps, statuses, and pricing. Use the quickstart to register an agent and call your first primitives; use the formation guide for checkout, execute, and documents.

The problem: agents can't fill out paper forms

Forming a company is the precondition for almost every autonomous business. A legal entity is what holds the bank account, owns the domain, signs the contracts, and absorbs the liability. But the formation process was built for humans with notarized signatures and physical mailboxes. Agents can't sign a paper. They can't receive a letter from the Secretary of State.

Existing programmatic formation tools — Stripe Atlas, Doola, Firstbase — all require a human founder in the loop. The agent is, at best, an assistant.

Until now. With /formation, the filing is orchestrated on behalf of an Employee. The Employee is the verified principal (via /kyc). Registered agent service and EIN application are included in the published formation fee (see the formation guide), and the resulting Company is a first-class object in the runtime — not a PDF in someone's email.

How /formation works

The workflow is:

  1. Verify — complete KYC for all founders via naive verification start --members '[...]'. Each founder completes the Footprint-hosted flow until ready_for_formation is true.
  2. Submit (creates checkout) — run naive formation submit with verification_id, state, NAICS id, description, and name options. The API returns checkout_url and awaiting_payment until the fee is paid (see the formation guide).
  3. Execute — after Stripe confirms payment, run naive formation execute <formation-id> (API: POST /v1/formation/:id/submit) so verified PII is pulled from the Footprint vault and the filing is sent to Doola.
  4. Compose — attach the Company to other primitives: /cards, /domain, /brand, /email, etc.

The Company persists for the life of your account and follows the Company → Employee → Primitive model that every other Naïve primitive plugs into.

CLI: submit, pay, execute

# 1) NAICS codes
naive formation naics-codes

# 2) Submit — returns checkout URL ($249 per published docs)
naive formation submit \
  --verification-id "3dcde53f-abaa-4bb6-a5b5-2d704fad6c19" \
  --state WY \
  --entity-type LLC \
  --naics "2o8v0kcaCWyPyi3LJFsCiTCFSyk" \
  --description "Faceless YouTube business" \
  --names '[{"name":"Lumen Letters","entity_type_ending":"LLC"}]' \
  --address '{"line1":"123 Main St","city":"San Francisco","state":"CA","postal_code":"94105","country":"US","phone":"+14155551234"}'

# 3) Operator completes Stripe Checkout from the returned URL

# 4) After payment — submit to Doola
naive formation execute <formation_id>

If anything's missing — incomplete KYC, invalid NAICS code, or invalid fields — the CLI or API returns a structured error with recovery steps. If checkout expires, the formation guide documents retry-payment / naive formation equivalents.

API: two steps after KYC

Step 1 — POST /v1/formation validates KYC and returns a checkout session (not an immediate Doola company id):

const res = await fetch("https://api.usenaive.ai/v1/formation", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    verification_id: "3dcde53f-abaa-4bb6-a5b5-2d704fad6c19",
    entity_type: "LLC",
    state: "WY",
    naics_code_id: "2o8v0kcaCWyPyi3LJFsCiTCFSyk",
    description: "Faceless YouTube business",
    name_options: [
      { name: "Lumen Letters", entity_type_ending: "LLC" },
    ],
    mailing_address: {
      line1: "123 Main St", city: "San Francisco",
      state: "CA", postal_code: "94105", country: "US",
      phone: "+14155551234",
    },
  }),
});
const formation = await res.json();
// formation.id, formation.status (e.g. awaiting_payment), formation.checkout_url, formation.next_step

Step 2 — after payment_status is paid, execute:

await fetch(`https://api.usenaive.ai/v1/formation/${formation.id}/submit`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.NAIVE_API_KEY}` },
});

The verification_id must reference a completed KYC verification where ready_for_formation is true — that ensures all founders have passed identity verification via /kyc.

EIN and documents

The published formation fee includes the EIN application and legal documents (e.g. Articles of Organization, EIN letter) when the filing completes — see the formation guide for status names (submitted, formation_completed, etc.) and the documents list/download flow.

naive formation status <formation_id>
naive formation documents <formation_id>
naive formation download <formation_id> <document_id>

If the formation fails, the formation guide covers unpaid vs paid failure paths, duplicate formations, and when to contact support.

Registered agent

Registered agent service is bundled in the published $249 formation fee alongside Doola formation and state filing (see the formation guide). Naïve orchestrates identity, payment, and runtime objects; the licensed formation partner handles the filing.

What you can build with /formation

Spawn a fleet of single-purpose LLCs — Separate LLCs per agent business so liability, taxes, and banking stay isolated. Compose /formation with /cards and /brand for the stack after the Company exists.

Provision the legal substrate for autonomous content brands — Form an LLC, attach a domain via /domain, add /brand and email when ready — the Employee operates on a real entity.

Prototype regulated-industry agents in a sandboxed entity — Stand up a disposable LLC for a high-risk experiment without commingling it with your operating entity.

Hand off ownership at exit — A Naïve Company is a real legal entity. Selling an autonomous business means transferring membership interests in an actual company, not a YAML file.

Run workflows that need a real EIN — Many vendors and filings expect an EIN; the formation package includes the EIN application per the published docs.

Get started

Frequently Asked Questions
What is /formation?+
/formation is Naïve's company formation primitive. Per the published formation guide, it validates KYC, collects the formation fee via Stripe Checkout, then submits a US LLC filing to Doola. The resulting Company is a first-class object in the Naïve runtime that other primitives like /cards, /domain, and /email attach to.
How does /formation work?+
Complete KYC so ready_for_formation is true. Run naive formation naics-codes, then naive formation submit with verification_id, state, naics code, description, and name options — that creates a Stripe Checkout URL (step 1). After the operator pays, run naive formation execute <formation-id> to submit to Doola (step 2). Track status with naive formation status and fetch documents when formation_completed.
What states and entity types are supported?+
The public formation documentation describes US LLC incorporation through Doola with a state code such as WY or DE. Use GET /v1/formation/naics-codes and the formation guide for current parameters; do not assume entity types beyond what the docs list.
How much does company formation cost?+
The published formation guide states a $249 USD fee paid via Stripe Checkout, covering Doola formation service, state filing fees, registered agent, EIN application, and required documents. See https://usenaive.ai/docs/getting-started/formation for the authoritative breakdown.
What's the difference between /formation and Stripe Atlas or Doola?+
Stripe Atlas and Doola market to human founders. /formation exposes the same filing path as an API and CLI step inside Naïve: KYC-gated submit, hosted payment, then execute to Doola, with formation status and documents on the Company object for the rest of the runtime.
Can an AI agent legally form a company?+
Yes, when the filing principal is a properly verified human or entity Employee. Naïve's /formation flow ties every formation to a /kyc-verified Employee, satisfying state filing requirements and FinCEN beneficial ownership obligations. Naïve operates as an orchestration layer; state filings are handled by a licensed formation partner.
How do I get started with /formation?+
Install the CLI with npm install -g @usenaive-sdk/cli, register with naive register, complete KYC with naive verification start, then follow the Company Formation guide for NAICS selection, naive formation submit, checkout payment, and naive formation execute. The quickstart (https://usenaive.ai/docs/getting-started/quickstart) covers agent registration and your first primitives; incorporation details are in the formation guide.
SD
Sean DorjeCo-founder

Co-founder of Naïve. Previously building the autonomous business stack.

@seandorje