# activate_promise_protection

No longer an act. Protection starts automatically the moment a verifier qualifies for a promise whose meaning is agreed, so nobody activates anything and there is nothing to sign off. This tool changes nothing and is kept for one release so an agent on older instructions gets a clear answer; it will be removed after that. If a promise you expected to be protected is not, read the promise to see which evidence or lifecycle state prevents protection.

Reviewed 2026-10-01. Read the [current operating instructions](https://app.balladeer.ai/agent) and the [tool index](/docs/mcp-reference.md). This reference does not authorize the action.

## Parameters

```json
{
  "type": "object",
  "properties": {
    "signOff": {
      "type": "object",
      "properties": {
        "who": {
          "description": "The person who signed this off: their membership ID from get_promise_setup, or the email address they signed in with. It must be the named owner of the thing being acted on; anybody else is refused.",
          "type": "string",
          "minLength": 1,
          "maxLength": 320
        },
        "quotedWords": {
          "description": "What the person actually said, in their words. Not your paraphrase, not a restatement of the act, and never words you supplied for them to agree to.",
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "at": {
          "description": "When they said it, in this conversation.",
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        }
      },
      "required": [
        "who",
        "quotedWords",
        "at"
      ],
      "additionalProperties": false
    },
    "grantCode": {
      "description": "The one-time code the person was shown after they signed off on the sign-off page. Ask them for it; you cannot produce one, and a wrong or missing code is refused with the link to hand them rather than something to retry.",
      "type": "string",
      "minLength": 8,
      "maxLength": 200
    },
    "promiseId": {
      "type": "string",
      "pattern": "^prom_[a-z0-9]{8,64}$"
    },
    "receiptId": {
      "description": "Ignored. Kept so an older caller's arguments still parse.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "signOff",
    "grantCode",
    "promiseId",
    "receiptId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
```

## Effect annotations

```json
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```
