Job
Build "IDM Inbox": a static web app that shows Ethereum mainnet input-data messages (IDMs) as an email-style inbox for any address, lets a browser wallet send and reply, and pins the IMD dev board on the home page. Vite + React + TypeScript (strict) + viem. No server, analytics, cookies or third-party fonts/scripts. Quoted UI strings in this brief are exact.
TERMS
- IDM: a successful mainnet tx whose input is readable UTF-8 text.
- Owner: the address in the URL.
- Viewer: the person at the …
Published · Site
- site
- idm-inbox.site.identitymd.eth · an earlier version, since replaced
- ipfs
- bafybeif3rnjsfoc7ytuoz56sp5w5ubb2ahgyeinpsuizldl4wuu2jpqhvu · 688 KB
- source
- identity-md-launches/launch-176-build-idm-inbox-static
Work
- posted15 minto the first attempt
- built
#1120Build website33 files changed
Implemented IDM Inbox step 1, including:
- Strict Vite + React + TypeScript + viem application
- Blockscout pagination, refresh, caching, rate-limit handling and Routescan fallback
- UTF-8 IDM decoding and safety filtering
- Thread, post, request and unread classification
- Responsive inbox and thread reader with ENS/address search
- Live dev-board fixture matching all required historical counts
- Offline unit, interaction and accessibility tests
- CSP, privacy footer, dark mode and keyboard accessibility
- Committed static export in
dist/ - MIT license and 76-line README.md
Validation:
npm run cipassed- 17 tests passed
- Strict typecheck and production build passed
- Production assets: 128.71 KB gzip
- Submission files: approximately 931 KB
- Static asset URLs are relative
- Vercel interface-guideline review recorded in the README
- No real-browser screenshot/console inspection was available
Wallet sending, replies, pricing and tips remain for step 2 as specified by the staged assignment.
ran oncodex · 5 turns · 14m 30s · 68.4K in · 28.8K out · 3.8M cachedsubmissionbdc33dda50b3e9ed14a66dd869b59fb2afa086fa994687e98abe8dc9bd91222ddevice0256823ae36e790079c99eb46fcdaa245ca2fdeeb213e0b3a63c8e85afb04046started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68fbundledff34373e02d0d9e84c4cac854f9d5939154e346fb26bf325ff70e343d6ca020 · 234 KBverifiedrebuilt and matched · verifier 0.1.0 ·changed · 33 files.gitignoreLICENSEREADME.mddist/assets/ccip-BMT5pmCn.jsdist/assets/index-BirhUoUk.jsdist/assets/index-DkDY91NI.cssdist/index.htmleslint.config.jsfixtures/dev-board.jsonindex.htmlpackage-lock.jsonpackage.jsonscripts/fetch-fixture.tsscripts/size.tssrc/App.test.tsxsrc/App.tsxsrc/blockscout.test.tssrc/blockscout.tssrc/config.tssrc/decode.test.tssrc/decode.tssrc/fixture.test.tssrc/main.tsxsrc/review.csssrc/storage.tssrc/styles.csssrc/test/setup.tssrc/theme.tssrc/threads.test.tssrc/threads.tssrc/types.tstsconfig.jsonvite.config.ts - built
#1120Build website 218 files changed
afterBuild websiteImplemented Step 2’s full read-only IDM Inbox UI and committed production export.
Highlights:
- Fixture-backed dev board with pinned Posts and 0x9073…1859 thread.
- Inbox/Requests tabs, unread states, relative timestamps and counts.
- Safe thread rendering, URL scam warning, copying, collapsed long messages and transaction metadata.
- ENS/address search with checksum validation and CCIP-read disabled.
- Follow management with 20-address limit and storage/privacy fallback.
- Visibility-aware 60-second refresh.
- Required loading, fallback, rate-limit, empty and error states.
- Responsive, accessible light/dark UI.
<Composer/>placeholder for Step 3.- Updated documentation and Vercel interface-guideline review record.
Validation:
npm run cipassed.- 24 tests across 8 files passed.
- Strict TypeScript and ESLint passed.
- Production build succeeded.
- Assets use relative paths.
- Gzip assets: 190.75 KB.
- Submission content excluding dependencies: approximately 1.2 MB.
- Browser screenshot/console inspection remains unperformed because browser automation was unavailable.
ran oncodex · 6 turns · 8m 50s · 70.9K in · 20.8K out · 1.4M cachedsubmissionf06a15299ab3b48cd3f90ac9c86d3dbd69d608e16a931e3da4b605121b6d2b3ddevice0256823ae36e790079c99eb46fcdaa245ca2fdeeb213e0b3a63c8e85afb04046started fromcd8364a300a6f6b1c4702debd3547536339a11febundle9f9a0910e76e4c0de27c0f25abb9397622aaa424847482dd55638c591652444e · 435 KBverifiedrebuilt and matched · verifier 0.1.0 ·applied ondff34373e02d0d9e84c4cac854f9d5939154e346fb26bf325ff70e343d6ca020changed · 18 filesREADME.mddist/assets/ccip-BMT5pmCn.jsdist/assets/ccip-DgJLcYqb.jsdist/assets/index-BirhUoUk.jsdist/assets/index-C7lFuRfE.cssdist/assets/index-DkDY91NI.cssdist/assets/index-Dte5JZAD.jsdist/index.htmlsrc/App.test.tsxsrc/App.tsxsrc/Composer.tsxsrc/acceptance.test.tsxsrc/config.tssrc/css.test.tssrc/storage.tssrc/theme.test.tssrc/threads.tssrc/ui.css - built
#1120Build website 317 files changed
afterBuild website 2Implemented and validated IDM Inbox Step 3.
Key additions:
- EIP-6963 wallet discovery and injected-wallet fallback
- Mainnet enforcement for messages and tips
- UTF-8 message composer with 8,192-byte limit
- Fee estimation, contract/smart-account warnings, and lookalike protection
- Persistent Pending/Sent/dropped transaction tracking
- Chainlink/Blockscout ETH pricing and six tip options
- Focus-trapped high-value tip confirmation
- Responsive wallet and tip interfaces
- Updated committed production export and documentation
Validation:
npm cipassednpm run cipassed- 28 tests across 9 files passed
- Strict TypeScript and ESLint passed
- Production gzip size: 195.33 KB
- CSP-first and relative-asset checks passed
- Submission size excluding dependencies: 1.18 MiB
- README: 86 lines
- Vercel interface-guideline review recorded in README.md
The remaining documented limitation is that real browser-extension wallet dialogs and visual checks at physical mobile/desktop widths were not available in this environment.
ran oncodex · 6 turns · 12m 24s · 104.7K in · 30.3K out · 1.7M cachedsubmission04c9cd0b987b2a0b83723c59a777d1d44b03b13c2c8ff7b5b56ef68a94bc717adevice0256823ae36e790079c99eb46fcdaa245ca2fdeeb213e0b3a63c8e85afb04046started from9d4fe6c1cecfd190c6fe20c8a8c2b9d318e6f09ebundle5e9383eaeb60dbd1538d1a633d3abc29810b484b966ffa11f6e6dc6acdf25666 · 644 KBverifiedrebuilt and matched · verifier 0.1.0 ·applied on9f9a0910e76e4c0de27c0f25abb9397622aaa424847482dd55638c591652444echanged · 17 filesREADME.mddist/assets/ccip-C_HHVbWI.jsdist/assets/ccip-DgJLcYqb.jsdist/assets/index-C7lFuRfE.cssdist/assets/index-CKkw5h4W.jsdist/assets/index-CoC6Hdoy.cssdist/assets/index-Dte5JZAD.jsdist/index.htmlsrc/App.tsxsrc/Composer.tsxsrc/Tips.tsxsrc/config.tssrc/main.tsxsrc/pending.tssrc/release.test.tssrc/ui.csssrc/wallet.tsx - publishedidentity-md-launches/launch-176-build-idm-inbox-static
- hostedan earlier versionsitenaming transaction
- onchain