# form-entity

Paid (standard Exact-EVM rail, variable by `(state, entityType)` — call `get-pricing` or `/standard-rail/quote` first; quote == charge). Registers a US company (ordinary LLC, Wyoming DAO LLC, or C corporation formation) with Northwest Registered Agent as registered agent, 12 months bundled. Long-running: the task stays `working` for hours to weeks through state processing, with progress via push notifications and email.

## Included and separate services

Formation purchases the state filing and 12 months of Northwest registered-agent service: a registered office, permitted use of Northwest's business address, receipt and scanning of state/legal documents subject to supplier terms, five ordinary-mail scans per service year, and owner-authorized access to supplier-delivered metadata and PDF scans. Compliance reminders do not include automatic report filing.

EIN, subsequent filings, certificates, and registered-agent renewal are separate purchases. This order does not set up premium mail forwarding, a virtual office, a unique suite, physical forwarding, packages, digital identity services (domain, website, email, phone, brand monitoring), or a customized operating agreement. The digital identity extras advertised by Northwest are not provisioned by this Daski order. See the service overview for mail limits and original-document handling.

## Input

| Field | Required | Notes |
|---|---|---|
| `country` | yes | ISO 3166-1 alpha-2. Only `"US"` is accepted. US territories are not supported. |
| `state` | yes | 2-letter USPS code, uppercase (`"WY"`, `"DC"`) — all 50 states + DC, enumerated in the input schema. |
| `entityType` | yes | One of the input schema's published `enum` values — currently `"Limited Liability Company"` (all 50 states + DC), `"Corporation"` (ordinary C corporation, all 50 states + DC), and `"DAO LLC"` (WY only; the schema `enum` is authoritative). Copy exactly — abbreviations like `"LLC"` are rejected at the schema boundary. Live per-state availability and pricing via `get-pricing`. |
| `companyName` | yes | Exact legal name incl. designator (`"Daski Labs LLC"`). Normalized into the `entity` handle (`US-WY:daski-labs-llc`). |
| `contactEmail` | yes | Durable email address you monitor. Daski and the provider may email about the order, required actions, support and renewals. ALL lifecycle mail lands here (progress, corrections, completion, compliance nudges, RA reminders). Explain this to the user before submitting their email. |
| `contactPerson` | yes | `{ firstName, lastName, phone, dob, address, title? }`. Phone E.164 with no separators (`"+13075550100"`); `dob` ISO 8601 `YYYY-MM-DD`. `title` is the person's role on the supplier's contact record; when omitted it is recorded as `"Authorized Contact"`. |
| officials | per classification | See the table below — the structure must match the entity type's classification. |
| `filingPlanId` | yes | Current opaque plan ID from detailed `get-pricing`. It binds the method, schema, price and address policy. |
| `filingAddresses` | per plan | At most 128 `{target, source}` choices. `source: "customer"` also requires `address` in the buyer-address shape. Every required target must be chosen, including each official's `/official.<role>/{index}/address` and the filer's `/filer/address`. |
| `filingFiler` | per plan | `{source: "contact"}`, `{source: "official", officialRef: "/members/0"}`, or `northwest` only when offered by the plan. The filer address is selected independently. |
| `formData` | per state | The state's form contract from `get-pricing` `requiredFields.formData`. **Keys are supplier-verbatim** (for non-address fields) — do not rename them. Send each value as the field's published JSON `type` (a `"string"` field takes `"100"`, not `100`). Entity type, officials, management type, filer, and registered agent are **injected automatically** from the authorized inputs and verified supplier data — never repeat them inside `formData`. |

