최근 프로젝트 · GIWA GASOK

05 / 12

Mulle

인증된 GIWA 계정으로 외부 체인 투자를 요청하고, 정산 과정을 확인한 뒤 native gas 없이 shares를 받는 테스트넷 MVP입니다.

역할
Frontend Lead · Product Engineer · Jul 2026
문제
요청 서명, 목적지 체인 실행, vault fulfill, 최종 claim은 서로 다른 이벤트지만 사용자는 하나의 신뢰할 수 있는 투자 여정으로 이해해야 했습니다.
전략
요청, 실행, fulfill, claim을 현재 chain 데이터에 근거한 명시적인 상태로 분리했습니다. 지갑 의도와 sponsor 제출을 구분하고 컨트랙트 snapshot에서 진행 상태를 복원하며, 런타임 설정이 안전하지 않으면 트랜잭션 UI 자체를 시작하지 않습니다.
성과
GIWA Sepolia와 Robinhood Chain Testnet에서 테스트 자산의 요청, 외부 실행, fulfill, claim이 이어지는 라이브 MVP를 완성했습니다.

라이브 테스트넷 MVP · 2026년 7월

01

문제 정의

왜 이 문제를 해결해야 했는가

Mulle는 인증된 GIWA 테스트넷 계정과 외부 테스트 마켓을 연결합니다. 사용자는 투자를 요청하고 정산 단계를 확인한 뒤 결과를 받습니다. 실제 네트워크 비용은 backend sponsor가 부담하고 외부 실행은 trusted solver가 담당합니다.

사용자와 시스템이 마주한 문제

  • 외부 체인 상품에 접근하려면 일반적으로 자산 브릿지, 네트워크 전환, 목적지 체인 gas 확보, 반복 승인이 필요합니다.

  • 트랜잭션 제출 성공은 외부 실행, 정산 완료, claim 가능 상태를 의미하지 않습니다.

  • 새로고침, 동시 요청, relayer timeout, solver 지연이 발생해도 완료되지 않은 작업을 성공으로 보여주면 안 됩니다.

프론트엔드 오너십

초기 PoC를 공개 랜딩, 마켓과 상품 라우트, 투자·환매 workspace, 정산 추적, 포트폴리오로 확장하며 프론트엔드와 제품 UX를 리드했습니다. 컨트랙트와 backend solver는 다른 팀원이 담당했습니다.

  • 제품 구조, 반응형 인터페이스, EN/KO 경험

  • Privy embedded wallet과 EIP-7702 / EIP-712 서명 UX

  • ERC-7540 deposit, redeem, fulfill, claim 상태

  • 런타임 설정, 보안 경계, 테스트, 릴리스 검증

02

해결 전략

프로덕션까지 이어지는 시스템 전략

요청, 실행, fulfill, claim을 현재 chain 데이터에 근거한 명시적인 상태로 분리했습니다. 지갑 의도와 sponsor 제출을 구분하고 컨트랙트 snapshot에서 진행 상태를 복원하며, 런타임 설정이 안전하지 않으면 트랜잭션 UI 자체를 시작하지 않습니다.

시스템 모델

인증된 GIWA 계정이 sponsor 요청에 서명하면 trusted solver가 외부 테스트넷에서 실행하고, vault가 비동기 요청을 fulfill한 뒤 사용자가 정산된 shares를 claim합니다.

주요 구현 결정

  • Ready, signing, submitted, pending, claimable, claimed, failed 상태를 임시 컴포넌트 상태가 아닌 컨트랙트 snapshot을 기준으로 모델링했습니다.

  • 새로고침 이후 진행 상태를 복원하고 동시에 존재하는 deposit과 redeem 요청을 구분했습니다.

  • Sponsor key는 backend에만 두고 브라우저는 서명과 선택적 authorization만 생성하도록 분리한 뒤, 운영 번들의 secret 노출 여부를 테스트했습니다.

  • 안전하지 않은 relayer URL, 잘못된 chain·contract 설정, decimal 불일치, 불완전한 deployment 정보에서는 지갑 액션을 열지 않는 fail-closed 검증을 적용했습니다.

03

성과

무엇이 달라졌고 무엇을 배웠는가

  • GIWA Sepolia와 Robinhood Chain Testnet에서 테스트 자산의 요청, 외부 실행, fulfill, claim이 이어지는 라이브 MVP를 완성했습니다.

  • 2026년 7월 릴리스 검토 기준 로직·설정 테스트 29개, Chromium smoke test 4개, TypeScript, 프로덕션 빌드, 번들 보안 검증을 통과했습니다.

  • 공개 랜딩과 무거운 wallet runtime을 분리하고, 정산이 없거나 background tab일 때 polling을 줄였습니다.

배운 점

Web3 프론트엔드의 완료 상태는 한 번의 트랜잭션 제출 성공이 아니라 실제 비즈니스 정산 상태를 따라야 합니다.

지금이라면

현재 MVP는 trusted solver와 테스트넷 자산을 사용합니다. 통제된 테스트넷 환경을 넘어가기 전 검증 가능한 크로스체인 messaging, 요청과 목적지 transaction의 상관관계, 더 작은 wallet runtime을 추가하겠습니다.

사용 기술

  • TypeScript
  • React
  • Vite
  • TanStack Query
  • Privy
  • viem
  • EIP-7702
  • EIP-712
  • ERC-7540
  • Playwright

함께 일하기

이 정도의 프론트엔드 오너십이 필요한가요?

연락하기