Future Split
How a share of principal becomes a contribution, plus Feeback and Win Sweep.
Definition
A Future Split is the portion of a transaction's principal that becomes a contribution to the user's own account. It is derived from the account holder's Future Rate and nothing else. The application supplies the notional; the protocol supplies the percentage.
How the amount is derived
The contribution is computed against the notional the application reports, floored to the settlement currency's smallest unit, and capped by the account holder's daily maximum.
- Input
- Notional value of the user action, in the settlement currency.
- Rate
- The account's Future Rate. Range 0.5% to 2.0%.
- Daily cap
- An account-level ceiling. Contributions pause for the rest of the day once reached.
- Rounding
- Floored to the cent. Rounding dust is never contributed.
- Result
- The contribution, which the application deducts from the amount it executes.
The preview an application renders is read from the connected account, never set by the application. A client that sets a rate itself will be rejected at settlement.
1import { useFutureSplit } from "@investor-tech/sdk/react";23export function TradeFooter({ notional }: { notional: number }) {4 // Reads the connected account's own Future Rate. Never set it yourself.5 const { rate, contribution, match, recipe } = useFutureSplit({ notional });67 return (8 <dl className="split-preview">9 <dt>Future Split</dt>10 <dd>{contribution.formatted}</dd>11 <dt>{match.application} match</dt>12 <dd>{match.formatted}</dd>13 <dt>Destination</dt>14 <dd>{recipe.name}</dd>15 </dl>16 );17}Feeback
Feeback is the same idea applied to the fee rather than the principal. An application that already charges a fee redirects a share of it into the user's account. The user pays exactly what they paid before; the destination of part of that fee changes.
- Funded by
- The application, from fee revenue it already collects.
- Typical range
- 10% to 50% of the fee charged on the activity.
- Settlement
- Included in the same four-hour batch as Future Splits.
- Disclosure
- The redirected share is shown to the user before the transaction.
Win Sweep
Win Sweep applies to verified realised profit on a closed position. The account holder sets a rate between 5% and 25%, and only that share of profit is routed into the account. A losing exit never triggers a sweep, and unrealised gains are never eligible.
- Trigger
- A closed position with a positive realised result, reported by the venue.
- Basis
- Realised profit only. Cost basis is supplied by the reporting application.
- Rate
- Set by the account holder. Zero disables the mechanism entirely.
- Verification
- The realised figure is checked against the position receipt before settlement.
Limits and safety
Each mechanism has a different funder, a different trigger and a different ceiling.
| Mechanism | Funded from | Trigger | Paid by | Typical range |
|---|---|---|---|---|
Future Split A fixed share of the amount already in motion becomes a contribution. | User principal | Any settled transaction | The user | 0.5% – 2.0% |
Feeback The fee the user already paid is redirected into something the user owns. | Application fee | Fee-bearing activity | The application | 10% – 50% of fee |
Protocol Match The internet-native employer match, pre-funded and capped per user. | Match Escrow | A qualifying contribution | The application | 5% – 30% of contribution |
Win Sweep Only realised profit is eligible. A losing exit never triggers a sweep. | Realised gain | Profitable exit | The user | 5% – 25% of profit |
- Rate ceiling
- 2.0%. Higher rates are rejected by the account contract.
- Daily maximum
- Account-level. Contributions stop for the day once reached.
- Minimum contribution
- $0.01. Amounts below the floor are not routed.
- Pausing
- The account holder can set the rate to zero at any time, with immediate effect.
Events and data model
Every mechanism resolves to the same settled event shape.
1type ContributionEvent = {2 account: `0x${string}`;3 application: string;4 activity: "trade.completed" | "position.closed" | "swap.routed" | "payment.settled";5 notional: number; // USD value of the user action6 contribution: number; // Future Split derived from the account's own rate7 match: number; // Paid from Match Escrow, zero when no campaign applies8 recipe: "2040" | "2050" | "2060";9 batch: string; // Settlement batch identifier10 settledAt: string; // ISO 860111};