Skip to content

feat(earn): claim the yield boost from the Earn page, paid in soFUSE - #2609

Merged
MusabShakeel576 merged 1 commit into
qafrom
claude/merkl-campaign-implementation-nogeis
Sep 30, 2026
Merged

MusabShakeel576 merged 1 commit into
qafrom
claude/merkl-campaign-implementation-nogeis

Conversation

@MusabShakeel576

@MusabShakeel576 MusabShakeel576 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

The yield boost is now paid by the backend from its own ledger instead of Merkl: earned daily on the user's savings across soUSD, soETH and soFUSE together, and claimed in soFUSE. Because it belongs to the whole portfolio rather than one vault, the card moves from the vault screen to the Earn page, under the portfolio total, keeping the Figma 26134:23293 design.

  • New GET /rewards/yield-boost summary and POST /rewards/yield-boost/ claim calls, with hooks keyed per account under the rewards cache. Claiming needs no passkey: the backend sends the transfer. The card polls while a claim is still being paid and refreshes savings and the tier once it lands.
  • The card says why a claim was refused (the backend's message), when a payout is still on its way, and when claims are paused.
  • New yield_boost_claim activity type, shown as a reward.
  • Rewards sheet copy now says soFUSE, and shows earnings to the cent.

Removed the Merkl yield boost client (campaign reads, claim batching, EXPO_PUBLIC_MERKL_YIELD_BOOST_CAMPAIGN_IDS) and the vault-screen card. The general Merkl rewards claim is unchanged.

Claude-Session: https://claude.ai/code/session_01EupadZ9qYL5nDLM6dDtu5n


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

The yield boost is now paid by the backend from its own ledger instead
of Merkl: earned daily on the user's savings across soUSD, soETH and
soFUSE together, and claimed in soFUSE. Because it belongs to the whole
portfolio rather than one vault, the card moves from the vault screen
to the Earn page, under the portfolio total, keeping the Figma
26134:23293 design.

- New GET /rewards/yield-boost summary and POST /rewards/yield-boost/
  claim calls, with hooks keyed per account under the rewards cache.
  Claiming needs no passkey: the backend sends the transfer. The card
  polls while a claim is still being paid and refreshes savings and the
  tier once it lands.
- The card says why a claim was refused (the backend's message), when a
  payout is still on its way, and when claims are paused.
- New yield_boost_claim activity type, shown as a reward.
- Rewards sheet copy now says soFUSE, and shows earnings to the cent.

Removed the Merkl yield boost client (campaign reads, claim batching,
EXPO_PUBLIC_MERKL_YIELD_BOOST_CAMPAIGN_IDS) and the vault-screen card.
The general Merkl rewards claim is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EupadZ9qYL5nDLM6dDtu5n
@vercel

vercel Bot commented Sep 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated
solid-app Ignored Ignored Sep 30, 2026 8:42am UTC
solid-app-staging Ignored Ignored Sep 30, 2026 8:42am UTC

Request Review

@claude

claude Bot commented Sep 30, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@MusabShakeel576
MusabShakeel576 merged commit f8a259a into qa Sep 30, 2026
5 checks passed
@MusabShakeel576
MusabShakeel576 deleted the claude/merkl-campaign-implementation-nogeis branch September 30, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants