🏆 FishCake Hackathon 2024 Entry
Track: Fishcake Event Manager & Asset Library Integration Vision: Programmable Trust for the Digital Age
ChainLemo is a Programmable Trust Protocol built on the FishCake Ecosystem.
Crypto assets are immutable, but human life is fragile. We address one of the biggest pain points in Web3: Permanent Asset Loss due to Accidental Loss of Contact.
Unlike cold, lifeless wallets, ChainLemo leverages the FishCake Event Manager to transform asset custody into warm, programmable "Life Events".
"Crypto is forever. You are not. We guard your legacy."
A decentralized Dead Man's Switch.
- Mechanism: Monitors your on-chain activity (Check-in/Heartbeat).
- Trigger: If you remain silent for a set period (e.g., 365 days), the contract assumes you are lost.
- Execution: Automatically calls the FishCake Asset Library to transfer assets to your beneficiary and decrypts your "Last Words" stored on Arweave.
A programmable Red Packet for the future.
- Scenario: "Prepare 1 ETH for my daughter's 18th birthday, locked until that exact date."
- AI Powered: Integrated with Google Gemini AI, helping users polish their raw emotions into timeless "Digital Inscriptions".
ChainLemo strictly follows the Separation of Concerns principle required by FishCake Hackathon Track 3:
| Component | Technology | Role |
|---|---|---|
| Logic Layer | Solidity (FishCakeEventBase) | Decides "WHEN" (Heartbeat, TimeLock). Zero funds held here. |
| Asset Layer | FishCake Asset Library | Decides "HOW" (Fund Transfer). Only executes upon valid signal. |
| Storage | Arweave Permaweb | Stores the encrypted "Last Words" and "Key Locations" permanently. |
| AI Agent | Google Gemini | Polishes emotional messages and generates smart contract drafts. |
graph TD
User[User] -->|1. Deploy Event| Event[🍋 Lemon Tree Logic]
User -->|2. Deposit Funds| AssetLib[🏦 FishCake Asset Library]
subgraph "ChainLemo Protocol"
Event -->|Monitor| Heartbeat[Check-in Status]
Event -->|Condition Met?| Logic{Silence > 365 Days?}
end
Logic -- YES -->|Signal| AssetLib
AssetLib -->|Execute Transfer| Beneficiary[👶 Beneficiary]
Logic -->|Reveal| Arweave[📜 Arweave Note]
To address judges' concerns about Private Key Custody, ChainLemo introduces a tiered security model:
- Mode: Direct Deposit.
- Use Case: Birthday gifts, pocket money.
- Logic: Funds are managed by the Asset Library and released automatically.
- Mode: Zero-Custody Signal Trigger.
- Use Case: Inheritance, Life Savings.
- Logic: NEVER share your private keys.
- User physically hides their hardware wallet mnemonic (e.g., "In the safe behind the painting").
- ChainLemo stores the Encrypted Location of these keys on-chain.
- The contract acts as a Signal Beacon. It holds NO funds, only the "Treasure Map".
- Upon trigger, it reveals the location to the beneficiary.
- Value: Combines Physical Security (Air-gapped keys) with Blockchain Automation (Trigger).
- Node.js v16+
- Google Gemini API Key (for AI features)
-
Clone & Install
git clone https://github.com/fishcake-hackathon/chainlemo.git cd chainlemo npm install -
Configure Environment Create a
.envfile in the root:VITE_API_KEY=your_gemini_api_key_here
-
Start Development Server
npm run dev
Open
http://localhost:5173to experience the UI.
# Compile Contracts
npx hardhat compile
# Deploy to FishCake Testnet (Mock)
npx hardhat run scripts/deploy.ts --network fishcake_testnet/contracts
├── FishCakeTimeEvent.sol # Core Logic (Lemon Tree)
├── FishCakeRedPacket.sol # Time Lock Logic
└── core/ # Base Classes
/components
├── LandingPage.tsx # UI & AI Integration
└── CreateVaultModal.tsx # Contract Factory UI
/services
├── geminiService.ts # AI Agent Service
└── standardTemplates.ts # Contract Templates
ChainLemo Team
Building the emotional layer of the blockchain.