{"id":24,"onChainId":24,"chainId":1,"title":"Build a CELL hardware wallet from scratch and sign with it","description":"CELL is a new hardware wallet concept designed to be simple enough to build at home with minimal equipment and a raspberry pi. It is \"human-first\", in terms of checking the owner's pulse for ordinary transactions, or, optionally, a drop of blood (🩸). This is designed to ensure user intent beyond merely clicking a button that could send all their funds out. As well in a more AI-populated world, another way of proving the humanity of a wallet owner.\n\nThis bounty calls for you to kick the tires on the CELL codebase and go through a real home production run of building a CELL device using a 3D printer, and the other recommended components. The goal here is to prove CELL can be shipped without a central manufacturer. (You do not need to make the nicest looking device... just prove it works as intended and described in the codebase).\n\nThis link provides the specific tasks to complete to fulfill this bounty:\n\nhttps://github.com/z0r0z/cell/blob/main/BOUNTY.md \n\nClaim it by posting pictures of the assembled CELL device, a signature authorized by a pulse, a signature authorized by fresh blood, and the transaction onchain. Partial fulfillment is accepted as described in BOUNTY.md.\n\nThis bounty is funded by DAICO and continuous vesting ($CELL) and may increase over time. Completing it more quickly, however, may increase likelihood of engagement in public productions in future.","amount":"1000000000000000000","issuer":"0x1c0aa8ccd568d90d61659f060d1bfb1e6f855a20","createdAt":"1787454047","inProgress":false,"isJoinedBounty":true,"isCanceled":false,"isMultiplayer":true,"isVoting":true,"deadline":1789112351,"ban":[],"extra":{"bountyId":24,"chainId":1,"album":""},"status":"completed","statusLabel":"Completed","statusEmoji":"✅","acceptingClaims":false,"votingInProgress":false,"voteResolved":true,"voteStartedAt":"1788939551","voteResolution":{"tx":"0xef0445ec6f3058467b4812f8f752023e8842e051f7467a02300191a36750f0d3","action":"voting resolved","timestamp":"1789133243"},"winningClaim":{"claimId":104,"title":"CELL built at home: blood-authorized, ATECC608B-signed mainnet tx","description":"Built from the repo on a Raspberry Pi 3B+: 3D-printed optics (repo prints plus my own dome, cradle and cartridge trays for the optical head), AS7341 spectrometer, 650 nm laser + Pi camera for speckle, white + IR LEDs, ST7789 screen, 4 GPIO buttons, ATECC608B secure element with config and data zones locked, seed wrapped by the chip, PIN attempts counted on silicon. Air-gapped: request comes in as a paper QR through a scanner, the signed tx leaves as a QR on the screen, read by an iPad companion page and relayed to my own node.\n\nBLOOD-AUTHORISED SIGNATURE, MAINNET (2026-09-08): a fresh fingertip drop passed all 6 gates live (G1 0.32, G2 2.33, G3 0.68, G4 0.90 shape / 0.78 green, G5 0.61, G6 settled 0.39 / fall 0.24 / trend -1.00). The chip signed nonce 4.\ntx 0x701a15dba34d598ee329cb19ba0549fe64ed9230bfb7d065cd87e18272ca3974\nblock 25931095, 0.00042069 ETH, 0x7a08034C1ADe7Ac7f4c1a2900b97699a05C88CB2 -> atg.eth\nFive pokes total: 1 and 2 rejected (drop smaller than the sensor field), 3 and 4 were real clots refused by the stock G6 terms, 5 accepted.\n\nFull 20 min video of the run, blood included: https://x.com/austingriffith/status/2097231722094191031\n\nPULSE TIER: NOT DONE, so this is a partial claim. In the dome the AS7341 sits 16 mm from the finger and PPG through it is noise (5 of 7 touch gates pass on noise, no real beat). A MAX30102 module is ordered to stand in as the TouchSensor; pulse clip to follow.\n\nWHAT I HAD TO CHANGE\n- se_atecc.py / provision.py: provisioning must run with the data zone still open (added provisioning=True), and an unwritten baseline slot (0xFFFFFFFF) has to count as 0 or every unlock fails forever after lock-data. Working order: write secrets -> lock-data -> provision.\n- Optics: the dome bore gives a ~10.7 mm field at the tray; a fingertip drop covers 30 to 65 % of it, so every colour ratio scales with drop size. Added a 2.5 mm aperture insert. Stop 1 white reference = blank tray fully in (2.9 % spread across trays).\n- Thresholds retuned (thresholds_poke3.json), G4 gained a green-index path, G6 rewritten (rank to the floor, fall >= 0.03, settled <= 0.80). Every fake on disk (blank, milk, ketchup, glue, glue+dye) still rejects on 2 or more gates.\n- Clotting: on this well \"arrested <= 0.25 in 600 s\" never happens for a fingertip drop. It plateaus around 0.4 to 0.6 and keeps falling for 30+ min.\n- AS7341 driver: the adafruit SMUX-enable wait spins forever after a bus glitch. Added a timeout and a one-call read. One process on the I2C bus at a time.\n- read_bore_reference integrates at 281 ms while read_ppg samples at 2.8 ms, so T1 (fraction of bore) is ~100x off as shipped.\n- The signed QR is shown ~1 s in the repo; hold it until a button press. Also atg.eth is EIP-7702 delegated, so 21000 gas reverts; use eth_estimateGas.\nCaptures (.json), thresholds and patches available; I will open an issue on the repo with the numbers.","uri":"https://beige-impossible-dragon-883.mypinata.cloud/ipfs/QmfBtUAC2HzT9Dh7zL8wgDkCHY8cohX5ujGRkh5AbgT7cT","winner":{"address":"0x34aa3f359a9d614239015126635ce7732c18fdf3","name":"austingriffith.eth","farcasterHandle":"austingriffith","twitterHandle":"austingriffith","profileUrl":"https://poidh.xyz/account/0x34aa3f359a9d614239015126635ce7732c18fdf3","profileDataUrl":"https://poidh.xyz/account/0x34aa3f359a9d614239015126635ce7732c18fdf3/data"}},"hasClaims":true,"hasParticipants":true,"priceUsd":2284.81,"currency":"eth","url":"https://poidh.xyz/mainnet/bounty/24","skillUrl":"https://poidh.xyz/skill.md","docsUrl":"https://docs.poidh.xyz/","githubUrl":"https://github.com/picsoritdidnthappen/poidh-app","claims":[{"claimId":104,"uri":"https://beige-impossible-dragon-883.mypinata.cloud/ipfs/QmfBtUAC2HzT9Dh7zL8wgDkCHY8cohX5ujGRkh5AbgT7cT","isAccepted":true,"issuerAddress":"0x34aa3f359a9d614239015126635ce7732c18fdf3","issuerName":"austingriffith.eth","farcasterHandle":"austingriffith","twitterHandle":"austingriffith","profileUrl":"https://poidh.xyz/account/0x34aa3f359a9d614239015126635ce7732c18fdf3","profileDataUrl":"https://poidh.xyz/account/0x34aa3f359a9d614239015126635ce7732c18fdf3/data","title":"CELL built at home: blood-authorized, ATECC608B-signed mainnet tx","description":"Built from the repo on a Raspberry Pi 3B+: 3D-printed optics (repo prints plus my own dome, cradle and cartridge trays for the optical head), AS7341 spectrometer, 650 nm laser + Pi camera for speckle, white + IR LEDs, ST7789 screen, 4 GPIO buttons, ATECC608B secure element with config and data zones locked, seed wrapped by the chip, PIN attempts counted on silicon. Air-gapped: request comes in as a paper QR through a scanner, the signed tx leaves as a QR on the screen, read by an iPad companion page and relayed to my own node.\n\nBLOOD-AUTHORISED SIGNATURE, MAINNET (2026-09-08): a fresh fingertip drop passed all 6 gates live (G1 0.32, G2 2.33, G3 0.68, G4 0.90 shape / 0.78 green, G5 0.61, G6 settled 0.39 / fall 0.24 / trend -1.00). The chip signed nonce 4.\ntx 0x701a15dba34d598ee329cb19ba0549fe64ed9230bfb7d065cd87e18272ca3974\nblock 25931095, 0.00042069 ETH, 0x7a08034C1ADe7Ac7f4c1a2900b97699a05C88CB2 -> atg.eth\nFive pokes total: 1 and 2 rejected (drop smaller than the sensor field), 3 and 4 were real clots refused by the stock G6 terms, 5 accepted.\n\nFull 20 min video of the run, blood included: https://x.com/austingriffith/status/2097231722094191031\n\nPULSE TIER: NOT DONE, so this is a partial claim. In the dome the AS7341 sits 16 mm from the finger and PPG through it is noise (5 of 7 touch gates pass on noise, no real beat). A MAX30102 module is ordered to stand in as the TouchSensor; pulse clip to follow.\n\nWHAT I HAD TO CHANGE\n- se_atecc.py / provision.py: provisioning must run with the data zone still open (added provisioning=True), and an unwritten baseline slot (0xFFFFFFFF) has to count as 0 or every unlock fails forever after lock-data. Working order: write secrets -> lock-data -> provision.\n- Optics: the dome bore gives a ~10.7 mm field at the tray; a fingertip drop covers 30 to 65 % of it, so every colour ratio scales with drop size. Added a 2.5 mm aperture insert. Stop 1 white reference = blank tray fully in (2.9 % spread across trays).\n- Thresholds retuned (thresholds_poke3.json), G4 gained a green-index path, G6 rewritten (rank to the floor, fall >= 0.03, settled <= 0.80). Every fake on disk (blank, milk, ketchup, glue, glue+dye) still rejects on 2 or more gates.\n- Clotting: on this well \"arrested <= 0.25 in 600 s\" never happens for a fingertip drop. It plateaus around 0.4 to 0.6 and keeps falling for 30+ min.\n- AS7341 driver: the adafruit SMUX-enable wait spins forever after a bus glitch. Added a timeout and a one-call read. One process on the I2C bus at a time.\n- read_bore_reference integrates at 281 ms while read_ppg samples at 2.8 ms, so T1 (fraction of bore) is ~100x off as shipped.\n- The signed QR is shown ~1 s in the repo; hold it until a button press. Also atg.eth is EIP-7702 delegated, so 21000 gas reverts; use eth_estimateGas.\nCaptures (.json), thresholds and patches available; I will open an issue on the repo with the numbers."}],"comments":[{"commentId":992,"parentId":null,"body":"i cant create a claim","createdAt":"2026-09-10T13:11:16.977Z","authorAddress":"0xde26dcfde2f27b917aaa61ee1ffab6dca996098b","authorName":"nickthelegend.eth","farcasterHandle":null,"twitterHandle":null,"profileUrl":"https://poidh.xyz/account/0xde26dcfde2f27b917aaa61ee1ffab6dca996098b","profileDataUrl":"https://poidh.xyz/account/0xde26dcfde2f27b917aaa61ee1ffab6dca996098b/data","upvotes":0,"downvotes":0},{"commentId":995,"parentId":992,"body":"bounty is under vote so claims cannot be submitted during this time! the claim is guaranteed to be confirmed now though, so I recommend waiting to see if a new bounty is posted","createdAt":"2026-09-10T18:26:45.547Z","authorAddress":"0x10fc964ef70c8467cd8c53e9ed9347422adf96a8","authorName":null,"farcasterHandle":"kenny","twitterHandle":"kennyistyping","profileUrl":"https://poidh.xyz/account/0x10fc964ef70c8467cd8c53e9ed9347422adf96a8","profileDataUrl":"https://poidh.xyz/account/0x10fc964ef70c8467cd8c53e9ed9347422adf96a8/data","upvotes":0,"downvotes":0}]}