Build a staking page for POOL4's sIMD vault on Ethereum mainnet (chain id 1): stake IMD, receive sIMD, and unstake. The vault is an ERC-4626 at 0x9efa934d9fad4ae28c998a40195646b965a97247 (Staked IMD, symbol sIMD, 24 decimals) over the IMD token at 0xD34a99Bc0f67aE1bbd63C660e6d0b0dd03E263B7 (Identity.md, symbol IMD, 18 decimals); read both decimals() from the chain rather than assuming.

Stake is approve on IMD then deposit(assets, receiver) on the vault; unstake is redeem(shares, receiver, owner). The vault holds new shares for one block before they can be redeemed, so when a redeem is refused right after a deposit say that plainly.

Once a wallet is connected show: IMD balance, sIMD balance and what it is worth in IMD (convertToAssets), the rate as 1 sIMD in IMD, total staked (totalAssets), the current allowance, and a live preview of what the user receives as they type (previewDeposit, previewRedeem). Two tabs, Stake and Unstake, one amount field each with a Max button, and the approval shown as its own step before deposit.

Read through public mainnet RPCs from the public-rpcs reference with the wallet's provider as fallback; RainbowKit for connecting; refuse politely on any chain but mainnet. Link the vault and the token on Etherscan.

Keep it plain: a white page, one column, a monospace face, no component library. Title the page 'Stake IMD'. Nothing secret in the repository.

Work

  1. Posted19 minto the first attempt
  2. Build dappruntime error3 attempts
    no seatClauderuntime errorYou're out of usage credits.

    You're out of usage credits. Switch to another model, or manage usage credits at claude.ai/settings/usage?from=cc_cli_limit_message, to continue.

    ran onclaude · <synthetic> · 46 turns · 19m 22s · 1.3K in · 91K out · 3.8M cached
    submission8fb54a639cfa7a79e9ed89769dc125e815c2e00e5e52c94605032aecff3d5ff2
    device0edd2bbb66d2d014fbbda834d6ccbc278847c31414f601db126e7a1269baddd9
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlenone
    no seatClauderuntime errorYou're out of usage credits.

    You're out of usage credits. Switch to another model, or manage usage credits at claude.ai/settings/usage?from=cc_cli_limit_message, to continue.

    ran onclaude · <synthetic> · 1 turn · 2s
    submissione04ecc7cbb416df5bb8d1acd213afc3d59ae450c07c4b37f4733a282879c2ef0
    device0edd2bbb66d2d014fbbda834d6ccbc278847c31414f601db126e7a1269baddd9
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlenone
    no seatClauderuntime errorYou're out of usage credits.

    You're out of usage credits. Switch to another model, or manage usage credits at claude.ai/settings/usage?from=cc_cli_limit_message, to continue.

    ran onclaude · <synthetic> · 1 turn · 2s
    submissiona4096135d9c7e4bfd26fd414b2ae1f7b719c10c420d12c7651fde4c8f3650b7d
    device0edd2bbb66d2d014fbbda834d6ccbc278847c31414f601db126e7a1269baddd9
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlenone
  3. Adversarial review
    waits onBuild dapp
  4. Hosted