---
title: "Cast a signed weighted Trail Cred vouch"
method: POST
path: "/agents/vouch"
tags: ["Account"]
---

# Cast a signed weighted Trail Cred vouch

`POST /agents/vouch`

## Request

- Base URL: `https://www.farmdash.one/api`
- URL: `https://www.farmdash.one/api/agents/vouch`
- Auth: one of:
  - none
  - HTTP bearer

TollBooth rate limits apply; a paid bearer key is optional, not signer proof.
Sign EIP-191 personal_sign over FARMDASH_VOUCH:{lowercase targetAddress}:{nonce}.
With signatureType=eip712, sign AgentVouch(targetAddress address, nonce string)
under domain name FarmDash, version 1, chainId 1 instead. The recovered signer
is the voucher; no caller-supplied voucher address is accepted as authority.
The voucher must already have at least one swap in fee_events. Rejects self
vouches and seed/demo targets; permits at most 5 vouches per address per 24 hours.
Each voucher/target pair is idempotent; duplicate upserts do not replace weight.
Requires the fee_events, agent_vouches and agent_reputation stores. Paying for
API access does not satisfy signer proof or the swap prerequisite.

## Headers

- `X-ClawHub-Skill` string

## Request body

- object
  - `targetAddress` string, required: Target agent wallet; normalized lowercase before signature recovery
  - `nonce` string, required: Millisecond timestamp string parsed with parseInt base 10; at most 60 seconds old and at most 5 seconds in the future. Freshness-only, not persisted; pair upsert is idempotent.
  - `signature` string, required: Wallet signature verified by EIP-191 recovery by default, or EIP-712 recovery when explicitly selected
  - `signatureType` 'eip191' | 'eip712': Supported signing modes; omission uses EIP-191

## Response `200`

Vouch pair recorded idempotently

- object
  - `ok` true, required
  - `voucher` string, required
  - `target` string, required
  - `weight` number, required

## Other responses

- `400`: Missing fields, invalid target/nonce, stale_nonce, self_vouch or demo_target
- `401`: invalid_signature or unrecoverable_signer
- `402`: Free-tier limit exceeded — x402 payment required
- `403`: vouch_sybil_gate — recovered voucher has no recorded swap in fee_events
- `429`: Rate limit exceeded
- `503`: vouch_store_unavailable or vouch_unavailable

---

[API](https://skmtc.dev/farmdash/apis/farmdash-agent-api.md) · [All operations](https://skmtc.dev/farmdash/apis/farmdash-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/farmdash/apis/farmdash-agent-api/revisions/96310281f58c?raw)
