> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sumvin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Stamped Mandates (sumvin pint)

> Create, list, revoke, and verify Stamped Mandates from the terminal.

<Warning>
  **The CLI is for developers.** It's mainly for people building and experimenting on Sumvin. The recommended way to use Sumvin is the [MCP connector](/get-started/connect), or the API if you're building (docs coming).

  An agent running in your terminal can approve Stamped Mandates that the CLI signs for you. Never give an unattended agent `--yes`.
</Warning>

A Stamped Mandate is a signed authorisation for what an agent may do. This command group creates and manages the spending kind — how much an agent may spend, and until when — because that's what `pint` supports today. The command group is still named `pint` in the CLI — the rename to match the public name hasn't landed yet.

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sumvin pint create    # create a Stamped Mandate
sumvin pint list       # list your Stamped Mandates
sumvin pint get        # show one in full
sumvin pint revoke     # revoke one
sumvin pint verify     # verify a Stamped Mandate token independently
```

## `sumvin pint create`

Creates a Stamped Mandate and prints the token.

**Flags**

| Flag | Required | Effect |
| - | - | - |
| `--scope <value>` | yes, repeatable | What the mandate grants. Your account or agent tells you the exact value to pass. |
| `--statement <text>` | yes | Human-readable description of what the mandate authorizes. |
| `--expires <window>` | no (default `24h`) | How long the mandate is valid — `30m`, `24h`, `7d`, and so on. |
| `--max-amount <n>` | no (default `0`) | Spend cap. `0` authorizes no spend. |
| `--max-amount-token <value>` | yes | The currency or token the cap is denominated in. |
| `--sign local` | no | Sign the mandate yourself with a local key instead of letting Sumvin's agent sign it — see [`sumvin keys`](/reference/cli/keys). |
| `--json` | no | Print a result object instead of the printed token. |

**Example**

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sumvin pint create \
  --scope <scope> \
  --statement "Delegate signing for one hour" \
  --expires 1h \
  --max-amount 0 \
  --max-amount-token <token>
```

**Output states**

* Success prints the mandate's identifier, its token, who it's addressed to, its scopes, and its expiry.
* Missing required flags, or a scope your account isn't verified for, are rejected before anything is created — see the errors below.

## `sumvin pint list`

Lists your Stamped Mandates.

**Flags**

| Flag | Effect |
| - | - |
| `--status <value>` | Filter by status: `pending`, `active`, `expired`, `revoked`. |
| `--limit <n>` / `--cursor <value>` | Paginate results. |
| `--sort <value>` / `--order <value>` | Sort by creation or expiry, ascending or descending. |
| `--json` | Print a result object instead of the formatted list. |

## `sumvin pint get`

Shows one Stamped Mandate in full.

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sumvin pint get <mandate-id>
```

**Flags**

| Flag | Effect |
| - | - |
| `--expand <value>` | Include related records inline (repeatable). |
| `--json` | Print a result object instead of the formatted view. |

## `sumvin pint revoke`

Revokes a Stamped Mandate. Revoking one that's already revoked changes nothing and reports that it was already revoked. A mandate that has been spent or has expired can't be revoked: it no longer carries any authority to withdraw, so the API refuses with `409 Conflict` (error code `PINT-409-009`) and leaves it unchanged.

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sumvin pint revoke <mandate-id>
```

## `sumvin pint verify`

Verifies a Stamped Mandate token independently — its signature, claims, issuer, expiry, audience, scopes, and revocation status. All seven checks are always shown, so a broken signature is never confused with an expired or revoked token.

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sumvin pint verify "<token>"
```

**Flags**

| Flag | Effect |
| - | - |
| `--audience <value>` | Compare against a specific audience instead of your own account. |
| `--offline` | Skip the network calls entirely. The audience and revocation checks then report as unverified rather than passing or failing. |
| `--json` | Print a result object instead of the formatted checklist. |

**Output states**

* All seven checks pass: the mandate is valid.
* Any check fails: the mandate is not valid, and the failing check is named — this is a completed, successful run whose answer is "no."

## Exit codes

| Command | `0` | `1` | `2` |
| - | - | - | - |
| `create`, `list`, `get`, `revoke` | succeeded | failed | — |
| `verify` | valid | the check itself couldn't complete | not valid |

`sumvin pint verify` completing and reporting an invalid mandate is exit `2`, not `1` — the run succeeded, and the answer is no. Read the exit code, not just whether the command ran.

## Common errors

| Message | Meaning |
| - | - |
| "Couldn't determine your account's spending identity." | Finish onboarding in the Sumvin app before creating a mandate. |
| "Your account isn't verified yet for this scope." | Complete identity verification first — see [`sumvin kyc`](/reference/cli/kyc). |
| "Mandate not found." | Check the ID, or run `sumvin pint list`. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.