Skip to content

Commit ff81e4f

Browse files
sktbrdclaude
andcommitted
feat(stake): rider "opportunities" chooser with live Morpheus APR
The stake dialog's ETH/USDC toggle becomes a chooser of the opportunities a rider offers, each with its own APR: - Morpho USDC (stable) — the existing sponsorship vault, 50/25/25 yield split. - Morpheus stETH / Morpheus USDC (MOR) — stake on mainnet with the athlete as referrer; you keep the MOR, Gnars via opt-in donate. Higher, variable upside. The Morpheus rate is a live on-chain estimate added to /api/yields: dailyMorEmission × MOR price × 365 ÷ pool TVL (getPeriodRewards + totalDepositedInPublicPools, MOR/ETH prices from CoinGecko), labelled "APR · est." since MOR emissions and price move. Verified against live on-chain data (~17.6% at time of writing). Selecting a MOR opportunity swaps the flow to the MOR model (you keep it / athlete referrer bonus / optional donate), shows an estimated yearly value, a mainnet-gas warning, and routes confirm through useMorpheusStake (which already approves the distributor). The stable vault path is unchanged. New copy is localized in en + pt-br. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 7f5c080 commit ff81e4f

4 files changed

Lines changed: 320 additions & 103 deletions

File tree

messages/en/stake.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,29 @@
9898
"claimFailTitle": "Claim failed",
9999
"withdrawFailTitle": "Withdraw failed"
100100
},
101+
"opp": {
102+
"choose": "What does {name} offer?",
103+
"stableTag": "Stable",
104+
"morTag": "MOR · variable",
105+
"vaultUsdc": "Morpho USDC",
106+
"morSteth": "Morpheus stETH",
107+
"morUsdc": "Morpheus USDC",
108+
"estNote": "≈{rate}% APR estimate — swings with the MOR price and pool size.",
109+
"mainnetWarn": "Ethereum mainnet — real gas. Principal unlocks after a 7-day lock.",
110+
"morHow": "How the MOR flows",
111+
"youKeepMor": "You keep 100% of the MOR",
112+
"athleteBonus": "{name} earns a referrer bonus (protocol-funded)",
113+
"donateOpt": "Optionally donate your MOR to the split",
114+
"estYearLabel": "Estimated value / year",
115+
"estYearNote": "Paid in MOR on Arbitrum — a live estimate, not a guarantee.",
116+
"approving": "approving…",
117+
"staking": "staking on mainnet…",
118+
"stakedMorTitle": "Staked with {name} on Morpheus",
119+
"stakedMorDesc": "Earning MOR on Arbitrum — your principal unlocks after 7 days.",
120+
"yourPosition": "Your position",
121+
"principal": "principal",
122+
"yield": "yield"
123+
},
101124
"admin": {
102125
"title": "Sponsorship vaults",
103126
"desc": "One Morpho vault per rider. Deposits earn on Moonwell; half the yield becomes a fee split Gnars 25% / athlete 25% (the depositor keeps 50%). Owner = SOPA Safe. You sign the deploy and the batch — 1 of the Safe’s 2 confirmations.",

messages/pt-br/stake.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,29 @@
9898
"claimFailTitle": "Falha ao sacar rendimento",
9999
"withdrawFailTitle": "Falha no saque"
100100
},
101+
"opp": {
102+
"choose": "O que {name} oferece?",
103+
"stableTag": "Estável",
104+
"morTag": "MOR · variável",
105+
"vaultUsdc": "Morpho USDC",
106+
"morSteth": "Morpheus stETH",
107+
"morUsdc": "Morpheus USDC",
108+
"estNote": "≈{rate}% APR estimado — varia com o preço do MOR e o tamanho do pool.",
109+
"mainnetWarn": "Ethereum mainnet — gas real. O principal destrava após um lock de 7 dias.",
110+
"morHow": "Como o MOR flui",
111+
"youKeepMor": "Você fica com 100% do MOR",
112+
"athleteBonus": "{name} ganha um bônus de indicação (pago pelo protocolo)",
113+
"donateOpt": "Opcional: doe seu MOR pro split",
114+
"estYearLabel": "Valor estimado / ano",
115+
"estYearNote": "Pago em MOR na Arbitrum — estimativa ao vivo, não é garantia.",
116+
"approving": "aprovando…",
117+
"staking": "stakeando na mainnet…",
118+
"stakedMorTitle": "Stake com {name} na Morpheus",
119+
"stakedMorDesc": "Rendendo MOR na Arbitrum — o principal destrava após 7 dias.",
120+
"yourPosition": "Sua posição",
121+
"principal": "principal",
122+
"yield": "rendimento"
123+
},
101124
"admin": {
102125
"title": "Cofres de patrocínio",
103126
"desc": "Um vault Morpho por rider. Depósito rende na Moonwell; metade do rendimento vira fee dividida Gnars 25% / atleta 25% (o depositante fica com 50%). Owner = Safe da SOPA. Você assina o deploy e o batch — 1 das 2 confirmações do Safe.",

0 commit comments

Comments
 (0)