Inspiration
The circulation of illegal and counterfeit medicines remains a real threat in Indonesia. Throughout 2025, BPOM (the Indonesian Food and Drug Authority) identified 197,725 links selling illegal medicines and food products across various online marketplaces through cyber patrols. Enforcement actions between 2023 and 2024 revealed that 45% of BPOM's cyber patrol findings involved illegal medicines, representing a potential economic loss of IDR 49.82 trillion and posing risks to 6.95 million Indonesians. Current verification mechanisms rely on centralized databases where data can potentially be altered without leaving a trace easily accessible to the public. This inspired us to build a system where data cannot be unilaterally manipulated and remains transparent to all parties in the supply chain.
What it does
OBTENTIK is a blockchain-based medicine verification system that immutably records data for every production batch—such as the marketing authorization number, manufacturer, and production/expiry dates—within a smart contract. At every handover point in the supply chain—from manufacturer to distributor to pharmacy—authenticity must be verified by scanning a QR code before proceeding. This creates a transparent, tamper-proof audit trail. Consumers can perform the same check instantly—without needing a wallet or login—simply by scanning the QR code on the packaging.
How we built it
We developed the smart contract using Solidity and deployed it on the Polygon Amoy network (testnet), utilizing a wallet-address-based role-based access control mechanism (Admin, Manufacturer, Distributor, Pharmacy) to replace traditional login systems. The frontend was built using Next.js and connects to the smart contract via ethers.js, with MetaMask serving as the authentication and transaction-signing layer. For the QR feature, we utilized [qrcode.react] for generation and [html5-qrcode] to handle scanning directly from the browser.
Challenges we ran into
- Designing a role-based access control model within the smart contract that was simple enough to build within a limited timeframe, yet still accurately represented a realistic supply chain workflow.
- Ensuring a frictionless consumer experience (requiring no wallet or login) while maintaining security and verification for the producer-distributor-pharmacy workflow.
Accomplishments that we're proud of
- Successfully built a fully functional smart contract on the testnet featuring role-based access control (Admin, Producer, Distributor, Pharmacy)—moving beyond mere UI mockups.
- Created a truly frictionless verification flow for consumers—requiring no wallet or login, just a QR scan.
- Formulated a problem statement validated by real data from BPOM (Indonesia's FDA) rather than assumptions, ensuring the solution addresses a clear need and delivers tangible impact.
- This was our first hackathon and our first time working with Web3/Solidity.
- Successfully executed an end-to-end demonstration covering the entire process: batch registration → verification → consumer scanning.
What we learned
- How to design smart contracts with role-based permissions without relying on conventional login systems.
- How blockchain hashing mechanisms and event logging function as the foundation for a transparent audit trail system.
What's next for OBTENTIK
Integrating this system as a complementary layer to BPOM's existing infrastructure; expanding the wallet whitelist scheme to include a more structured business legality verification process (KYB); and exploring a migration from batch-level verification to unit-level serialization for more granular security.
Built With
- blockchain
- ethersjs
- hardhat
- html5-qrcode
- javascript
- metamask
- nextjs
- node.js
- polygon
- qrcode
- react
- smart-contracts
- solidity
- tailwindcss
- typescript
- web3
Log in or sign up for Devpost to join the conversation.