Docs/Reference/Fees and brand revenue
Fees and brand revenue
How customer-paid USDC fees, issuer sharing, relayer incentives, and optional marketplace royalties create brand revenue around useful reward activity.
Fee flow#
Fees are tied to successful reward activity.
Issuance and redemption fees are paid in USDC by the customer involved in the action. The contract pulls the fee with transferFrom, then splits it between the issuer, relayer, and protocol according to the current fee policy.
Brand earnings#
- Brands earn the issuer share when customers tokenize or redeem loyalty value.
- If transfers are open and marketplaces honor royalties, secondary activity can route additional value to the configured brand receiver.
- Royalty withdrawals track issuer and protocol shares separately, so one receiver rejecting native ETH does not block the other receiver. Failed shares remain pending until the receiver can accept them.
- Revenue is aligned with useful customer activity, not passive custody of points.
Relayer incentives#
Relayers earn for submitting valid Created actions. Brands do not have to submit every action themselves: Loyfin's official relayer can submit, or an independent relayer can submit first and earn the relayer portion.
Implementation notes#
- Read
feeToken()andrequiredFee()from the factory instead of hardcoding fee values. - Check customer USDC allowance before presenting an action as ready to submit.
- Keep your brand database row linked with operationHash so revenue, fulfillment, and support records can reconcile with onchain activity.
- For the current Base deployment, successful issue/redeem actions require the customer to approve the required USDC fee. The fee is split between issuer, relayer, and protocol; see Contract addresses for the current policy.
- Revenue reporting should use completed receipts, not submitted operations, because a signature can expire, fail validation, or remain unmined.