# Vouches and scores

Directed, signed declarations with independently chosen scores.


A vouch is a directed trust declaration between two persona nodes. Its source chooses a score from 0 to 100 and signs the declaration with an authorized device.

## One direction at a time

Alice → Bea and Bea → Alice are separate declarations. Each source controls its own score. A new declaration is active immediately; there is no acceptance step. If your interface offers “Trust them too”, let the recipient choose a fresh score for their own direction.

Send a fresh signed declaration to update a score. The server replaces the current declaration for that pair. Only the source can revoke it. The legacy confirmation method exists for compatibility and is not part of the normal flow.


**Does not establish**
A score records the source's choice. It is not a centrally assigned reputation or a guarantee about a person's conduct. Receiving a vouch gives no authority to change the source's declaration.

## Scores and query policy

A query's `minTrust` sets the minimum allowed score along its path. `maxHops` limits path length to 1–3. Use `scope: 'identity'` for new declarations and queries; this is a protocol compatibility value, not a user-selectable relationship category.

Zero is a valid score. An expired or revoked edge does not satisfy the current path policy. Connections between persona nodes remain independent of the lifecycle of any particular device.

## Incoming score privacy

The declaring persona can read its numeric score. The receiving persona sees the incoming connection and direction, with `trust: null`. Keep that null distinct from zero and from a reciprocal declaration.


**Does not establish**
Hiding numeric incoming scores from listing responses does not prevent an authorized path querier from learning information through threshold queries.

## Updating without overwriting a newer choice

Use conditional replacement when a user edits a declaration they previously loaded. The signed nonce binds the current edge identifier, and the replacement route rejects a stale choice. Refresh and ask the user to review the current state when the edge has changed. See the [edges API](/api/edges).

## Private relationship tags

Tags organize your outgoing relationships and are separate from the trust score. They are private to the owner in API access, but readable by the service. They do not change what the path circuit proves.

Continue with [reachability and proofs](/concepts/reachability-and-proofs) or [declare a vouch in the quickstart](/quickstart).
