---
title: "Sign or broadcast a governed transaction"
method: POST
path: "/vault/{agentId}/sign"
tags: ["Vault"]
---

# Sign or broadcast a governed transaction

`POST /vault/{agentId}/sign`

Evaluates current agent policy and signs a transaction. Broadcast requests require an Idempotency-Key. HTTP 202 may mean either pending_approval or outcome_unknown; outcome_unknown includes the deterministic transaction hash and requires receipt reconciliation before any retry.

## Headers

- `X-Steward-Request-Timestamp` string
- `X-Steward-Request-Expires-At` string
- `X-Steward-Signature` string
- `X-Steward-Signing-Key-Id` string
- `Idempotency-Key` string

## Request body

- object
  - `to` string, required
  - `value` string, required
  - `data` string
  - `chainId` integer
  - `nonce` integer
  - `gasLimit` string
  - `broadcast` boolean
  - `venue` string
  - `walletAddress` string

## Response `200`

JSON response

- object
  - `ok` true, required
  - `data` union, required
    - object
      - `txId` string, required
      - `txHash` string, required
      - `signedTx` string
    - object
      - `txId` string, required
      - `txHash` string
      - `signedTx` string, required

## Other responses

- `202` — JSON response
- `400` — JSON response
- `401` — JSON response
- `403` — JSON response
- `404` — JSON response
- `408` — JSON response
- `409` — JSON response
- `428` — JSON response
- `500` — JSON response
- `502` — JSON response

## Changes

- **2026-08-17** `261a7c8070b2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/steward-fi/apis/steward-api/changes/vault/:agentId/sign/post.md)

---

[API](https://skmtc.dev/steward-fi/apis/steward-api.md) · [All operations](https://skmtc.dev/steward-fi/apis/steward-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/steward-fi/steward-api/revisions/b88b4b97a664/schema)
