# Let the contracts agent sign NDAs

URL: /agents/let-an-agent-sign-ndas · Id: `guide:let-an-agent-sign-ndas`

> Give the Contracts Manager a signing Mandate for your NDA Template, and keep every larger contract waiting for you.

The [Contracts Manager](/agents/legal/contracts-manager) [signs](/business/nouns/agreement/sign) mutual NDAs on your [Template](/business/nouns/template) under a signing [Mandate](/business/nouns/mandate). Any [Agreement](/business/nouns/agreement) worth more than $10,000 still waits for you.

Needs: [Agreement](/business/nouns/agreement)

**Before real money moves**

- Who says yes: You. Your agent shows you the run and waits for your [Approval](/business/nouns/approval).
- You leave the chat: Never: it all happens in the chat.

## What you get
- 1 standing permission for the contracts agent to sign NDAs on your own template (Mandate)
- 1 cap: any contract worth more than $10,000 waits for you (Limit)
- 1 short wait before each signature, so you can still stop it (Action)
- 1 signed copy of each NDA, with who signed and when (Agreement)

## Your agent does
**For agents**

- Guide: `guide:let-an-agent-sign-ndas`, status `live`. Page: [/agents/let-an-agent-sign-ndas.md](/agents/let-an-agent-sign-ndas.md).
- Approval: ask the founder first. Show the run, then wait for their Approval; a refusal ends it.
- Leaves the chat: never.
- Needs first: [Agreement](/business/nouns/agreement).
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Mandate.authorize`](/business/nouns/mandate/authorize) (`verb:Mandate.authorize`) | `agent` Agent (an id), required: example `"agent_contracts_manager"`; `verb` string, required: example `"Agreement.sign"`; `limit` Limit (an id), required: example `"limit_contract_10000"`; `topics` string[]: example `["mutual NDA on the Startup’s Template"]` | `mandate` Mandate |

Returns: the last call answers with `mandate` and its `action`, whose `status` is `done`, `pending` (waiting on an Approval or a Worker), `failed`, `canceled` or `refused`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "mandate": {
    "$id": "https://api.sb/leaseline.app/mandates/mandate_1",
    "$type": "Mandate",
    "verb": "Agreement.sign",
    "limit": "limit_contract_10000",
    "topics": [
      "mutual NDA on the Startup’s Template"
    ],
    "status": "active"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Mandate.authorize",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/action_1"
  }
}
```

Next: offer “Let it sign order forms under $5,000 too”, or “Show me every NDA it signs in a weekly digest”.

Calls: `Mandate.authorize`

Ask:

```text
Let the contracts agent sign NDAs for me.
Sign mutual NDAs without asking me.
Our contracts manager can sign standard NDAs.
```

API:

```bash
# Mandate.authorize
curl -X POST https://api.sb/leaseline.app/mandates/authorize \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent":"agent_contracts_manager","verb":"Agreement.sign","limit":"limit_contract_10000","topics":["mutual NDA on the Startup’s Template"]}'
```

SDK:

```ts
import { $ } from 'startup-builder'

await $.Mandate.authorize({ agent: 'agent_contracts_manager', verb: 'Agreement.sign', limit: 'limit_contract_10000', topics: ['mutual NDA on the Startup’s Template'] })
```

CLI:

```bash
npx startup-builder do Mandate.authorize --json '{"agent":"agent_contracts_manager","verb":"Agreement.sign","limit":"limit_contract_10000","topics":["mutual NDA on the Startup’s Template"]}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Mandate.authorize({ agent: 'agent_contracts_manager', verb: 'Agreement.sign', limit: 'limit_contract_10000', topics: ['mutual NDA on the Startup’s Template'] })"
  }
}
```

## Change it
- Let it sign order forms under $5,000 too.
- Show me every NDA it signs in a weekly digest.
- Revoke the signing Mandate.

## Under the hood
- Systems: [Agreements](/systems/agreements)
- Nouns: [Mandate](/business/nouns/mandate), [Limit](/business/nouns/limit), [Agreement](/business/nouns/agreement), [Document](/business/nouns/document)
- Events: [`Mandate.authorized`](/business/events/Mandate.authorized), [`Agreement.signed`](/business/events/Agreement.signed)