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

# Trade secrets

> The one-time secret behind each payout, and why each party now derives its own half

Each payout proves knowledge of a one-time **trade secret**. The secret
fixes each payout's **nullifier**, the value that makes it happen exactly
once.

The secret has two halves, one per payout:

| Half | Owned by | Unlocks |
| - | - | - |
| Bridger's half | the Bridger | the payout on the ad chain, to the Bridger |
| Maker's half | the Maker | the payout on the order chain, to the Maker |

## Derived, not stored

Each party derives its half; nobody generates it for you. Once per
session, your wallet signs a **trade half root**. Each trade's half is
derived from that root and the trade's order hash, so the same wallet
always derives the same half for the same trade, on any device. Replacing
your settlement key doesn't change your halves.

An agent derives its halves from its own root, kept with its backed-up
key material.

## Checking before you sign

Before co-signing, your app derives your nullifier again and compares it
with the one in the [SettlementAuth](https://docs.pfbridge.xyz/v3/concepts/co-signing.md). If they
don't match, it refuses to sign. Since both nullifiers are co-signed, a
payout can't settle under any secret other than the parties' own.

## Seeing your half

The order page shows your half of the trade secret, with copy and
download. It's derived again from one wallet signature per session.

Screenshot coming soon

Your half of the trade secret on the order page


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