How the CommissionRegistry Works: On-Chain Referrals With No Intermediary
Most referral programs run on a database. You get a code, share it, someone signs up, the company credits your account. The commission calculation happens on a server you cannot inspect, paid on a schedule you cannot verify, and revocable at will.
SukukFi's CommissionRegistry runs on Berachain. The code derives from your address. The link registers on-chain. The payment calculates from vault state and pays in trUST to your wallet. No server intermediary, no approval step, no discretionary revocation.
Here is how it works.
Where the code comes from
Your invite code is a deterministic hash of your Berachain wallet address:
code = keccak256(walletAddress)[0:8]
The contract computes this on-chain. No server generates it, no database stores it. Two wallets will always produce two different codes. Your code exists before you register — registration is just the act of making yourself findable in the contract's index so referred LPs can link to you.
Your referral link is: https://app.sukuk.fi/?ref=YOUR_CODE
How an LP links to you
When a new LP clicks your referral link and deposits into a SukukFi vault, the app calls linkLP(introducerAddress) on the CommissionRegistry contract. This records the association on-chain: this LP's address is linked to this introducer's address.
The link is permanent. An LP cannot switch to a different referrer after depositing. This prevents someone from introducing capital through one link, then retroactively crediting a different introducer once the deployment is confirmed eligible.
The 30-day deployment requirement
Earning commission requires two conditions: the LP must be linked to you, and their capital must have been deployed for at least 30 days.
The clock starts when the SukukFi operator calls recordDeployment(lpAddress) on the contract — not at the LP's deposit time. There is a short lag between when an LP's ERC-7540 async deposit is fulfilled and when the operator confirms the deployment on-chain. The dashboard shows a countdown per referred LP. You can also query daysUntilEligible(lpAddress) directly on the contract — type(uint256).max means no deployment has been recorded yet.
The 30-day minimum serves a specific purpose: it rules out flash deposits and confirms that referred LPs are real capital providers, not single-cycle optimisers. ERC-7540 async vaults are naturally sticky anyway — 15-day invoice settlement cycles make early withdrawal uncommon. The 30-day window simply makes the intent explicit and on-chain verifiable.
How commission calculates
Each month, SukukFi takes 5% of the protocol fee pool and distributes it across all eligible introducers, weighted by the proportion of qualifying capital each introducer brought in.
If the eligible pool for a given month is $2m total, and you introduced $200k of that (10%), you receive 10% of the 5% pool — paid in trUST to your wallet.
Commission stops automatically when a referred LP exits the vault. Their capital leaves the pool weight calculation; your share adjusts accordingly for the next distribution. No clawback on past payments, no penalty for the introducer.
What pool-weighted means in practice
The weighting means your commission scales with how much capital you introduce, not just how many LPs. Introducing one LP with $1m matters more than introducing ten LPs with $10k each.
This also means commission is not a flat percentage of referred deposits. It is a share of a fixed pool — the 5% commission pool. If a large institutional LP enters through another introducer's link, your percentage of the pool shrinks even if your referred capital stays constant. The pool is the same size; you now represent a smaller fraction of it.
For introducers building a referral business: the most valuable thing you can do is bring in capital providers who maintain long-term deployment, not one-time deposits.
One address, one code
Each wallet address maps to exactly one invite code. You cannot register multiple codes from the same address. If you want to track different referral channels separately, register each channel with a different wallet.
An LP's referral link sets on first deposit and cannot be changed. This prevents the referral system from being gamed by switching referrers after capital is deployed — the link that brought the LP in is the one that stays.
What you cannot do
You can refer yourself, but there is no economic reason to. Commission on your own capital is profit you would have received as an LP anyway, routed through an extra step.
Commission does not pay immediately on deposit. The 30-day deployment clock means you wait at minimum one month from when your referred LP's capital is confirmed deployed. Commission then accrues monthly for as long as the LP stays deployed.
Why this runs on-chain
A server-based referral system has three failure modes: the company changes the commission rate, pauses payouts, or disputes whether a referral was valid. All three depend on the company's discretion.
The CommissionRegistry removes that discretion for the mechanics of attribution. The link between an LP and an introducer is on-chain and verifiable. The pool weight calculation reads from vault state — it is not an internal record you have to trust. The payout in trUST goes directly to your wallet.
SukukFi still controls the timing of the monthly distribution — this is not fully trustless. But the attribution and calculation happen on-chain, which means the math is public and auditable even if the trigger is operator-initiated.
For an introducing LP who wants to verify their commission is correctly calculated: the contract state, the vault balances, and the linked LP records are all readable on Berachain. No customer service ticket required.