{"id":30115593,"url":"https://github.com/lilypad-tech/lilypad-v0","last_synced_at":"2025-08-10T08:51:15.294Z","repository":{"id":65649142,"uuid":"593420610","full_name":"Lilypad-Tech/lilypad-v0","owner":"Lilypad-Tech","description":"A simple and lightweight FVM oracle using Bacalhau","archived":false,"fork":false,"pushed_at":"2023-09-28T12:20:01.000Z","size":2908,"stargazers_count":28,"open_issues_count":9,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-07-24T23:35:00.558Z","etag":null,"topics":["bacalhau","blockchain","filecoin","fvm","oracle","smart-contracts"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lilypad-Tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-26T00:12:40.000Z","updated_at":"2025-06-03T07:46:23.000Z","dependencies_parsed_at":"2025-06-13T11:47:40.699Z","dependency_job_id":null,"html_url":"https://github.com/Lilypad-Tech/lilypad-v0","commit_stats":null,"previous_names":["lilypad-tech/lilypad-v0","bacalhau-project/lilypad-v0"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lilypad-Tech/lilypad-v0","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilypad-Tech%2Flilypad-v0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilypad-Tech%2Flilypad-v0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilypad-Tech%2Flilypad-v0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilypad-Tech%2Flilypad-v0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lilypad-Tech","download_url":"https://codeload.github.com/Lilypad-Tech/lilypad-v0/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilypad-Tech%2Flilypad-v0/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269699541,"owners_count":24461215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bacalhau","blockchain","filecoin","fvm","oracle","smart-contracts"],"created_at":"2025-08-10T08:51:07.265Z","updated_at":"2025-08-10T08:51:15.263Z","avatar_url":"https://github.com/Lilypad-Tech.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌺🐸 Lilypad\n\n\n## We have docs! ##\n\n[docs.lilypadnetwork.org](https://docs.lilypadnetwork.org/)\n\nand a blog... [lilypad.tech](www.lilypad.tech)\n\n\n## Breaking Changes 1 May 2023 ##\n\n- Note the events contract is now called ```LilypadEventsUpgradeable.sol``` (updated from LilypadEvents.sol)\n\n- The function to call from your calling contract has been renamed from runBacalhauJob -\u003e ```runLilypadJob(fromContractAddress, spec, resultType) PAYABLE```\n\n- You need to pay to perform tasks now: currently the pay is ONLY to cover the network gas costs of returning the job to your calling contract. No other fees for running the job are payable. (while we were only on testnet, this was not an issues, however, it is on mainnet :))\n\n- NOTE: Bacalhau also changed how it handles the \"Publisher\" part of a Spec. -\u003e ```\"Publisher\": \"estuary\"``` is now ```\"PublisherSpec\": {\"Type\": \"estuary\"}```\n\nStableDiffusion example has been updated to reflect changes see this contract: https://github.com/bacalhau-project/lilypad/blob/main/examples/contracts/StableDiffusionCallerv2.sol\n\nOr open in remix: https://remix.ethereum.org/bacalhau-project/lilypad/blob/main/examples/contracts/StableDiffusionCallerv2.sol\n\n## Deployed Lilypad Events Contracts ##\n\n| Chain Name | LilypadEvents Contract Address | RPC | ChainID | BlockExplorer | Faucet |\n| --- | --- | --- | --- | --- | --- |\n| Filecoin Calibration Net (**testnet**) | 0xdC7612fa94F098F1d7BB40E0f4F4db8fF0bC8820 | [https://api.calibration.node.glif.io/rpc/v0](https://api.calibration.node.glif.io/rpc/v0) | 314159 | [https://calibration.filscan.io/](https://calibration.filscan.io/), | [https://faucet.calibration.fildev.network/](https://faucet.calibration.fildev.network/) |\n| Filecoin Hyperspace (**testnet**) | 0x489656E4eDDD9c88F5Fe863bDEd9Ed0Dc29B224c | [https://api.hyperspace.node.glif.io/rpc/v1](https://api.hyperspace.node.glif.io/rpc/v1), [https://hyperspace.filfox.info/rpc/v1](https://hyperspace.filfox.info/rpc/v1), [https://filecoin-hyperspace.chainstacklabs.com/rpc/v1](https://filecoin-hyperspace.chainstacklabs.com/rpc/v1), [https://rpc.ankr.com/filecoin\\_testnet](https://rpc.ankr.com/filecoin_testnet) | 3141 | [https://fvm.starboard.ventures/hyperspace/explorer/tx/](https://fvm.starboard.ventures/hyperspace/explorer/tx/), [https://explorer.glif.io/](https://explorer.glif.io/), | [https://hyperspace.yoga/#faucet](https://hyperspace.yoga/#faucet) |\n| Filecoin Mainnet | 0xc18879C0a781DdFa0258302467687413AaD5a4E6 | [https://api.node.glif.io/rpc/v1](https://api.node.glif.io/rpc/v1), [https://filecoin-mainnet.chainstacklabs.com/rpc/v1](https://filecoin-mainnet.chainstacklabs.com/rpc/v1), [https://rpc.ankr.com/filecoin](https://rpc.ankr.com/filecoin) | 314 | [https://fvm.starboard.ventures/](https://fvm.starboard.ventures/), [https://explorer.glif.io/](https://explorer.glif.io/), [https://beryx.zondax.ch/](https://beryx.zondax.ch/), [https://filfox.io/](https://filfox.io/) |  |\n\n## About Lilypad ##\n\nA simple and lightweight FVM \"oracle\" using Bacalhau. We're enabling calling Bacalhau jobs from smart contracts!\n\nThis project harnesses the power of onchain compute with off-chain computations including traditional Oracle jobs, AI, ML and well any Docker or WASM job you can run on Bacalhau.\n\nThe work is primarily initially focussed on FEVM contract target.\n\n![Project Lilypad in 3 mins (2)](https://user-images.githubusercontent.com/12529822/223378567-91e08ae4-9859-441d-bbfe-d1b7516c6543.png)\n\n**YouTube Video Link**\n\n[![YouTube Video](http://img.youtube.com/vi/9lF7omNEK-c/0.jpg)](https://www.youtube.com/watch?v=9lF7omNEK-c 'Project Lilypad')\n\n\nSee the examples folder for how to use this in your own contracts!\n\n[Read more here](https://bit.ly/project-lilypad)\n\nGet help: [FilecoinProject Slack](https://filecoinproject.slack.com/) #bacalhau-lilypad channel\n\n### How Stuff Works\n\n![image (15)](https://user-images.githubusercontent.com/12529822/224299570-366bde1c-1f48-4af9-9d7c-0d4f8a0fc1fc.png)\n\n### How do I get started on using Lilypad in my project?🧑‍💻\n\n1.  Create a contract that implements [`LilypadCallerInterface`](./hardhat/contracts/LilypadCallerInterface.sol). As part of this interface you need to implement 2 functions:\n\n    - `lilypadFulfilled` - a callback function that will be called when the job completes successfully\n    - `lilypadCancelled` - a callback function that will be called when the job fails\n\n2.  To trigger a job from your contract, you need to call our `LilypadEvents` contract which the bridge is listening to. You will connect to Bacalhau network via this bridge. Create an instance of [`LilypadEvents`](./hardhat/contracts/LilypadEvents.sol) by passing the public contract address above to the `LilypadEvents` constructor. See our [example](./examples/contracts/StableDiffusionCaller.sol#L29).\n3.  To make a call to Bacalhau, call `runBacalhauJob` from your function. You need to pass the following parameters:\n\n    |     Name      |                                    Type                                     |                                                                                                             Purpose                                                                                                              |\n    | :-----------: | :-------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n    |    `_from`    |                                  `address`                                  |                                         The address of the calling contract, to which success or failure will be passed back. You should probably use address(this) from your contract.                                          |\n    |    `_spec`    |                                  `string`                                   |                                                                    A Bacalhau job spec in JSON format. See below for more information on creating a job spec.                                                                    |\n    | `_resultType` | [`LilypadResultType`](./hardhat/contracts/LilypadCallerInterface.sol#L4-L9) | The type of result that you want to be returned. If you specify CID, the result tree will come back as a retrievable IPFS CID. If you specify StdOut, StdErr or ExitCode, those raw values output from the job will be returned. |\n\n### What do I need to know to run Bacalhau?\n\n- Bacalhau is language-agnostic, and supports [Docker](https://docs.bacalhau.org/getting-started/docker-workload-onboarding) or [WASM](https://docs.bacalhau.org/getting-started/wasm-workload-onboarding) workloads. As long as you can run your executable in a container, you can run it in Bacalhau.\n- You need to supply a Bacalhau job spec. To create a job spec, you can:\n  - Run a Bacalhau job successfully, and then get the job spec back using `bacalhau describe \u003cjob_id\u003e --format=json`.\n  - Generate a job spec without running anything, using `bacalhau docker run --dry-run`.\n  - Writing a job spec by hand, by using our [schema](https://schema.bacalhau.org) as a guide.\n- What can I do with Bacalhau now? You can:\n  - read from IPFS, Filecoin, or URLs\n  - write into Estuary or IPFS\n\n### Any Example Jobs?\n\nWe have a full complement of example jobs you can leverage on the [Bacalhau Docs Site](https://docs.bacalhau.org/)\n\nTry out\n\n- YOLO\n- OCR\n- Video Editing\n- and many, many more!\n\n### More Resources\n\nSee a video of this project in action [here](https://youtu.be/B0l0gFYxADY)\n\nRead more and see the presentation slides [here](https://bit.ly/project-lilypad)\n\n### See our Example Project\n\nWe've created Waterlily - an AI-Art generator that pays royalties to artists (or donations to art foundations for public works).\n\nSee it live in action [waterlily.ai](https://www.waterlily.ai/)\n\n![Screenshot 2023-03-14 at 10 14 23 am](https://user-images.githubusercontent.com/12529822/224852799-594fd941-be82-4b7e-b7cd-2ba306857243.png)\n\n### Get in touch\n\nWe'd also LOVE to hear about what use cases you have - contact us in the [FilecoinProject Slack](https://filecoinproject.slack.com/) #bacalhau or #bacalhau-lilypad channel\n\nContributions to this repo would also earn you many 5/5 Stable Diffusion Rainbow Unicorns (and be gratefully recieved)!\n\n### Thanks for your interest!\n\n❤️ Bacalhau team: off-chain filecoin-native decentralised compute ❤️\n\n#buildwithbacalhau\n\n![image](https://user-images.githubusercontent.com/12529822/220625332-b0e6a08a-b77d-41f7-90a8-248852a353c8.png)\n\n\nCurrent Release Addresses:\n\nHyperspace:\nChainId: 3141\nRPC: https://api.hyperspace.node.glif.io/rpc/v1\nContract Implementation Address: 0x42be31473913E8932bFAD617C53C318bf36e8ba9\nContract Proxy Address: 0x489656E4eDDD9c88F5Fe863bDEd9Ed0Dc29B224c \n\nCalibration Net:\nChainId: 314159\nRPC: https://api.calibration.node.glif.io/rpc/v0\nContract Implementation Address: 0x6a46ddE41c3f572A07527149552b4B1875B0361B\nContract Proxy Address: 0xdC7612fa94F098F1d7BB40E0f4F4db8fF0bC8820\n\nMainnet:\nChainId: 314\nRPC: https://api.node.glif.io\nContract Implementation Address: 0x45A60254785834B02B3F0c9E3136e3dd1afC23f5\nContract Proxy Address: 0xc18879C0a781DdFa0258302467687413AaD5a4E6\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilypad-tech%2Flilypad-v0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilypad-tech%2Flilypad-v0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilypad-tech%2Flilypad-v0/lists"}