For `DAO LLC`, obtain the DAO's own current filing plan and supply every
published DAO-specific field in `formData`. Field names come from that plan;
do not reuse an ordinary LLC form. Daski files a DAO LLC as member managed:
send `managementType: "Member Managed"` with `members`; `Manager Managed` and
`managers` are refused at the quote. Describe any algorithmic management in the
plan's W.S. 17-31-104(e) statement field, and other governance arrangements in
the fields the DAO filing plan publishes. The plan's W.S. 17-31-106(b)
smart-contract identifier must list only the DAO's smart-contract EVM
addresses: up to 10, each `0x` followed by 40 hexadecimal characters or
`eip155:<chainId>:0x…`, separated by commas or spaces. Name contracts only
there: the company, officials' and contact's names and other DAO fields must
not contain an on-chain address, `eip155:` identifier, ENS name or run of 40
hexadecimal digits. Check the identifier before paying. It cannot change
after payment: a resend or correction must list the same addresses, with the
same chain prefixes, as the purchased request, and the amendment service does
not change it either.
The
`companyName` must include `"DAO"` or `"LAO"` and an LLC designator such as
`"LLC"` (`"Example DAO LLC"`); the quote refuses other names. DAO naming,
filing and governance obligations are returned with intake. The amendment
service supports legal-name and principal/mailing-address changes; it refuses
smart-contract or identifier amendments, which must be arranged separately.

## Address use and public filings — review before payment

| Address | How Daski uses it |
|---|---|
| Registered-agent office | Injected from the exact active Northwest service for this company and jurisdiction. Missing or ambiguous evidence pauses filing. |
| Private `contactPerson.address` and officials' screening addresses | Used for accurate contact and screening; never automatically copied into public filings. |
| `filingAddresses` with `source: "northwest"` | Daski resolves the assigned address and injects it only into the policy's eligible field. |
| `filingAddresses` with `source: "customer"` | The explicitly supplied address is submitted for public filing. |

Copy targets and permitted sources from detailed `get-pricing`. Templates such as
`/official.member/{index}/address` expand against your submitted roster. Missing,
duplicate or unknown targets and duplicate addresses in `formData` fail before
payment. Every person section of the state form (each official and the filer)
carries a public address in the supplier's contract, so those targets are
required alongside the company addresses; the rejection names each missing
target. Genuinely optional addresses remain absent unless selected. The filer
identity is a separate choice; Northwest is never invented as an individual
signer. Unverified jurisdiction-specific address permissions are unavailable.

## Officials by classification

| Classification | Required structures |
|---|---|
| LLC | `managementType` (`"Member Managed"` \| `"Manager Managed"`) + `members[]` or `managers[]` to match |
| Corp, Non-Profit | `directors[]`, `presidents[]`, `secretaries[]`, `treasurers[]` — all four non-empty; the same person may hold several roles |
| Partnership | `partners[]` |
| Other | `officials[]` |

For an LLC, `Member Managed` requires `members[]`; `Manager Managed` requires
`managers[]`. In the documented member-managed schema shape, Daski supplies an
empty manager form section when the supplier requires that section but no actual
managers were supplied. It is not a person, screened party, filer, or address
choice. No equivalent empty-member rule is assumed for manager-managed LLCs:
if the selected schema requires members too, supply the actual authorized
members or ask operations to clarify the supplier contract. If you supply both
rosters, both are validated and preserved. Never add a fictitious official.

Each official is `{ isCompany: false, firstName, lastName, dob, address }` (natural person — `dob` ISO 8601, age 18–110) or `{ isCompany: true, companyName, jurisdictionCountry, address }` (dob-exempt — companies can hold roles, and can be sanctioned). `address` is required for every official: Northwest records it with the registered-agent service and it is used for screening. It is not copied into the public filing; choose each official's public address through `filingAddresses`. **At least one natural person is always required.** A structure that doesn't match the classification is rejected before any spend.

An official may also carry `phone` in E.164 format. This must be that official's
authorized contact number; it is sent only when the selected filing schema
contains the corresponding field. The contact person's phone is used when that
person is explicitly selected as filer, not guessed for every matching name.
Buyer-side supplier email fields use the existing Daski intake relay; keep the
notification address in top-level `contactEmail`. Northwest agent and supplier-
filer contact details come only from verified supplier data, never the buyer's
email. Missing optional data is not replaced with arbitrary empty strings.

Supplier `hidden` fields are presentation metadata, not a guarantee that
Northwest supplies their values. Daski renders known fields declared by the
current schema and validates the completed form. Unknown ownership percentages
are neither inferred nor filled with placeholders.

**File exactly the roster your Operator authorized.** Never add, drop, or substitute members/managers on your own judgment — if a party gives you pause, raise it with your Operator *before* paying; a filing with the wrong roster is a wrong filing, not a partial success.

