- ›
/llc— register a US LLC or Delaware C-corp programmatically from your agent - ›
EIN included— IRS EIN issued in 24–48 hours via the same call, no separate filing - ›
Registered agent included— every formation gets a Naïve-managed registered agent in the state of formation - ›
Composes with /kyc, /cards, /domain, /brand— a Company formed via /llc is the substrate every other primitive attaches to - ›
All 50 states + DE C-corp— choose state and entity type at call time - ›
Built on Company → Employee → Primitive— the resulting Company is a first-class runtime object, not a PDF
Today we're launching /llc — a primitive that lets your AI agent register a real US legal entity in one call. File the formation, get a registered agent, request an EIN, and end up with a Company an Employee can immediately operate inside Naïve's runtime. The quickstart takes you from nv_sk_... to formed Company in under five minutes.
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 /llc, the entity itself is created on behalf of an Employee. The Employee is the verified principal (via /kyc), Naïve is the registered agent of record, and the resulting Company is a first-class object in the runtime — not a PDF in someone's email.
How /llc works
The workflow is three steps:
- Verify — complete KYC for all founders via
naive verification start --members '[...]'. Each founder opens their Footprint-hosted link to verify identity. - Form — once
ready_for_formationis true, runnaive formation submit --verification-id <id> --state WY --naics <code> --description "..." --names '[...]' --address '{...}'. Naïve files the formation via Doola. - Compose — attach the Company to other primitives. Issue virtual cards with
/cards. Buy a domain with/domain. Generate a brand kit with/brand.
The Company persists for the life of your account and follows the Company → Employee → Primitive model that every other Naïve primitive plugs into.
Two ways to form a company: prompt or code
1. Natural language
naive formation submit \
--verification-id "3dcde53f-abaa-4bb6-a5b5-2d704fad6c19" \
--state WY \
--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"}'
The CLI submits the formation via Doola, pulling verified PII from the Footprint vault automatically. If anything's missing — incomplete KYC, invalid NAICS code — the CLI returns a structured error with recovery steps.
2. Code
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, formation.doola_company_id
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 issuance, included
Every /llc call automatically opens an EIN job with the IRS. Most resolve inside 48 hours; some pull through in minutes. You don't make a second call. The EIN appears on the Company object when ready, and a webhook fires.
# Check formation status
naive formation status <formation_id>
# List formation documents when ready
naive formation documents <formation_id>
# Download Articles of Organization
naive formation download <formation_id> <document_id>
If the formation fails — usually a name conflict or state rejection — the status updates to failed with a structured error from Doola. You can re-submit with corrected name options.
Registered agent, included
Every Company formed through /llc gets a Naïve-managed registered agent in the state of formation. Mail and service of process are scanned, OCR'd, and exposed as Document objects on the Company — the Employee can read them like any other primitive output. No physical address required on your end.
State filings happen with a licensed formation partner; Naïve handles orchestration, identity, and the runtime layer. PII never sits in plaintext on Naïve servers — it's vaulted and only hydrated to the wire when the filing is submitted.
What you can build with /llc
Spawn a fleet of single-purpose companies — Form a separate C-corp for each agent business so liability, taxes, and banking stay isolated. Compose /llc with /cards and /brand for the full founding stack.
Provision the legal substrate for autonomous content brands — Form an LLC, attach a domain via /domain, generate a brand kit via /brand, and you have a Company an Employee can operate on day one.
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. Dissolve it later if the agent doesn't pan out.
Hand off ownership at exit — A Naïve Company is a real legal entity. Selling an autonomous business means transferring shares of an actual corporation, not a YAML file.
Run regulated workflows that need a real EIN — Open Stripe, hire 1099 contractors, file BOI reports — all of which require an EIN. The EIN comes back from the same /llc call and is bound to the Company object every other primitive references.
Get started
- Read the docs: usenaive.ai/docs/guides/business-registration
- Quickstart: usenaive.ai/docs/getting-started/quickstart
- Join the community on Discord
What is /llc?+
How does /llc work?+
What states and entity types are supported?+
How much does /llc cost?+
What's the difference between /llc and Stripe Atlas or Doola?+
Can an AI agent legally form an LLC?+
How do I get started with /llc?+
Co-founder of Naïve. Previously building the autonomous business stack.
@seandorje