← Back to home

Eureka

A platform that facilitates patent creation, use and safekeeping in latin america.

Problem Statement

Eureka is a platform that combines blockchain technology with traditional legal processes to protect, fund, and commercialize scientific research and patents in a decentralized way, starting from Argentina. It allows scientists and research teams to prove authorship of their discoveries by recording private, immutable on-chain evidence while they run the official off-chain patent process. At the same time, it enables crowdfunding campaigns to finance research, where investors receive a percentage of the patent’s future benefits through digitally signed off-chain contracts. Companies can also use a patent marketplace, where they obtain usage rights through digital off-chain contracts backed by on-chain proofs. In essence, Eureka builds a bridge between the legal world and the blockchain world, addressing the lack of funding, bureaucracy, and insecurity around intellectual property in Argentine science.

Solution

Tech Stack & ArchitectureSmart Contracts (Solidity 0.8.20) We implemented a Factory pattern with two core contracts deployed on Base Sepolia. The PatentFactory.sol spawns individual Patent.sol instances, allowing unbounded patent creation without deploying each manually. Each Patent contract is a standalone entity with its own address, storing metadata (IPFS links, SHA256 hashes for document integrity) and handling donations via a direct payment forwarding mechanism - funds never sit in the contract, they're immediately forwarded to the owner using low-level .call{value}() to minimize gas costs.Deployment Pipeline (Python) Rather than using Hardhat/Foundry, you went with a custom Python deployment script (deploy.py) using web3.py, py-solc-x for on-the-fly Solidity compilation, and eth-account for transaction signing. This compiles contracts at runtime, detects the network from RPC URLs, and saves deployment artifacts to deployments/{network}.json. It's a leaner approach for hackathon speed - no Node.js build tooling required for contracts.Frontend (Next.js 14 + TypeScript) Built with the App Router architecture, leveraging React Server Components where possible. The UI layer uses TailwindCSS v4 with custom animations via tw-animate-css, Radix UI primitives for accessibility, and Framer Motion for page transitions. The styling is modern with glassmorphism effects and responsive design.Web3 Integration StackPrivy (@privy-io/react-auth): Handles wallet connection with email/social login fallbacks, abstracting away Web3 complexity for non-crypto-native usersWagmi v2 + Viem: Type-safe contract interactions. Created custom hooks (useAllPatents, usePatentDetails, useDonateToPatent, useCreatePatent) wrapping Wagmi's useReadContract and useWriteContract primitives@coinbase/onchainkit: Base network integration and utilitiesFile Storage Integrated Lighthouse SDK (@lighthouse-web3/sdk) for IPFS/Filecoin uploads. Documents are uploaded to decentralized storage, generating immutable links stored on-chain alongside SHA256 hashes for integrity verification.Notable Technical DecisionsThe "Direct Payment" Hack: In Patent.sol:donate(), instead of accumulating funds in the contract and requiring withdrawals (gas-inefficient), donations are immediately forwarded to the owner. This is slightly risky (reentrancy concerns) but we're using .call with proper checks and the receive context is controlled. It eliminates withdrawal complexity and saves users gas on a second transaction.Python for Deployment: Choosing Python over JavaScript tooling is unconventional but brilliant for rapid iteration - no need to manage Hardhat configs, plugins, or npm dependencies. Just pip install and run. The script auto-detects networks and compiles contracts on-demand using py-solc-x.Hybrid Hook Architecture: Custom React hooks abstract all blockchain complexity. Components never directly call useReadContract - they use semantic hooks like usePatentDetails(address) that internally map to multiple contract calls, cache results, and handle loading states. This makes the codebase maintainable as contract interfaces evolve.Toast-Driven UX: Using Sonner for real-time transaction feedback instead of modal-heavy flows. Every blockchain action (pending, success, error) triggers toast notifications with Basescan links, keeping users informed without blocking interactions.Type Safety Throughout: ABIs are imported as JavaScript objects, but TypeScript infers types from Wagmi hooks, giving full autocomplete on contract function parameters and return values. No manual type definitions needed.The architecture is lean, pragmatic, and optimized for hackathon velocity while maintaining production-ready patterns like the Factory pattern, event emissions, and comprehensive error handling.

Hackathon

ETHGlobal Buenos Aires

2025

Contributors