MAP Docs
Concepts

Treaties

Two charters meeting at a boundary. Capabilities crossed, sovereignty preserved.

A treaty is a signed accord between two MAP-running organizations that grants bounded capabilities across the boundary. The protocol that owns treaties is MOAT.

Anatomy of a treaty

treaty:
  id: treaty_acme_globex_2026_q1
  parties:
    - tenant: org_acme
      represented_by: did:oas:acme:agent:0x...
    - tenant: org_globex
      represented_by: did:oas:globex:agent:0x...

  grants_to_globex:
    - capability: map.mind.recall_memory
      caveats: [jurisdiction:us]
    - capability: map.maven.cite
    - capability: map.made.economic_contract_settle
      limits:
        max_per_call_bps: 500
        weekly_budget_usd: 50000

  grants_to_acme:
    - capability: map.market.query_orderbook
    - capability: map.maker.execute_action
      caveats: [action_kind:read-only]

  settlement:
    rail: x402
    currency: USDC
    clearing_fee_bps: 25

  dispute_resolution:
    via: moot
    venue: shared

  effective_from: 2026-01-01T00:00:00Z
  expires_at:     2026-12-31T23:59:59Z

  signatures:
    - signed_by: did:oas:acme:agent:0x...
      timestamp: 2025-12-15T10:00:00Z
      signature: ed25519:0xa3...
    - signed_by: did:oas:globex:agent:0x...
      timestamp: 2025-12-15T11:00:00Z
      signature: ed25519:0xb7...

Treaties are MARS-registered artifacts. Both parties have a copy; the treaty is content-addressed so any drift is immediately detectable.

How treaty capabilities take effect

When a foreign caller makes a request, MACS::derive includes the treaty grants in the resolved identity's capability set:

ResolvedAgentIdentity {
    did: "did:oas:globex:agent:0x...",
    capabilities: [
        // From OAS document (declared)
        AgentCapability { name: "map.macs.auth_negotiation", .. },
        // From active treaties (mirrored)
        AgentCapability { name: "map.mind.recall_memory", caveats: ["jurisdiction:us"], .. },
        AgentCapability { name: "map.maven.cite", .. },
    ],
    ..
}

The capabilities are then matched at Stage 4 like any other capability.

Treaty lifecycle

// 1. Negotiate
moat::propose(
    counterparty: "org_globex",
    capability_schedule: [...],
    rate_limits: [...],
    settlement_terms: [...],
    dispute_clause: "moot://shared"
)

// 2. Sign (each party)
moat::sign(treaty_id, signer_did)  // MACE quorum if charter requires

// 3. Enforce (engine, automatic)
moat::enforce(call, treaty)  // every cross-org call checked

// 4. Update (rare; requires both sides)
moat::propose_amendment(treaty_id, new_terms)
moat::sign_amendment(amendment_id)

// 5. Terminate (either side)
moat::terminate(treaty_id, reason)

Termination is immediate — all in-flight requests complete, new requests fail at security gating with CapabilityDenied. A Terminated event records to MAX on both sides. Wind-down for assets transferred under the treaty is handled by MAUSOLEUM.

Disputes

If a party believes the treaty has been violated, they MOOT::file a case. The case proceeds through the standard arbitration flow:

  1. File — claim + evidence + requested remedy
  2. Plead — respondent's plea + their evidence
  3. HearMOOT reconstructs the chains, weighs evidence with MAVEN, may consult MACE
  4. Rule — binding outcome under the treaty's dispute clause

Damages are settled via MADE. Reputational consequences flow through MARE and MERIT. The ruling is recorded in both chains.

Treaties are how MAP scales across organizational boundaries without merging audit chains. Two organizations can collaborate while remaining sovereign. The audit history of each is its own; the boundary is policed by a single shared protocol.

Treaty patterns

Common treaty shapes:

PatternUse case
Read-onlyOne side grants the other read access to a MIND partition or MARS slice
Service exchangeEach side grants the other a service capability with bounded rate
Joint ventureBoth sides grant into a third tenant they jointly fund and govern
Clearing houseA third tenant brokers settlement (Bank Of MAP pattern)

Treaty templates

The repo ships with treaty templates in templates/treaties/:

  • reciprocal-read.yaml — read-only access to MIND
  • service-exchange.yaml — each side offers a service with bounded budget
  • settlement-only.yaml — only MADE::economic_contract_settle granted

Adopt as starting points; sign with MOAT::sign after MACE quorum on each side.

See also

On this page