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

# Terminology map

> The same thing has up to four names depending on where you meet it: the product UI, the API, the smart contract and the database.

The same thing has up to four names depending on where you meet it: the product UI, the API, the smart contract and the database. This page lines them up, then defines the terms engineers need.

> [!NOTE]
>
> The code name **UAM** (User Acquisition Marketplace) appears throughout the codebase, in parameters such as `uam_click`, headers such as `X-Uam-Event-Id`, and discount codes prefixed `UAM-`. It is the same product as **the Freeq Growth Network**.

## Name map

| Product UI | API | Smart contract | Database (model, table) |
| - | - | - | - |
| Brand | advertiser, role `ADVERTISER` | buyer | `Advertiser` (`advertisers`) plus `Party` and `User` |
| Creator | publisher, role `PUBLISHER` | seller | `Publisher` (`publishers`) plus `Party` and `User` |
| Account | user and party | party (`addParty`) | `User` (`users`), `Party` (`parties`) |
| Campaign | campaign, id `campaign_<uuid>` | campaign (same id string) | `Campaign` (`campaigns`) |
| Add or invite creators | add publishers (`addPublishers`) | `addSellers` | `CampaignPublisher` (`campaign_publishers`) |
| Personal link | share link (`shareLink`), share code | none | `campaign_publishers.share_code` |
| Click | click, id `clk_<uuid>` | movement (`recordUserMovement`, event `UserMoved`) | `UserClickProfile` (`user_click_profiles`); on-chain mirror in `Interaction` (`interactions`) |
| Sale credited to a creator | conversion, order status `CONVERTED` | conversion (`registerConversion`, event `UserConverted`) | `ShopifyOrder` (`shopify_orders`) |
| Holding period | escrow hold | none | `EscrowHold` (`escrow_holds`) |
| Earnings released | release (`ESCROW_RELEASE`), order status `SETTLED` | settlement (`registerSettlement`), meaning **vested** | `ledger_entries`, `onchain_settlement_registrations` |
| Cash out | withdraw (Stripe Connect transfer) | none | `PAYOUT_*` ledger entries, `StripeConnectedAccount` |
| Refund | return, partial return | `registerReturn`, `registerPartialReturn` | order status `RETURNED`, `PARTIAL_RETURN` |
| Chargeback or dispute | chargeback, dispute | `registerChargeBack` | order status `CHARGED_BACK`, `shopify_disputes` |
| Safety reserve | reserve | none | `PublisherReserve` (`publisher_reserves`) |
| Store | store, provider key | none | `ShopifyStore` (`shopify_stores`) for **every** provider |
| Discount code | coupon, code `UAM-XXXX-XXXX-XXXX` | none | `CouponOffer`, `CouponCode`, `CouponAssignment` |
| Partner | tenant | none | `Tenant` (`tenants`) |
| Shopper | buyer (in order events), customer | user (a pseudo-address derived from the click id) | `derived_address`, `customer_email` |
| Returning customer (not paid) | `INELIGIBLE_RETURNING_BUYER` | none | `campaign_customer_acquisitions` |

> [!WARNING]
>
> **"Buyer" means two different things.** In the smart contract, the buyer is the **brand** that owns a campaign. In order events and the partner wire (`externalBuyerId`, "returning buyer"), the buyer is the **shopper**. Check the context.

## Glossary

**Attribution.** Deciding which click earned an order. The platform uses **last-click** attribution: the most recent eligible click before the purchase wins. See [Attribution engine](https://docs.higherfrequency.io/developers/attribution-engine.md).

**Click.** One visit through a creator link, recorded off-chain with an id `clk_<uuid>`. Nothing is written on-chain at click time.

**Carrier.** Anything that carries a click id from the link to the order: the `uam_click` URL parameter, the `uam_click` cart attribute, the `_uam_click` line-item property, or a per-click discount code.

**Share code.** The 17-character code at the end of a creator's short link (`/go/<code>`). Unique per creator per campaign. It hides the campaign id and the creator's address.

**Store-wide campaign.** A campaign that pays on any product of the store rather than one product. Available only to tenants that enable it.

**Theme app embed.** The script the Shopify app adds to a brand's storefront. It copies the newest click into the cart on every landing so it survives checkout.

**Eligible click.** A click whose campaign exists, belongs to the order's store, and promotes a product that is in the order.

**Movement.** The contract's word for a click that led to an order. Recorded only after the order is attributed.

**Conversion.** An attributed order that earns commission. Recorded on-chain and held in escrow.

**Commission base.** What the rate applies to: the order total (after discounts, including tax and shipping), for every campaign. A single-product campaign's product decides whether the order qualifies, not how much it pays. Frozen on the order before any money moves.

**Escrow hold.** Commission set aside for a risk-tiered period (30 days by default, up to 120) before it can be released.

**Release.** Moving a matured hold to the creator's available balance, minus any fees and the reserve skim.

**Settlement (on-chain).** The record that a commission vested. It does **not** mean money was paid.

**Reserve.** A per-campaign buffer skimmed from releases to cover chargebacks that arrive after release.

**Ledger.** The append-only, double-entry record of every money movement. The source of truth for balances.

**Provider.** A commerce platform plugged in through the provider contract (Shopify, partner platforms). See [Commerce providers](https://docs.higherfrequency.io/developers/commerce-providers.md).

**Tenant.** A partitioned marketplace with its own sign-in, users and campaigns. Partners are onboarded as tenants.

**Party.** The on-chain and database identity shared by brands and creators. Each user has one.

**Derived address.** A deterministic hash of a click id, shaped like an address. Used as the "user" on-chain. Not a wallet.

**First touch.** The earliest click Shopify saw for an order's shopper. Shown for information only; it never affects who is paid.

**Not-paid reason.** A stable code explaining why an order earned nothing, such as `STORE_MISMATCH` or `RETURNING_CUSTOMER`. See [Attribution engine](https://docs.higherfrequency.io/developers/attribution-engine.md#8-order-outcomes-and-reasons).

> [!NOTE]
>
> Older internal documents describe attribution as "first-click" and mention an "ad service", embed tokens and an `AdEvent`-based tracking flow. Those descriptions are out of date. Attribution is last-click, and the ad service has been retired.


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