-
-
Echogate Landing Page
-
-
Order Creation Dark Mode
-
Order Creation Light Mode
-
Payment Orders - Cart Checkouts
-
Sample Transactions
-
Webhooks setup
-
Supported Chains
-
Supported Tokens - Extensible
-
Unpaid order view
-
Unpaid order view
-
Order mobile view, fully responsive
-
Order mobile view, fully responsive
-
Paid Order mobile view
-
Paid Order desktop view
-
Paid Order desktop view
-
Requestbin webhook call payment.pending - Before block confirmations
-
Requestbin webhook call payment.confired - After block confirmations
Inspiration
- Growing crypto adoption: Need for simple, direct Web3 payment solutions for e-commerce.
- Poor merchant visibility: Existing crypto payment methods often lack a clean, non-technical dashboard for merchants to track payments.
- Reducing transaction friction: Streamlining the payment process into a single-page flow for customers ie payment can be made from a number of wallets.
What it does
- Customer Payments: Allows customers to pay orders using ERC-20 tokens directly through Braavos and Ready Wallets.
- Payment Link Generation: Provides merchants with a tool to generate a unique, secure URL (including
orderInfo,amount, and a server-sidenonce) for a customer. - Status Dashboard: Enables merchants/admins to instantly search by Order ID and view the real-time status (paid/pending) of all related blockchain transactions.
How we built it
- Frontend: Built with VITE and styled using Mantine for a minimal, responsive design.
- Blockchain Integration: Used starknet.js and starknetkit for secure wallet connection and direct interaction with the payment smart contract.
- API Communication: Used Axios/fetch to query the Django backend for generating secure payment links and retrieving payment history.
- Smart Contract Indexing: Used starknet.js to index smart contract events and retrieve payment history.
- Webhook notifications: Used webhooks to notify the merchants of new payments.
- Security: Implemented nonce generation on the backend to prevent transaction replay attacks.
Challenges we ran into
- Handling Asynchronous States: Managing the customer UI through the full lifecycle: "Connect Wallet" $\rightarrow$ "Pending Transaction" $\rightarrow$ "Success/Failure."
- Ensuring Responsiveness: Making the payment page simple and usable across both desktop and mobile wallet browsers.
- Integrating
orderInfoSecurity: Securely passing and validating the uniqueorderInfoand server-generatednoncebetween the frontend, backend, and the smart contract call. - Autogenerating payment addresses: Ability to generate and watch payment addresses for users who don't want to connect their wallets into the platform.
Accomplishments that we're proud of
- Seamless Wallet Integration: Achieved a single-click "Pay" button that initiates the payment and handles confirmation/error states gracefully.
- Minimal Merchant Dashboard: Successfully created a simple, fast dashboard that abstracts blockchain complexity, providing merchants with a clear "Paid / Not Paid" status.
- Clean UI/UX: Delivered a highly minimal and mobile-friendly interface using Mantine UI, meeting the goal of easy integration.
What we learned
- Starknet.js Complexity: Gained deeper understanding of wallet providers, signers, and contract function encoding/decoding, especially when handling custom data like
orderInfo. - Importance of Nonces: Reinforced the critical need for server-side nonce generation and validation in any blockchain payment solution to maintain integrity.
- State Management: Learned best practices for managing complex asynchronous states (loading, errors, success) in a React application.
- Smart Contract Indexing: Ability to index smart contract events and retrieve payment history.
- Webhook notifications: Ability to notify merchants of new payments.
What's next for Echogate
- Multi-Chain Support: Expanding payment options to include other major EVM-compatible chains (e.g., Polygon, BNB Chain, Base, Arbitrum).
- Advanced Merchant Features: Adding time-series data, filter options (by orderInfo, token), and export capabilities to the dashboard.
- Web Wallet Integration: Implementing support for WalletConnect to allow customers to use non-MetaMask mobile wallets.
Built With
- blastapirpc
- celery
- django
- python
- starknetjs
- starknetkit
- typescript
- vite
- websockets
Log in or sign up for Devpost to join the conversation.