Cookbook
Recommendations and overrides
How Matter resolves intelligent defaults for every field on a Day-0 incorporation, and how to override any of them on Intent, createEntity, or formation_packet.
Last updated
When a founder declares an Intent with goal=start_company, Matter's resolver fills in every Day-0 field with an opinionated default — authorised shares, par value, founder vesting, repurchase window, fiscal year end, registered agent, officer slate, EIN application, 83(b) e-file rail, bank-account processor, indemnification policy, signing mode, and more. Each default is paired with a Recommendation carrying the basis (NVCA standard, DGCL default, IRS safe harbor, community-property law, etc.), a one-paragraph rationale, and the override paths for changing it.
This page is the canonical inventory of the Day-0 recommendations the resolver emits, and the worked examples for the two ICPs at either end of the customisation spectrum: the novice founder who accepts every default, and the technical founder who overrides 12 fields.
The resolution flow
POST /v1/intents
{
"goal": "start_company",
"parameters": {
"proposed_name": "Lattice Labs",
"founder": { "name": "Jane Doe", "email": "jane@lattice.dev", "home_state": "CA" }
}
}Returns:
{
"id": "int_…",
"status": "resolved",
"execution_plan": { "steps": [ … ] },
"resolved_recommendations": [
{
"field": "share_structure.authorized_common",
"recommended_value": 10000000,
"basis": "nvca_standard",
"rationale": "10M authorised common is the NVCA Model Cert default …",
"override_paths": [
{ "endpoint": "POST /v1/intents", "field": "parameters.share_structure.authorized_common", "context": "intent_parameters" },
{ "endpoint": "POST /v1/entities", "field": "share_structure.authorized_common", "context": "create_entity_body" }
],
"document_merge_fields": [
{ "document_kind": "certificate_of_incorporation", "merge_field": "Authorized Shares" }
],
"confidence": "best_practice",
"citations": [ { "authority": "NVCA Model Cert v2024 §IV" } ]
},
/* … ~45 more entries … */
]
}The resolved_recommendations[] array is the founder-facing audit trail. The dashboard renders each entry as a hover card next to the corresponding form field; the docs render the same content as a "What Matter recommends" table; CI snapshot-tests the full array against three canonical fixture intents (novice-DE-solo, technical-DE-cofounder-CA-community-property, serial-DE-with-portfolio) so changes to the rules table are deliberate.
The Day-0 rules table
Every value Matter recommends, with its basis and citation. Override on POST /v1/intents (parameters.<field>), on PATCH /v1/intents/{id} (parameters.<field>), on POST /v1/entities (request body), or on POST /v1/entities/{id}/formation_packet (request body) — whichever endpoint you're calling. The override_paths[] array on each Recommendation enumerates the valid paths.
| Field | Recommended value | Basis | Citation |
|---|---|---|---|
entity_type | c_corp | matter_signature_default | NVCA preference for venture-track companies |
jurisdiction | DE | matter_signature_default | DGCL flexibility, Chancery courts |
share_structure.authorized_common | 10,000,000 | nvca_standard | NVCA Model Cert v2024 §IV |
share_structure.par_value | $0.0001 | delaware_chancery_default | DE franchise tax minimisation |
share_structure.founder_shares_total | 8,000,000 (80% of authorised) | matter_signature_default | Leaves 10% option pool + 10% reserve |
share_structure.option_pool_reservation_percent | 10 | nvca_standard | NVCA Model Plan v2024 |
governance.board_size | 1 (sole-founder) / 2 (cofounder) | delaware_chancery_default | DGCL §141(b) minimum |
governance.action_by_written_consent_allowed | true | nvca_standard | Pre-IPO standard |
governance.quorum_basis_points | 5001 (majority) | delaware_chancery_default | DGCL §141(b) default |
governance.fiscal_year_end | 12-31 | matter_signature_default | Calendar-year tax simplicity |
founders[].vesting.cliff_months | 12 | nvca_standard | NVCA Model FSPA |
founders[].vesting.total_months | 48 | nvca_standard | NVCA Model FSPA |
founders[].vesting.granularity | monthly | nvca_standard | — |
founders[].vesting.reverse_vesting | true | matter_signature_default | Standard for founders without prior IP-only contribution |
founders[].vesting.repurchase_option_window_days | 90 | nvca_standard | NVCA Model FSPA |
founders[].acceleration.single_trigger_change_of_control_percent | 0 | matter_signature_default | Single-trigger generally disfavoured by VCs |
founders[].acceleration.double_trigger_change_of_control_percent | 100 | nvca_standard | NVCA Model FSPA double-trigger |
founders[].consideration_type | ip_assignment | matter_signature_default | Standard for technical founders contributing pre-formation IP |
founders[].ip_assignment_scope | full | matter_signature_default | NVCA preference |
registered_agent.provider | matter | matter_signature_default | Default Matter-provided agent |
registered_agent.address.county | derived from agent address | jurisdiction_required | 8 Del. C. §131 (DE — New Castle for Matter's DE agent) |
tax.ein_application.apply | true | matter_signature_default | Required for almost any operations |
efile_83b.method | id_me_portal | matter_signature_default | Faster than paper, IRS Form 15620 |
include_bank_account_application.processor | column | matter_signature_default | Matter's BaaS rail (Column API) |
indemnification_policy.advancement_of_expenses | true | delaware_chancery_default | DGCL §145 advancement default |
indemnification_policy.d_and_o_insurance_required | false | matter_signature_default | Optional pre-funded; recommended post-Series A |
signing_mode | agent | matter_signature_default | UETA §14 rail |
routine_install_policy | auto_on_formation | matter_signature_default | Annual-report / franchise-tax / BOI compliance auto-installed |
officer_slate[] | derived per founder count | dgcl_142_minimum + matter_signature_default | DGCL §142 |
Stakeholder.tax_id_token | required input (no default) | jurisdictional_requirement | IRS SS-4 + 83(b) |
Stakeholder.spouse_tax_id_token | required-iff CP-state + spousal_consent_required=true + spouse_id IS NULL | community_property_law | CA/TX/AZ/ID/LA/NV/NM/WA/WI law |
ShareLedgerEntry.certificate_number | null (uncertificated) | matter_signature_default | Modern DE C-Corp default |
Officer-slate derivation
When officer_slate[] is omitted, the resolver derives it from the founder set:
| Founder count | Default slate | Basis |
|---|---|---|
| 1 | Founder = CEO + Secretary + Treasurer | dgcl_142_minimum + matter_signature_default |
| 2 | Founder with highest equity_basis_points → CEO + Treasurer; second → Secretary + (CTO if role="CTO") | matter_signature_default |
| 3+ | Honor each founders[].role; auto-assign Secretary to lowest-equity founder if no role="Secretary" | matter_signature_default |
| Non-founder officer needed | Caller passes explicit officer_slate[] | founder_intent |
Worked example — novice founder accepts every default
The novice path: pass goal=start_company with the minimum required parameters and let the resolver fill everything else. No overrides; the Day-0 cookbook (Day-0 Delaware C-Corp in one API call) shows the resulting formation_packet payload.
curl https://api.mattermode.com/v1/intents \
-H 'Authorization: Bearer sk_live_…' \
-H 'Matter-Version: 2026-05-01' \
-H 'Idempotency-Key: 18a3-…' \
-d '{
"goal": "start_company",
"parameters": {
"proposed_name": "Lattice Labs",
"founder": {
"name": "Jane Doe",
"email": "jane@lattice.dev",
"home_state": "CA"
}
}
}'The resolver returns ~32 resolved_recommendations[] entries (1 per Day-0 default in the table above). The founder reviews them in the dashboard, accepts everything, and posts to POST /intents/{id}/execute to commit. formation_packet cascades; minute book lands.
Worked example — technical founder overrides 12 fields
The technical-founder path: structured Intent with explicit overrides on the values that matter. Recommendations still emit for the un-overridden fields; overrides are honoured directly.
curl https://api.mattermode.com/v1/intents \
-H 'Authorization: Bearer sk_live_…' \
-H 'Matter-Version: 2026-05-01' \
-H 'Idempotency-Key: 24f8-…' \
-d '{
"goal": "start_company",
"parameters": {
"proposed_name": "Meridian Lattice",
"founder": {
"name": "Idris Rahman",
"email": "idris@meridianlattice.dev",
"home_state": "CA"
},
"founding_team": [
{ "name": "Reuben Cho", "email": "reuben@meridianlattice.dev", "home_state": "CA", "equity_basis_points": 4500 }
],
"share_structure": {
"authorized_common": 12000000,
"option_pool_reservation_percent": 15
},
"founders": [
{
"vesting": { "cliff_months": 6, "total_months": 36, "repurchase_option_window_days": 60 },
"acceleration": { "single_trigger_change_of_control_percent": 50, "double_trigger_change_of_control_percent": 100 }
}
],
"governance": {
"board_size": 3,
"action_by_written_consent_allowed": false,
"quorum_basis_points": 6700
},
"officer_slate": [
{ "stakeholder_id": "stk_idris", "title": "chief_executive_officer", "authority_basis": "board_resolution" },
{ "stakeholder_id": "stk_reuben", "title": "chief_technology_officer", "authority_basis": "board_resolution" },
{ "stakeholder_id": "stk_outside_counsel", "title": "secretary", "authority_basis": "dgcl_142_minimum" }
],
"include_bank_account_application": { "processor": "mercury" }
}
}'Twelve overrides:
share_structure.authorized_common— 12M (vs default 10M)share_structure.option_pool_reservation_percent— 15% (vs default 10%)founders[].vesting.cliff_months— 6 (vs default 12)founders[].vesting.total_months— 36 (vs default 48)founders[].vesting.repurchase_option_window_days— 60 (vs default 90)founders[].acceleration.single_trigger_change_of_control_percent— 50 (vs default 0)governance.board_size— 3 (vs default 2 for two-founder)governance.action_by_written_consent_allowed—false(vs defaulttrue; tightens governance)governance.quorum_basis_points— 6700 (supermajority vs default 5001)officer_slate[]— explicit non-founder Secretary (outside counsel)include_bank_account_application.processor—mercury(vs defaultcolumn)- (implicit via founding_team) — second founder added with explicit
equity_basis_points: 4500
The remaining ~20 fields (par value, fiscal year end, registered agent, EIN application, 83(b) e-file rail, indemnification advancement, signing mode, routine install policy, IP assignment scope, etc.) keep their resolved defaults — each emits a Recommendation in resolved_recommendations[] so the dashboard can show them.
Snapshot-tested fixtures
CI snapshots three canonical Intent fixtures and asserts the resolved_recommendations[] arrays haven't drifted:
novice-DE-solo— single founder, DE, all defaults, no community-property considerationstechnical-DE-cofounder-CA-community-property— two cofounders, both CA-resident (community property), explicit officer-slate with non-founder Secretaryserial-DE-with-portfolio— serial entrepreneur usingPortfolioresource, prior-practice basis on registered agent and bank-account processor inheritance
Modifying the rules table requires regenerating the snapshots: bun run --filter docs test:recommendations -- --update-snapshots. Reviewers compare the diff and approve deliberately.
Audit table — Ironsides parity
The recommendation engine is sized so that every merge field in every Ironsides Delaware C-Corp template resolves to either a captured spec field or a Recommendation. The Ironsides parity check (apps/docs/scripts/ironsides-parity-check.ts, runs in apps/docs build) walks each .cftemplate, extracts every [BRACKETED] placeholder and (( conditional )) flag, and confirms each maps. Zero unmapped merge fields = pass.
| Ironsides template | Matter Document.kind | Where the merge fields come from |
|---|---|---|
| Certificate of Incorporation | certificate_of_incorporation | Entity.legal_name, share_structure.*, registered_agent.address.* (incl. new county), incorporator_* |
| Action of Sole Incorporator | action_of_incorporator | Entity.legal_name, derived directors from Stakeholder.roles[type=director] |
| Bylaws | bylaws | Entity.legal_name, governance.board_size, Document.clause_toggles[] |
| Incorporator Certificate | incorporator_certificate | Entity.legal_name |
| Secretary Certificate | secretary_certificate | Entity.legal_name, signing date |
| Board Resolutions (Initial Board Consent) | initial_board_resolution | Entity.legal_name, officer_slate[], Resolution.officer_changes[], share-issuance authorisations |
| Founder Stock Purchase Agreement | founder_stock_purchase_agreement | Stakeholder.*, Grant.founder_restricted_stock_terms.* (incl. new repurchase_option_window_days), vesting_schedule.*, acceleration.* |
| 83(b) Election | 83b_election | Stakeholder.tax_id, Stakeholder.spouse_tax_id_token (NEW), Stakeholder.spouse_name, Grant.election_83b.* |
| 83(b) Statement | 83b_election (embedded) | Entity.legal_name, Grant.quantity |
| Stock Power | stock_power | Entity.legal_name, ShareLedgerEntry.quantity, ShareLedgerEntry.certificate_number (NEW) |
| Receipt and Consent | stock_receipt (variant) | Entity.legal_name, ShareLedgerEntry.quantity |
| Receipt (Assets) | stock_receipt | Entity.legal_name, Stakeholder.name, ShareLedgerEntry.consideration |
| Indemnification Agreement | indemnification_agreement | Entity.legal_name, IndemnificationAgreement.indemnitee_stakeholder_id |
| Stockholder Consent (Indem) | stockholder_consent | Entity.legal_name, Resolution.signatories[] |
Related
- Day-0 Delaware C-Corp in one API call — the worked formation_packet
- Customize bylaws clauses — clause-toggle flow for the technical-founder bylaws override
- Handle a cofounder departure — sole-director board reconstitution
- Impose retroactive vesting — the share_ledger amend verb