1. Introduction and motivation
Many families have no savings cushion for emergencies. Current accounts pay almost nothing and traditional savings products lock the money away. Saving is hard mostly because of habit: the incentive to put a little aside every month is weak and comes late.
Prize-linked savings products have precedents, such as NS&I Premium Bonds in the UK or prize-linked savings accounts at US credit unions, and they show that a visible prize encourages saving. N0Loss takes that idea, but with no randomness: savers always receive their share of what their savings generate, and prizes are allocated through a public ranking that measures consistency and saving against each person's own pace, within leagues of similar balances. Prizes go to consistency, not to luck or to how much someone has.
2. Architecture (Stellar/Soroban)
The architecture is described at the level of contracts and functional modules. This document sets the economic behaviour they must follow.
| Contract / module | Function | Stellar building block |
|---|---|---|
| Vault | One per asset (EURC, USDC). Non-custodial deposits and withdrawals; principal accounted for in vault shares; per-person cap. Withdrawals cannot be paused. | SAC / SEP-41 |
| Strategy Router | Allocates capital to authorised strategies within their limits; keeps a liquidity buffer and manages the withdrawal queue (section 7). | Soroban contract |
| DeFindex adapter | Deposits into and withdraws from DeFindex vaults and reads their value. Later, a Spiko adapter with the same interface. | DeFindex vaults |
| FeeSplitter | Splits what savings generate: 60% to the saver (it stays in the Vault and raises their share value), 30% to LeagueVault and 10% to N0Loss. The 60% minimum and 10% maximum are immutable. | Soroban contract |
| LeagueVault | League prize pool and its reserve. Receives the 30% and sponsor contributions; publishes the monthly Merkle root and pays claimed prizes. | Soroban contract |
| SponsorVault | A sponsor's own vault: the sponsor keeps its principal, donates what it generates to LeagueVault and is subject to a 30-day withdrawal notice. It also holds the funds for sponsored challenges. | Soroban contract + Strategy Router |
| Governance | Multisig and a timelock of at least 30 days for any change to contracts or parameters; enforces the immutable limits. | Soroban contract (OpenZeppelin Stellar) |
| Onboarding | KYC (one person, one account) and euro ↔ EURC/USDC ramp. | MoneyGram Ramps (SEP-24); SEP-12 |
| Passkey wallets | Smart accounts controlled with the phone's biometrics, with no seed phrases. | Smart Account Kit; SEP-45 |
The ranking is computed off-chain with the public formula; only its Merkle root is published and verified on-chain (section 5.7). Settlement in a few seconds and sub-cent fees on Stellar.
3. Source of the surplus
Everything generated is variable and not guaranteed.
One vault per currency. Each Vault invests only in assets of its own currency, so savers take no exchange-rate risk between what they deposit and what is invested. Investing euros in dollar or sterling bonds would require hedging the currency, and that hedge costs roughly the difference between the two currencies' interest rates: what a hedged position generates ends up close to what a euro asset generates. That is why N0Loss does not promise in euros what bonds in other currencies generate.
| Vault | For | Assets |
|---|---|---|
| EUR | Spain and the EU (launch) | DeFindex vaults in EURC; later, tokenised euro-area Treasury bills (Spiko EUTBL) |
| USD | Latin America (later phase) | DeFindex vaults in USDC; tokenised US Treasury bills, only from an issuer with retail access in the target countries and available on Stellar |
| Local currency | Country by country (later phase) | Tokenised local government debt, for example CETES through Etherfuse in Mexico, subject to analysis |
- Main source: DeFindex vaults. They allocate capital to over-collateralised lending markets on Stellar; N0Loss integrates only with DeFindex, not directly with those markets. The surplus comes from what borrowers pay for their loans, while posting collateral worth more than the loan. Risks: vault and market contracts, failed liquidations, oracles and high market utilisation.
- Second source, planned after mainnet: Spiko. A money-market fund of euro-area Treasury bills, already issued on Stellar. Adding it is subject to Spiko's authorisation, a legal opinion and an audit. Specifics: the token can only be held by wallets authorised by the issuer, redemptions happen on business days and the fund charges its own fee.
- Other tokenised assets (US Treasury bills for the dollar vault, Etherfuse for local Latin American currencies): later phase only, subject to analysis.
- Per-strategy limits: during the beta there is a single strategy, DeFindex vaults in EURC. Once more sources are added, no strategy and no underlying lending protocol may exceed 60% of what is invested.
- Spiko weight: at most 40% of what is invested. With that limit the sizing rule in section 7.1 still holds, even with several days without redemptions.
3.1 Surplus for the period
Part of the balance stays uninvested as a liquidity buffer in EURC/USDC. The examples in this document assume 95% invested. The rest is spread across active strategies with weights w_k (at launch, only one: DeFindex):
S_total = Σ balance_i (balances of all savers)APR_portfolio = Σ_k w_k × APR_k (Σ w_k = 1)Y_month ≈ S_total × 0.95 × APR_portfolio / 12APR_k: effective annual rate generated by each strategy, observed on-chain. Variable and not guaranteed.
4. Surplus split (60 / 30 / 10)
What savings generate —never the principal— is split as follows every time FeeSplitter records it:
| Destination | Weight | Description |
|---|---|---|
| Saver | 60% | On their own balance and in proportion to it. Accrues continuously and is always paid, whether or not they take part in the leagues. |
| League prize pool | 30% | Goes to LeagueVault and is distributed in full among savers every month. |
| N0Loss | 10% | Operations and technical reserve. N0Loss's only fee income. |
Y = asset_value(t) − asset_value(t − 1) (recorded surplus)Savers = 0.60 · Y LeagueVault = 0.30 · Y N0Loss = 0.10 · YUserShare_i ≈ balance_i × 0.95 × APR × 0.60 (per year)The 60% stays in the Vault and is reflected in each saver's share value, so it accrues continuously. Immutable limits: the saver's share cannot go below 60% and N0Loss's cannot exceed 10%. No deposit or withdrawal fees.
5. Consistency Leagues
Taking part is free and voluntary: those who do not take part receive exactly the same. There is no element of chance: winners come from a deterministic ranking with a public formula.
5.1 Leagues and phases
Each saver competes in a league with people of similar balances. The league is assigned by the average daily balance over the last 3 months.
| Phase | Users | Per-person cap | Leagues |
|---|---|---|---|
| Testnet | Pilot with test funds | — | Testing |
| Mainnet beta | 1,000–2,000, by invitation | €1,000 | Up to €250 · €250 to €500 · €500 to €1,000 |
| After the beta | Phased opening | Expandable | New leagues unlocked in phases: first up to €10,000, then higher |
5.2 Pool per league
The monthly pool is split across leagues 50% by their money and 50% by their number of participants. The league with more users and more money generates more prizes.
Pool_month = 0.30 · Y_month + Sponsorship_month − Reserve_retention + Reserve_usePool_L = Pool_surplus × ( 0.5 × S_L / S_total + 0.5 × N_L / N_total ) + Sponsorship_LS_L: balance of league L's participants. N_L: number of participants in league L. Pool_surplus: the part of the pool that comes from the surplus.
Sponsorship directed to higher-balance leagues. With the 50/50 split, high-balance leagues contribute more to the pool than they receive. Sponsor contributions correct this: they are allocated first, from the highest league down, to cover that deficit, and the rest goes to the highest league.
Deficit_L = max(0, Pool_surplus × (S_L / S_total − share_L)) share_L = 0.5 × S_L / S_total + 0.5 × N_L / N_totalIn the beta example (section 8), the €500 to €1,000 league contributes ≈ €300.59/month and receives ≈ €226.19: about €74/month of sponsorship balances it.
5.3 Tiers
Within each league there are two tiers every month:
Top 0.5%: n₁ = max(1, round(0.005 × N_L)) Prize₁ = 0.65 × Pool_L / n₁0.5% to 1%: n₂ = max(1, round(0.005 × N_L)) Prize₂ = 0.35 × Pool_L / n₂Prize_i = min(Prize_tier, average_balance_i)The prize is credited to the winner's balance. Any amount above the maximum prize goes to the prize reserve (section 5.6).
5.4 Scoring
Each participant's monthly score combines three criteria, each normalised between 0 and 1:
Score_i = 0.50 × C_i + 0.35 × A_i + 0.15 × R_i- Consistency (C, 50%): consecutive months without a net withdrawal, over a rolling 12-month window. Newcomers are measured over the months they have, and can win a prize from their third month.
C_i = consecutive_months_without_net_withdrawal_i / min(tenure_i, 12) - New savings (A, 35%): what someone saves in the month against their own history, capped at 100% of their target. Each person competes against themselves, not against those who have more.
target_i = max(median(net_savings_i, previous 6 months), €30) A_i = min(net_savings_month_i / target_i, 1) - Streak (R, 15%): consecutive months saving at least €30, in one or more contributions. Unlike consistency, it is not divided by tenure: it counts up to 24 months, so tenure weighs in the score and exact ties are rarer.
R_i = min(streak_i, 24) / 24
Those with less than 6 months are measured with the median of the months they have; with no history, their target is the €30 minimum.
5.5 Rules
- Rest period: 3 months after winning any prize.
- Tenure and habit: the design explicitly rewards tenure and the saving habit.
- Tie-break: fewest prizes won in the last 12 months; then the longest streak; then tenure.
- Emergency withdrawal: one per year, of up to 25% of the balance, does not break consistency.
- Maximum prize per person per month: their average balance.
- Minimum balance to compete: €50.
- History tied to a verified person (KYC: one person, one account).
- Voluntary: those who do not take part receive exactly the same.
5.6 One-month reserve
Prizes are not announced in advance: they depend on what is actually generated in the month and are known at month-end. To keep them steady in weaker months, LeagueVault holds a reserve worth one month of pool, built up gradually, which also receives any excess when the maximum prize applies. The reserve belongs to the savers' pool.
- Retention: 10% of each month's pool is retained until the reserve reaches the average pool of the last 3 months. While it is full nothing is retained, and anything above it is distributed the following month.
- Use: if a month's pool falls below 80% of the average of the previous 3 months, the reserve tops it up to that 80%, as long as it has funds.
5.7 Verifiable ranking
- Computation: at month-end, the ranking is computed off-chain with the public formula and on-chain data (balances, contributions and withdrawals).
- Publication: a Merkle root with winners and amounts is published in LeagueVault, together with the data needed to reproduce the computation.
- Challenge period (7 calendar days): anyone can reproduce the computation with the published data and report a discrepancy, in the app or at contact@n0loss.com. If valid, the ranking is corrected, a new root is published and the period restarts.
- Claim (90 days): each winner then claims their prize with their Merkle proof and it is credited to their balance. Anything unclaimed after 90 days goes to the prize reserve.
Every user can check their own position. The N0Loss team cannot take part in the leagues.
6. Sponsors
Companies can support saving in three ways:
- Contribution to the league prize pool.
- Sponsored challenges: a guaranteed prize for reaching a milestone (for example, a 6-month streak), with the amount deposited upfront.
- Capital in its own vault (SponsorVault): the sponsor keeps its principal, donates what it generates to LeagueVault and has a 30-day withdrawal notice.
Sponsorship_month = Σ contributions + Σ (capital_k × 0.95 × APR / 12)Contributions to the pool and what SponsorVaults generate and donate are directed to higher-balance leagues (section 5.2). Sponsors pay N0Loss a fee for the visibility service, separate from what they contribute to prizes. N0Loss promises sponsors no return of any kind; their capital is exposed to the same protocol risks as savers' capital. Excluded sectors: consumer credit and payday loans, gambling and betting, tobacco, alcoholic beverages, weapons, and promoters of speculative crypto-assets.
6.1 Business model
The 10% of the surplus covers operations and grows with total savings, but it is not enough on its own: with costs of €300,000/year (illustrative assumption) and vaults generating 4% a year, about €79M in savings would be needed. That is why the main revenue comes from services to third parties:
| Revenue source | Who pays | What they get |
|---|---|---|
| Sponsorship fee | Brands that contribute to the pool, fund challenges or deposit in a SponsorVault | Visibility with an audience that saves, aggregated impact metrics and association with a positive habit |
| B2B2C financial wellbeing programmes | Employers, city councils, NGOs and insurers | Leagues and challenges for their staff or users, with their own contributions to the pool, and measurement of habit change (share saving every month, retention, savings growth), always aggregated |
| 10% of the surplus | Generated by the deposited savings | Operations and technical reserve |
- Pricing: a fixed monthly fee per sponsor depending on the visibility level, and a price per participant per year for B2B2C programmes. Amounts will be set with the first sponsors and pilot programmes during the beta.
- Funding and break-even: development up to the beta is funded through the SCF application (tranches 2 and 3). Sponsorship and B2B2C revenue start with the phased opening. Break-even will be calculated with actual costs and beta data.
7. Liquidity, withdrawals and losses
Users can withdraw their money at any time, free of charge. Withdrawals can never be paused: no governance role has that power.
7.1 Liquidity order
| Order | Source | Availability |
|---|---|---|
| 1 | Liquidity buffer in EURC/USDC | Immediate |
| 2 | Positions in DeFindex vaults | Immediate if lending markets have free liquidity (depends on utilisation) |
| 3 | Spiko (later) | Redemption on the next business day, to replenish the sources above |
Sizing rule. Liquidity available on demand must cover worst-case expected withdrawals. The buffer counts at 100% and DeFindex positions at a haircut d_D, because their liquidity depends on utilisation. Once Spiko is added, the worst case will include several consecutive days without redemptions (for example, a bank holiday), and Spiko's maximum weight follows from this rule.
Buffer + d_D × DeFindex ≥ Worst_case_withdrawals- Buffer: 5% of total balance, in EURC/USDC.
- Liquidity haircut
d_D: 50%. Only half of what is in DeFindex counts as available on demand. - Worst-case withdrawals: until beta data is available, the assumption is requests to withdraw 15% of total balance within 48 hours.
With these values, available liquidity is 5% + 50% × 95% = 52.5% of the balance, more than three times the assumed worst case. These are initial values and will be recalibrated with beta data.
7.2 Fair withdrawal queue
If a withdrawal cannot be served immediately (for example, because lending markets are almost fully borrowed), it enters a first-come, first-served queue. The queue is served as liquidity comes in, nobody can jump ahead, and each queued withdrawal keeps being valued at the share value.
7.3 Loss mode
If a strategy suffers a loss, the Vault share value is marked down and the loss is shared proportionally among all savers. Nobody is paid in full while others wait: those who withdraw during loss mode do so at the adjusted value. While it lasts, FeeSplitter sends nothing to LeagueVault or N0Loss: everything generated goes to savers until the share value recovers its pre-loss level. The loss is disclosed in the app and on the website as soon as it is detected, with its amount and the new share value.
8. Numerical example and parameters
8.1 Illustrative example: the beta
Assumptions: 1,500 users, 40% in the league up to €250 (average balance €150), 35% in the €250 to €500 league (€375) and 25% in the €500 to €1,000 league (€750), for an average of about €380 (€378.75); vaults generating 4.5% a year; 95% invested; no sponsors and a full reserve.
| Assumption / result | Value |
|---|---|
| Total savings | ≈ €568,125 |
| Surplus generated (95% invested, 4.5%) | ≈ €2,024/month |
| For savers (60%) | ≈ €1,214/month |
| League prize pool (30%) | ≈ €607/month |
| N0Loss (10%) | ≈ €202/month |
| League | Participants | League pool | Top 0.5% | 0.5% to 1% |
|---|---|---|---|---|
| Up to €250 | 600 | ≈ €169.53 | 3 × ≈ €36.73 | 3 × ≈ €19.78 |
| €250 to €500 | 525 | ≈ €211.46 | 3 × ≈ €45.82 | 3 × ≈ €24.67 |
| €500 to €1,000 | 375 | ≈ €226.19 | 2 × ≈ €73.51 | 2 × ≈ €39.58 |
A saver with €500 receives ≈ 500 × 4.5% × 0.95 × 0.60 ≈ €12.83/year (≈ 2.57% a year), whether or not they take part in the leagues. With €1,000, ≈ €25.65/year.
8.2 Scale scenario: €10M
| Assumption / result | Value |
|---|---|
| Total savings | €10,000,000 |
| Surplus generated (95% invested, 4.5%) | ≈ €35,625/month |
| For savers (60%) | ≈ €21,375/month |
| League prize pool (30%) | ≈ €10,688/month |
| N0Loss (10%) | ≈ €3,563/month |
Initial proposal for leagues at scale, to be recalibrated with beta data: up to €250 · €250 to €500 · €500 to €1,000 · €1,000 to €2,500 · €2,500 to €5,000 · €5,000 to €10,000. The 50/50 split across leagues and sponsorship directed to higher-balance leagues remain.
8.3 Parameters
| Parameter | Value |
|---|---|
| Per-person savings cap | €1,000 in the beta, expandable in phases |
| Deposit / withdrawal fee | 0 / 0 |
| Surplus split | 60% saver / 30% league pool / 10% N0Loss (immutable limits: ≥ 60% and ≤ 10%) |
| Saver's share | Continuous accrual |
| League cycle | Monthly |
| League assignment | Average daily balance over the last 3 months |
| Split across leagues | 50% money / 50% participants |
| Tiers | Top 0.5%: 65% · 0.5% to 1%: 35% · at least 1 winner per tier |
| Scoring | Consistency 50% · new savings 35% (minimum target €30) · streak 15% (at least €30 a month; counts up to 24 months) |
| Tie-break | Fewest prizes in 12 months → longest streak → tenure |
| Sponsorship | Directed to higher-balance leagues |
| Rest after winning | 3 months |
| Maximum prize per person per month | Their average balance |
| Minimum balance to compete | €50 |
| Emergency withdrawal | 1 per year, up to 25% of the balance |
| Prize reserve | 1 month of pool; 10% retention until full; used below 80% of the average |
| Challenge / prize claim | 7 days / 90 days (unclaimed goes to the reserve) |
| Liquidity buffer / DeFindex haircut | 5% / 50% |
| Per-strategy limit / Spiko | 60% / 40% of what is invested |
| Timelock | ≥ 30 days |
| Strategies | One vault per currency. EUR: DeFindex; Spiko planned after mainnet. USD and local currencies: later phase |
| Network | Stellar (Soroban) |
9. Security and risk management
The name «N0Loss» is not a guarantee: savers' money is not guaranteed and is not covered by the Spanish Deposit Guarantee Fund.
| Risk | Mitigation |
|---|---|
| Exploit in N0Loss contracts | Open source; external audit planned through the SCF Audit Bank before receiving real funds; per-person cap. |
| Failure or exploit in DeFindex vaults or lending markets | Audited protocols; per-strategy limit; collateral monitoring; loss mode with proportional sharing (section 7.3). Cannot be eliminated: it can affect the principal. |
| Stablecoin depeg (EURC, USDC) | Stablecoins from regulated issuers. Cannot be eliminated. |
| Drop in what savings generate | The saver bears the variation of their 60%; prizes depend on what is actually generated and the one-month reserve smooths them. |
| Liquidity (high utilisation; later, Spiko redemptions on business days only) | Liquidity order, buffer sized for the worst case and fair withdrawal queue (section 7). |
| Malicious upgrades or parameter changes | Multisig and a timelock of at least 30 days with in-app notice; immutable limits; withdrawals cannot be paused, so anyone can exit before a change takes effect. |
| Ranking manipulation | Public formula; on-chain Merkle root; challenge period; KYC (one person, one account); the team does not take part. |
9.1 Threat model
What must be protected: savers' balances (Vault), the prize pool and its reserve (LeagueVault), sponsors' capital (SponsorVault) and the integrity of the ranking. What follows are design requirements the contracts must meet; they will be checked with tests and in the audit, and the full model will be published with the repository.
| Threat | Mitigation | Residual risk |
|---|---|---|
| A. N0Loss contracts | ||
| Share accounting errors (rounding, first-deposit inflation attack) | Rounding always in the Vault's favour; a non-withdrawable initial deposit by N0Loss; the invariant «value of shares = Vault assets» checked with property-based tests. | Bugs missed by tests and audit. |
| Incorrect surplus split | Percentages are enforced in the contract (≥ 60% for the saver, ≤ 10% for N0Loss). Only value above the previous high-water mark is split, so nothing is ever taken from principal or split twice. | Low. |
| Blocked withdrawals | There is no function to pause withdrawals. If liquidity is short, the first-come, first-served queue is served as funds arrive; the per-person cap limits its size. | Waiting times when liquidity is very low. |
| B. Admin keys | ||
| Theft or misuse of an admin key, including by insiders | Multisig with keys on separate devices [PENDING: threshold and signers]. Every change goes through a 30-day timelock visible on-chain and announced in the app, and since withdrawals cannot be paused, anyone can exit before it takes effect. No role can move Vault funds to another address, change the immutable limits or pause withdrawals. | Users not reacting within the 30-day window. |
| Urgent withdrawal from a strategy | The only action without a timelock is returning funds from a strategy to the Vault: it can only go in that direction, never outwards. | Low. |
| C. DeFindex (external dependency) | ||
| Failure, exploit or insolvency of the vault or the underlying lending market | Per-strategy limit; monitoring of the DeFindex share value and utilisation; urgent withdrawal to the Vault; loss mode with proportional sharing (section 7.3). | Loss of part of the principal: cannot be eliminated. |
| Changes made by DeFindex's own administrators, outside N0Loss's timelock | Choose vaults whose governance has its own delays [PENDING: verify the guarantees of the chosen vault]; monitor their changes and withdraw to the Vault if a change increases risk. | Changes applied without prior notice. |
| Manipulated DeFindex share value, to withdraw more than due | Withdrawals are valued at the lower of the current value and the last validated value. Surplus is only recorded if the value rises within a reasonable margin between two readings; anomalous jumps are not split and are held for review. | Small manipulations below the margin. |
| D. Ranking manipulation | ||
| Several accounts held by one person | KYC (one person, one account), per-person cap and a €50 minimum balance to compete. | Identity fraud that gets past KYC. |
| Withdrawing and re-depositing to inflate new savings | Net savings for the month are measured (contributions minus withdrawals); a net withdrawal breaks consistency; the target is one's own median and the score is capped at 100%. | Low. |
| Last-minute moves before month-end | Leagues are assigned by 3-month average daily balance, not by the balance at a single point in time. | Low. |
| Operator publishing a wrong or self-serving ranking | Formula, computation code and data are public so anyone can reproduce it; 7-day challenge period; the contract rejects a root whose prizes add up to more than each league's available pool; the team cannot take part. | Errors nobody challenges in time. |
| E. Off-chain | ||
| Impersonation of the website or app (phishing) | Passkey accounts (WebAuthn), bound to the domain and phishing-resistant; no seed phrases to steal. | Attacks on the user's device. |
| Identity data leak | KYC is done by the anchor (MoneyGram); N0Loss keeps the minimum needed to enforce «one person, one account». | Incidents at providers. |
10. Regulatory compliance
- No randomness, not gambling: the leagues have no element of chance and require no payment to take part. Prizes are allocated through a deterministic ranking with a public formula.
- Source of the surplus: the surplus is not paid by the stablecoin issuer: it comes from placing balances in other assets (over-collateralised lending through DeFindex and, later, tokenised Treasury bills) and is split to each saver in proportion to their balance. Only the distribution of the 30% prize pool depends on consistency and the other scoring factors (new savings and streak). [PENDING: legal opinion on how the product fits MiCA, including its Article 50, and on whether it constitutes an investment service]
- N0Loss as an entity: being incorporated in Spain; it has prepared its application to the Spanish Regulatory Sandbox (Law 7/2020), to which it has not yet been admitted. In Latin America, licences are being identified country by country.
- KYC/AML: onboarding through MoneyGram and Stellar anchors (SEP-12/24). One verified person, one account.
- No real deposits are accepted until these points are closed.
11. Governance
- Editable parameters, within limits: per-person cap, leagues and their brackets, scoring weights, tiers, prize reserve, liquidity buffer and authorised strategies.
- Immutable: the 60% minimum for the saver, the 10% maximum for N0Loss and the impossibility of pausing withdrawals.
- Timelock: any change to contracts or parameters goes through a timelock of at least 30 days, with in-app notice. Initial control by multisig.
- No retroactive changes: they do not affect months already closed, and ranking rules change at most once per quarter.
- At scale: greater decentralisation of parameters, with no governance token.
12. Roadmap
Validation (website, double opt-in waitlist and economic model) is complete. This is the plan from the SCF award; months are counted from the award and will be adjusted to the programme's actual timelines.
| Stage | Indicative duration | What gets closed |
|---|---|---|
| Kick-off | Month 0–1 | Company incorporated, legal opinion commissioned, public repository, full threat model and contract specification. |
| Tranche 2: testnet | Months 1–3 | Contracts and DeFindex integration on testnet, ranking service, app demo and audit request to the SCF Audit Bank. |
| Between tranches | Months 3–5 | Audit and fixes, legal opinion received, agreement with MoneyGram, final rules and terms, and regulatory sandbox application. |
| Tranche 3: mainnet beta | Months 5–9 | 1,000–2,000 users by invitation, €1,000 cap, three leagues and weekly metrics. |
| Recalibration | Months 9–10 | Parameter adjustments, higher caps and more leagues, first sponsors and B2B2C pilots. |
| Later | — | Spiko as a second strategy, dollar vault and Latin America. |
What could delay the plan the most: the legal opinion (if the EU fit is not favourable) and the MoneyGram agreement. That is why both start in the first month.
13. Building blocks and references
- Soroban: Stellar's smart contract platform (Rust).
- DeFindex: vaults that allocate capital to over-collateralised lending strategies on Stellar; main strategy.
- Spiko (later): money-market fund of euro-area Treasury bills issued on Stellar; second source planned after mainnet.
- MoneyGram Ramps (SEP-24): cash and local-currency on/off ramp.
- SEP-12 / SEP-24 / SEP-45: KYC, deposits and withdrawals with anchors, and web authentication for contract accounts.
- Smart Account Kit: passkey smart accounts.
- OpenZeppelin Stellar: contract libraries (access control, timelock, tokens).