An exploration of building functioning microbiology-inspired life in Solidity.
In this project I try to create software that qualifies as "alive". Meaning it metabolizes energy, grows, replicates, organizes as cells, and is built out of discrete yet highly interdependent organelles. The two questions I need to answer are can such a system written in Solidity self-replicate, and how it would obtain agency in an ecosystem where all actions must originate from a signed Tx. I design and build a sample cell to explore replication. I've built a Nucleus organelle contract to manage cell membership, a Leucoplast organelle contract to manage cell gas, and a Chloroplast organelle contract to manage cell division. I am evolving this single cell animal using behavior driven development. Thus far the Nucleus and Leucoplast organelle contracts function as intended as units and as a system. My Chloroplast organelle contract passes tests about its structure, but its main function is thus far only stubbed in. The next step is to refactor the system with Open Zeppelin's Clone template and try again to affect deploying a contract from a function call of another contract. I hope to someday build out a versioned catalogue of organelles, each providing different functions to cells. Cells could then be constructed from a parts catalog. There should be a critical diversity at which a more genetic algorithm-style replication and goal seeking can be initialized. The end goal is to infect the EVM blockchain system with a large number of cellular autonoma, multi-celled systems and organisms all living symbiotically with various users.
I used Solidity, HardHat, Mocha and Chai. There is no need for a user interface until an organelle to manage it is built. The project is at the state of trying to interact with bacteria before the microscope was invented: there's really nothing to see. I enlisted the aid of OpenAI's ChatGPT 4.0 mini, Meta.ai, Grok, and a local copy of DeepSeek 14 billion in coding and debugging this project. I listed the AI in order of most to least helpful.