Specification · Draft

DAISY

A Uniswap v4 hook that pays the referral chain behind a swap, in the same transaction as the swap.

Draft

Nothing described here is deployed. Parameters are proposals, not commitments, and will change during implementation and audit. There is no contract address, no token, and no live pool.

Overview

DAISY records who introduced whom, and pays that relationship out of swap volume. A wallet links to one referrer, permanently. From then on, every swap that wallet makes on a DAISY-enabled pool routes a portion of the fee up the chain to the two wallets above it.

The whole thing lives in the hook. There is no backend keeping score, no code to redeem, and no payout schedule. If the swap succeeds, the referral is paid.

PropertyValue
ProtocolUniswap v4 — hooks do not exist in v3
ChainRobinhood Chain, chain ID 4663
Referral fee0.25% of swap volume (proposed)
Split60 / 25 / 15 — referrer, level 2, treasury
Payout depth2 levels, enforced in the contract
LinkSoulbound, one per wallet, permanent
SettlementAtomic, inside the swap transaction

Why this exists

Referral is the most reliable growth loop in crypto and the least trustworthy piece of infrastructure attached to it. Someone tells a friend about a pool, the friend trades, and the value of that introduction accrues entirely to the protocol.

Where referral programs do exist, they run off-chain:

  • Codes expire. The volume you brought stops counting when someone else ends the campaign.
  • Numbers are unverifiable. Your earnings live in a database you cannot read or audit.
  • Payment is discretionary. There is no contract — only a promise and a spreadsheet.

None of these are technical limitations any more. A v4 hook can read the relationship and settle it during the swap.

Glossary

TermMeaning
LinkThe permanent record that wallet A was introduced by wallet B.
ReferrerThe wallet directly above you. Level 1.
Level 2Your referrer's referrer. The last level that gets paid.
ChainThe path from a wallet back to the root of the graph.
RootA wallet with no referrer. Every chain terminates at one.
Referral feeThe portion of swap volume the hook collects to pay the chain.

Swap lifecycle

The hook attaches to beforeSwap and afterSwap on the PoolManager. A swap on a DAISY-enabled pool runs through four steps.

01

Read the link. On beforeSwap, the hook looks up the swapper's referrer. If none exists, the swap proceeds untouched and no fee is taken.

02

Compute the fee. The referral fee is calculated on the input amount, separately from and on top of the pool's LP fee. LP earnings are not reduced.

03

Split. 60% to the direct referrer, 25% to level 2, 15% to the treasury. Anything above level 2 is ignored.

04

Settle. On afterSwap, balances are credited inside the same transaction. There is no pending state and no claim step.

On gas

Every swap by a linked wallet pays for two storage reads and up to three transfers. This is real cost borne by the swapper, not hidden. The exact overhead will be published once the implementation is benchmarked.

The link is a soulbound token minted to the referred wallet at the moment it attaches to a referrer. It is the only state DAISY stores per user.

  • One referrer per wallet. Set once. There is no function to change it.
  • Non-transferable. The token cannot be sold, moved, or reassigned. Referral position is not a tradeable asset.
  • Self-referral is rejected. A wallet cannot link to itself.
  • Cycles are rejected. A wallet cannot link to anything already downstream of it.
  • Linking is free. It costs gas and nothing else. There is no entry fee and no position to purchase.
Permanent means permanent

There is no admin function to rewrite a link. If you attach to the wrong referrer, that is final for that wallet. This is a deliberate trade-off: an editable graph is a graph someone can be pressured into editing.

Fee split

The referral fee is a proposed 0.25% of swap volume, split three ways.

RecipientShareOn $10,000
Direct referrer60%$15.00
Level 225%$6.25
Treasury15%$3.75
Total0.25%$25.00

The treasury share funds audits, infrastructure, and the graph explorer. Its address and spending policy will be published before deployment.

Edge cases

Most of a referral system's honesty is in what it does when the chain is short or broken.

SituationBehaviour
No referrerNo fee is charged. The swap behaves like an ordinary v4 swap.
Referrer exists, no level 2Referrer takes 60%. The unclaimed 25% goes to the treasury, not to the referrer. Nobody is rewarded for a shallow chain.
Chain deeper than 2Levels 3 and above receive nothing. The graph is deeper than the payout by design.
Referrer is the swapperRejected at link time. Cannot occur.
Self-referral via a second walletPossible, and not prevented. See Security.

Attaching a referrer

