LifeChain
Where Legacies Live Forever.
The problem LifeChain solves
📜 The Problem: Critical knowledge—family histories, cultural traditions, legal documents—is stored in fragile systems (paper, cloud storage, wills) vulnerable to loss, hacking, or mismanagement. Families struggle to preserve and transfer legacies securely across generations.
🔒 The Solution: LifeChain leverages blockchain technology to create encrypted, decentralized capsules for storing wills, memories, and assets. Users can:
- 🛡️ Preserve irreplaceable content (recipes, voice notes, land deeds) in tamper-proof capsules.
- 👨👩👧👦 Grant multi-signature access (e.g., 3/5 family members must approve unlocks).
- ⏳ Automate inheritance via smart contracts (e.g., release documents only after verification of death).
- 🌍 Safeguard cultural/scientific heritage (indigenous practices, research) from extinction.
Why It Matters:
- 🚫 No third-party control: Families retain ownership, unlike cloud services or legal intermediaries.
- 🔑 Zero single-point failure: Data is split and stored globally on Edu Chain’s decentralized network.
- 🌱 Future-proof access: Grandchildren can unlock capsules only if they meet predefined, ethical conditions.
Use Cases:
- 💼 Wills & Assets: Distribute property without lawyers or delays.
- 🧬 Cultural Preservation: Save endangered traditions with community-governed access.
- 🔬 Research Legacy: Ensure scientific breakthroughs survive lab closures or data loss.
LifeChain turns fragile memories into eternal, family-controlled legacies.
Challenges I ran into
1. IPFS Integration Hurdles
Issue:
- Type Errors: When uploading files to IPFS, TypeScript threw type mismatches (e.g.,
Buffer
vs.Uint8Array
). - CORS Errors: IPFS nodes blocked requests due to misconfigured CORS policies.
- Large File Handling: Streaming large files (e.g., videos) caused memory leaks.
Solution:
- Fixed type errors by explicitly converting files to
Uint8Array
usingBuffer.from()
. - Configured a dedicated IPFS node with proper CORS headers:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
- Switched to chunked file uploads using
ipfs.addAll()
withwrapWithDirectory: false
.
2. Smart Contract Storage Limitations
Issue:
Storing IPFS hashes (CIDs) on-chain as
string
exceeded gas limits and caused type mismatches.Solution:
- Compressed CIDs to
bytes32
using base32 encoding:function storeCID(bytes32 compressedCID) public { cidMapping[msg.sender] = compressedCID; }
- Created helper functions to encode/decode CIDs between
string
andbytes32
.
3. Threshold Cryptography Complexity
Issue:
Implementing Shamir’s Secret Sharing for multi-sig access led to edge cases (e.g., 2/3 approvals failing if one trustee lost keys).
Solution:
- Switched to smart contract-based multi-sig:
function unlockCapsule(uint256 capsuleId) public { require(approvals[capsuleId][msg.sender], "Not an approver"); approvalsCount[capsuleId]++; if (approvalsCount[capsuleId] >= threshold) { emit CapsuleUnlocked(capsuleId); } }
- Added a recovery mechanism using time-locked backups.
Tracks Applied (1)
Edu Chain Semester 3 Hackathon
EDU Chain
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
