---
referrals: 3
kind: program
payer: domain:vendor.example
code: vendor_default
category: ai_native
status: open
at: 2026-10-30T00:00:00Z
net_of: tax
---
# Example vendor paid default placement

Rates, amounts and names in this file are placeholders, not recommendations or market rates. Each party sets its own terms.

In plain words: a harness that shows this vendor as a default, labeled as paid, earns 7% of net payments for 6 months. A placement that doesn't state its disclosure earns nothing.

Ask a lawyer about: how a paid placement must be labeled where your users are, whether a buyer's employer must be told, and whether advertising rules apply to what an agent says. A check here says nothing about any of that.

Change first: `payer`, `code`, the rate and the months. A fee must not change a rank unless the surface labels the placement as paid.

## Rules

### placement_share

- on: payment
- basis: percent
- rate: 7%
- of: net
- recurring.months: 6

## Attribution

- model: last_touch
- window_days: 30
- allowed_kinds: default_placement
- token.signed: signed

## Settlement

- holdback_days: 45
- clawback_days: 60
- cycle: monthly
- payout_asset: USD
- rails: ach

## Disclosure

- required: true
- text: Paid placement. The harness earns a share if you buy.

## Conduct

- forbidden: A placement not labeled as paid, A fee that moves a rank with no label

## Example

Made-up lines. Two customers come through the default. The first placement's token says it was paid and shown to a person. The second's says nothing, so it earns nothing, even though it is signed. Signatures use the public test key in `/vectors.json`, so they say nothing.

To run it, save this file as `REFERRALS.md` and these lines as `referrals.jsonl`, then run `node referrals.mjs run REFERRALS.md referrals.jsonl --as-of 2027-02-01T00:00:00Z`.

As of: 2027-02-01T00:00:00Z

```jsonl
{"type":"agreement","code":"harness","partner":"domain:harness.example","partner_role":"harness"}
{"type":"event","at":"2026-11-05T10:00:00Z","kind":"payment","source":"billing:inv_701","customer":"cu_1a2b3c4d5e6f7a81","amount":"300.00","net":"300.00","asset":"USD","token":"rf1.vendor_default.harness.d7f2k.tntig0.dop.h.GEspaN_4-aTIaMKk_iQI0w"}
{"type":"event","at":"2026-11-06T10:00:00Z","kind":"payment","source":"billing:inv_702","customer":"cu_2b3c4d5e6f7a81b2","amount":"300.00","net":"300.00","asset":"USD","token":"rf1.vendor_default.harness.d8g3m.tnvd40.nop.h.n1miBAdZ0imelJqN-KBXXQ"}
```

## Worked result

Computed by `run_ledger` as of 2027-02-01T00:00:00Z, on the made-up lines above. Computed amounts are arithmetic on the records and terms you sent. They do not say what anyone owes. Your contract decides that.

| Event | Who | Working | Computed | Note |
|---|---|---|---|---|
| payment, 2026-11-05 | harness | 7% of 300.00 | 21.00 |  |
| payment, 2026-11-06 | harness | This touch is not marked as disclosed, or claims to be unpaid, so it earns nothing. | 0.00 | X06 |

| Payee | Asset | Earned | Reversed | Net | Held | Payable |
|---|---|---|---|---|---|---|
| harness | USD | 21.00 | 0.00 | 21.00 | 0.00 | 21.00 |


## Why these settings

Failing closed on an unstated disclosure makes the label a condition of the money, and a short term keeps one placement from holding a customer for long.