A frontend attaches a referrer by calling the link function once, before or alongside the user's first swap. The draft interface:

interface IDaisyRegistry {
    /// @notice Permanently link msg.sender to a referrer.
    /// @dev Reverts if already linked, if referrer == msg.sender,
    ///      or if referrer is downstream of msg.sender.
    function link(address referrer) external;

    /// @notice The direct referrer of `wallet`, or address(0).
    function referrerOf(address wallet) external view returns (address);

    /// @notice Referrer and level 2 in one call.
    function chainOf(address wallet)
        external view returns (address l1, address l2);

    event Linked(address indexed wallet, address indexed referrer);
    event ReferralPaid(
        address indexed wallet,
        address indexed l1,
        address indexed l2,
        uint256 l1Amount,
        uint256 l2Amount,
        uint256 treasuryAmount
    );
}
Draft

This interface is illustrative. Names and signatures will change before audit. Do not build against it yet.

Frontend guidance

  • Show the referrer address before the user signs. A permanent action deserves an explicit confirmation, not a silent parameter.
  • Say plainly that the link cannot be changed. Users who discover this later will be angry, and they will be right.
  • If the wallet is already linked, disable the action and show the existing referrer rather than failing on-chain.

Reading the graph

The referral graph is public. Every link is an event, and the full structure can be reconstructed from Linked logs without any indexer of ours.

This matters more than it sounds. It means anyone can independently verify who was paid what, and it means the graph outlives the project — if the frontend disappears, the relationships remain readable on-chain.

Design constraints

Why two levels

Two levels reward the person who made the introduction and the person who made that introduction. That is where the causal link to real volume ends. Beyond it, payouts stop tracking contribution and start tracking position in a structure — which is the mechanic regulators, exchanges, and users all recognise as a pyramid.

The cap is in the contract rather than in a policy document, because a policy can be revised and a deployed constant cannot.

Why volume, never purchases

Payment is triggered by swap volume only. Nobody earns because the wallet they referred bought a particular token. Tying rewards to purchases would make the referrer's income depend on recruiting buyers rather than bringing traders, and that is the exact inversion that turns a referral program into a scheme.

Why soulbound

If referral positions were transferable, a market in graph positions would form immediately, and the graph would stop describing who actually introduced whom. Soulbound keeps the data honest at the cost of flexibility.

Not a downline

DAISY pays multiple levels, which is a structure worth being precise about rather than defensive over. Three properties separate it from a multi-level scheme:

  1. Income comes from swap volume. Not from the purchases, deposits, or recruitment of the people below you.
  2. Depth is capped at two, in code. There is no third tier and no mechanism to unlock one.
  3. There is no entry cost. You never buy in, and there is nothing to sell to the person you refer.

These are structural claims, not reassurances — each one is verifiable in the contract once it is published. Judge them then.

Security

Self-referral across wallets

A trader can create a second wallet, link their main wallet to it, and collect the 60% themselves. DAISY does not prevent this and cannot. Any on-chain identity check strong enough to stop it would exclude legitimate users.

The mitigation is economic rather than technical: self-referral returns 60% of a fee the trader would not otherwise have paid, so it is a discount, not an exploit — the trader is strictly worse off than not linking at all. The design goal is that it stays uninteresting, not that it becomes impossible.

Audit status

No audit has been commissioned. No code has been published. Treat every number and interface in this document as a proposal.

Known open questions

  • Gas overhead per swap, and whether the fee remains sensible for small trades.
  • Behaviour under multi-hop routes where a single transaction touches several pools.
  • Whether the treasury share should decrease over time and how that would be governed.

Status

ItemState
SpecificationDraft
ImplementationNot started
AuditNot started
TestnetNot deployed
MainnetNot deployed
TokenDoes not exist

FAQ

Can I change my referrer?

No. The link is set once and there is no function to modify it, including for the team.

Does this take money from liquidity providers?

No. The referral fee sits on top of the pool's LP fee. LP earnings are unchanged.

What if my referrer stops using the protocol?

They keep earning from your volume. The link records who made the introduction, and that fact does not expire.

Why Robinhood Chain?

Referral is the mechanic Robinhood's own growth was built on. Building the on-chain version of it there is a deliberate echo — and nothing more. DAISY is not affiliated with, endorsed by, or connected to Robinhood in any way.

Is there a token?

Not yet. Nothing has been deployed. Any token claiming to be DAISY today is not ours.

When?

No date. The specification is public first so it can be argued with before it is written into a contract.