<!--
  Full-page Markdown export (rendered HTML → GFM).
  Source: https://neotoma.io/types/contracts
  Generated: 2026-05-04T09:51:58.588Z
-->
# Contracts

Agreements, clauses, and amendments - reconstructable on any date. Contracts in Neotoma capture the full lifecycle: initial terms, amendments, renewals, and terminations, each timestamped and attributed.

## Store[#](#store)

Store a contract with any fields that describe it. Neotoma auto-discovers the schema from the first observation - no migration required.

MCP

Equivalent MCP example for this entity type.

store\_structured({ entities: \[ { entity\_type: "contract", title: "Acme Corp - SaaS License Agreement", parties: \["Acme Corp"\], status: "active", date\_effective: "2026-01-15", date\_expiry: "2027-01-15", value: 48000, currency: "USD" } \], idempotency\_key: "contract-acme-saas-2026" })

CLI

Equivalent CLI example for this entity type.

neotoma store --json='\[{ "entity\_type": "contract", "title": "Acme Corp - SaaS License Agreement", "parties": \["Acme Corp"\], "status": "active", "date\_effective": "2026-01-15", "date\_expiry": "2027-01-15", "value": 48000, "currency": "USD" }\]'

REST API

Equivalent REST API example for this entity type.

curl -X POST http://localhost:3080/api/store \\ -H "Content-Type: application/json" \\ -d '{ "entities": \[{ "entity\_type": "contract", "title": "Acme Corp - SaaS License Agreement", "parties": \["Acme Corp"\], "status": "active", "date\_effective": "2026-01-15", "date\_expiry": "2027-01-15", "value": 48000, "currency": "USD" }\] }'

Common fields for `contract`:

| Field | Example |
| --- | --- |
| title | "Acme Corp - SaaS License Agreement" |
| parties | \["Acme Corp"\] |
| status | "active" |
| date\_effective | "2026-01-15" |
| value | 48000 |

Fields are flexible - add any property your workflow needs. The schema evolves automatically via [progressive schema enforcement](/schema-management).

## Retrieve[#](#retrieve)

Query contracts by type, search by keyword, inspect version history, and traverse relationships.

CLI

Equivalent CLI example for this entity type.

\# List all contracts neotoma entities list --type contract # Search by counterparty neotoma entities search --query "Acme Corp" --entity-type contract # View amendment and renewal history neotoma observations list --entity-id <entity\_id> # Find linked clauses or amendments neotoma relationships list --entity-id <entity\_id>

MCP

Equivalent MCP example for this entity type.

// Find by identifier retrieve\_entity\_by\_identifier({ identifier: "Acme Corp - SaaS License Agreement", entity\_type: "contract" }) // List active contracts retrieve\_entities({ entity\_type: "contract", limit: 20 }) // Reconstruct state at a past date retrieve\_entity\_by\_identifier({ identifier: "Acme Corp - SaaS License Agreement", entity\_type: "contract", as\_of: "2026-06-01" })

## What your agent can answer[#](#example-queries)

With contracts stored in Neotoma, your agent can answer questions like:

-   “What were the terms of the Acme contract when we signed?”
-   “Which contracts renew in the next 90 days?”
-   “Show all amendments to the SaaS license agreement”

## What Neotoma guarantees[#](#guarantees)

Every contract stored in Neotoma gets the same set of integrity guarantees:

-   Versioned history - Every change creates a new version. Previous states are always accessible.
-   Deterministic state - Same observations always produce the same entity snapshot.
-   Auditable provenance - Every field traces back to the observation that set it.
-   Schema validation - Fields conform to the discovered or defined schema.

See all [memory guarantees](/memory-guarantees) compared across memory models.

## Next steps[#](#next-steps)

-   [Install Neotoma](/install) \- get started in 5 minutes
-   [Walkthrough](/walkthrough) \- full multi-session example
-   [Contracts use case](/contracts) \- see how contracts fit into a broader workflow