## Screening & privacy

Every disclosed party (contact person + all officials) is screened against the OFAC SDN and applicable OFAC non-SDN sources **before any supplier spend**. `dob` is used ONLY for screening — never published or sent to the state. No extra citizenship, shareholder, ownership-percentage, or UBO fields are required in v1. Duplicate roles for the same natural person are screened once with their available contact and filing signals combined.

A request with a surviving candidate holds with exactly: `This request requires additional review before processing. No action is needed.` (no timeline promise; resolution is operator-mediated). Additional self-attested data supplied after a hold is evidence for the reviewer and never an automatic clearing mechanism.

## Example

Illustrative contact data and plan placeholders only. Copy the actual plan ID and include every required address target published for the selected filing.

```jsonc
{
  "country": "US",
  "state": "WY",
  "entityType": "Limited Liability Company",
  "companyName": "Daski Labs LLC",
  "contactEmail": "agent-ops@daski-labs.example",
  "contactPerson": {
    "firstName": "Riley", "lastName": "Chen",
    "phone": "+13075550100", "dob": "1990-04-12",
    "address": { "line1": "100 Example Street", "city": "Sheridan", "state": "WY", "postalCode": "82801", "country": "US" }
  },
  "managementType": "Member Managed",
  "members": [
    { "isCompany": false, "firstName": "Riley", "lastName": "Chen", "dob": "1990-04-12",
      "address": { "line1": "100 Example Street", "city": "Sheridan", "state": "WY", "postalCode": "82801", "country": "US" } },
    { "isCompany": true, "companyName": "Example Holdings Inc", "jurisdictionCountry": "US",
      "address": { "line1": "200 Example Avenue", "city": "Cheyenne", "state": "WY", "postalCode": "82001", "country": "US" } }
  ],
  "filingPlanId": "copy-current-plan-uuid-from-get-pricing",
  "filingFiler": { "source": "contact" },
  "filingAddresses": [
    { "target": "/company_principal_address", "source": "northwest" },
    { "target": "/company_mailing_address", "source": "northwest" },
    { "target": "/official.member/0/address", "source": "northwest" },
    { "target": "/official.member/1/address", "source": "northwest" },
    { "target": "/filer/address", "source": "customer",
      "address": { "line1": "100 Example Street", "city": "Sheridan", "state": "WY", "postalCode": "82801", "country": "US" } }
  ],
  "formData": {}
}
```

Person objects inside `formData` carry the same `dob` adjunct when they are natural persons — screening-only, stripped before anything is sent to the state. The state form uses your screened roster and explicit filer choice. It uses the selected public addresses independently of screening addresses.

## Task lifecycle

1. Pay via `daski_buy_service`. `/standard-rail/quote` pre-validates (country, state, entityType) so an unsupported combination never captures funds; the charge equals the quote.
2. The task stays `working` through supplier setup and state processing — hours to weeks, per-state estimate in `get-pricing`. Progress arrives via push notifications AND email to `contactEmail`.
3. `input-required` — recoverable validation problems before the filing is committed (bad `dob`, missing officials structure, `formData` violations, a `companyName` whose normalized handle collides with a live entity) round-trip via task input; state rejections after filing do the same. Read the `inputRequest` on the order status (see the service guide) and resubmit the complete corrected request: the contact person, officials, management type, `formData` and the address and filer choices may change; the filing plan, company name, entity type, jurisdiction and contact email stay as purchased. Each top-level field you send replaces the one on file. A correction after filing updates the order Northwest returned; the company and its registered-agent service stay as filed. No refund is needed — fix and continue.
4. Completion delivers the artifacts below plus a completion email.

## Result artifacts — `entity_details`, `formation_document`

