Bottle deposit refunds onchain: buy by scanning, return at a station, get your deposit back.
RecyCan is a blockchain-based solution designed to remove friction from bottle and can deposit return systems. Today, users typically receive paper coupons instead of direct refunds, which discourages participation despite the environmental benefits.
Our project replaces this outdated flow with a seamless wallet-based experience. Users pay the deposit directly from their crypto wallet at purchase, and when returning bottles, they simply scan them and receive their refund instantly back to the same wallet.
We built mock interfaces for both the cashier and the return operator machine, using QR codes and barcode scanning via camera to simulate real-world usage. This demonstrates that such a system can be realistically deployed on existing infrastructure, making recycling more accessible, efficient, and user-friendly.
We also introduced a third interface focused on transparency and awareness. This page displays real-time statistics such as bottles sold, bottles returned, deposits locked, deposits refunded, total returns, and top returned products. Because all data is recorded on-chain, users can trust the accuracy of these metrics, which helps raise awareness and incentivize more sustainable behavior.
As a future improvement, we envision a reward mechanism for unclaimed deposits. If a deposit is not reclaimed after a defined period (e.g., one year), it is pooled into a shared fund. Each month, one user is randomly selected to receive this fund, with winning probability proportional to their contribution to recycling (i.e., number of returns compared to total returns). This creates a gamified incentive to further encourage participation.
RecyCan was built with simplicity and real-world deployment in mind. At its core, we use a single smart contract to track deposits and returns per user wallet. Instead of storing raw barcode data, we hash barcodes to reduce on-chain storage costs and optimize comparisons. Each wallet is associated with barcode hashes and quantities, ensuring accurate tracking and preventing double spending.
We used Hardhat to develop and deploy the smart contract, though the architecture is compatible with tools like Foundry. The frontend was built using Vite and JavaScript for speed and simplicity.
For wallet connectivity and onboarding, we integrated WalletConnect (via AppKit and Reown Auth), enabling seamless connection across multiple wallet providers. This also allows users without existing wallets to create one using email or social login, significantly reducing onboarding friction.
To simulate real-world usage, we implemented camera-based barcode scanning and QR code wallet identification for both purchase and return flows. This “hacky but practical” setup demonstrates how existing cashier and recycling machines could integrate blockchain payments without major hardware changes.
For the statistics dashboard, we used mocked data, as generating real-world data was not feasible within the scope of a hackathon. However, the system is designed so that all these metrics could be fully derived from on-chain data in a production environment, ensuring transparency, reliability, and trustless analytics.