```jsonc
{
  "legalName": "Daski Labs LLC",
  "country": "US",
  "state": "WY",
  "entityType": "Limited Liability Company",
  "classification": "LLC",
  "entity": "US-WY:daski-labs-llc",       // the handle every later skill takes
  "assetId": "5f0c2f6a-…",                 // immutable UUID — survives renames
  "nwCompanyId": "…",                      // supplier record id, informational
  "formationDate": "2026-07-04",
  "registeredAgent": { "name": "verified supplier name", "jurisdiction": "WY", "officeAddress": { /* assigned address */ }, "availability": "active", "verifiedAt": "2026-09-05T12:00:00Z" },
  "businessAddress": { "address": { /* assigned address */ }, "permittedUses": [ /* verified fields */ ], "availability": "active" },
  "ordinaryMail": { "includedPieces": 5, "period": "service_year", "activation": "unknown", "usageStatus": "unknown" },
  "filingProfileId": "opaque-profile-uuid",
  "filingFilerOptions": [ /* owner-scoped options for later filings */ ],
  "raPaidThrough": "2027-07-04",           // 12 months bundled
  "publicationObligation": false,          // true for NY/AZ/NE
  "clientObligations": [ /* federal + state disclosures */ ],
  "notSupported": [ /* exclusions */ ],
  "intakeAliasProvisioned": true
}
```

The result includes `documents` (document IDs) and `documentAccess` instructions.
Use `list-entity-documents` and `download-entity-document` with the current
owner wallet to retrieve the PDF. Completion emails and stored task results do
not contain short-lived bearer download links.

For chargeable Northwest orders (`test` or `live` supplier mode),
`contactEmail` must be a real reachable address. Reserved example/non-delivery
domains are rejected before a binding quote; mock-only tests can still use them.

## Publication states

In **NY, AZ, and NE**, newspaper publication after formation is a legal obligation that remains with you — disclosed here, in `get-pricing`, and in the artifact (`publicationObligation: true`); never performed by the provider.

## Failure modes

- **Quote-time filing validation**: `filing-choice` errors identify the editable
  input (`members`, `managers`, a roster entry, `managementType`, `filingFiler`,
  or a published `formData` field). Correct the indicated input or ask the
  operator to investigate; retrying the same rejected data will not resolve it.
- **Structural pre-filing failures** — `unsupported_country`, unsupported (state, entityType), an all-company officials roster (`no_natural_person_official` — this entity type's state filing requires at least one human party): terminal. Launch payments are not automatically reversed.
- **Correctable input problems**: `input-required` — fix the input and continue the same order.
- **After the filing is committed with the state**: operator-resolved via support (`formation@sandbox-agent.bluetgroup.com`).

## Next step

- `get-entity-status` to watch the entity; `list-entity-documents` for the paper trail.
- `file-ein` for a federal EIN; `file-compliance` when the first annual report comes due.

Filing-plan revocation, an unavailable selected method, stale catalog evidence, or ambiguous supplier responses pause submission for review. No alternative method is selected and no automatic refund is promised. Filed entity details remain available while mail activation is unconfirmed.


### C corporations

Use the canonical entity type `"Corporation"` for an ordinary C corporation.
Availability is checked separately for each state through current requirements.
Supply `directors`, `presidents`, `secretaries`, and `treasurers` with the actual
people and their screening details. Do not supply LLC members, managers, or
management type. Reuse a person in multiple roles only when the buyer selected
that arrangement.

The corporate `formData` contract carries the supplier's stock terms. Read the
exact field list from `get-pricing`; the Wyoming and Delaware online forms
require `authorized_shares` and `par_value`. Send both as plain decimal
strings — digits with an optional fraction, no currency symbols, separators or
words (`"10000000"`, `"0.0001"`); anything else is rejected before payment.
Never invent share counts or par values; take them from the buyer.

Two supplier fields are deliberately withheld from the contract and rejected
if sent: `share_class`, because the supplier publishes no accepted values yet
(a single class of authorized shares needs no designation on the state
filing), and the alternative-company-name field, because Daski files exactly
the requested `companyName`. Formation does not include an S-corporation
election, share issuance, a cap table, or customized bylaws.

For subsequent filings, use the entity owner's asset and the plan returned by
`daski_get_outcome_requirements`. Direct `get-pricing` callers must specify
`entityType: "Corporation"` for corporate lifecycle products, including EIN.
Corporate state taxes, reports, and publication duties differ from LLC duties;
read the returned corporate disclosures and the relevant state agencies' rules.
