@kobold.near [Posted on DevHub](https://near.social/#/devgovgigs.near/widget/Post?id=1017) ## Idea: BOS / MEM integration gm BOS’ers, I wanted to introduce you to MEM (mem.tech) and share thoughts about a potential MEM/BOS integration so we can collect some feedback before we build. MEM is a serverless function/smart contract hybrid, built to decentralize what might usually be deployed as off-chain workers, without needing infra. It stores application state on Arweave but is designed to be chain-agnostic, which I think feeds into BOS’ vision to be a widely generalizable web3 UI kit. Here’s a simple contract example: https://docs.mem.tech/examples/simple-pastebin-clone. Why we think MEM could make a great BOS integration: * Broad multichain compatibility: MEM contracts can validate user actions on multiple chains, including NEAR, Ethereum/EVM, and some non-EVM chains. It uses signatures from any UI-connected wallet to derive the contract caller. This means BOS could potentially communicate and validate actions across a wider range of blockchains. * Deterministic fetch: MEM can deterministically call external APIs directly within the contract. This allows for real-time data computation, contract-side with any data, expanding the range of possible applications on BOS. * Easy access to Arweave storage: MEM exposes API-like functions for writing data to Arweave * Expanded BOS userbase: With MEM's chain agnosticism, BOS could appeal to users and developers from other blockchain ecosystems, broadening the community and userbase. An integration would also provide a path for MEM ecosystem developers to easily build and deploy UIs for their MEM applications via BOS, and make BOS an attractive alternative vs. building from scratch. Taking cues from the BOS VM API, here's a shorthand API proposal for MEM which could wrap the [existing MEM API](https://docs.mem.tech/mem-api/write-operations): ``` // Execute an action on a MEM contract mem.write(contractID, functionName, inputs); // Read a MEM contract state mem.read(contractID); ``` This is just a starting point – open to refining it based on feedback. Big thanks to Hero, Vlad and Mario for the guidance and feedback so far. Do you see a potential benefit to integration? Would you use it? Are there specific features or adjustments you'd want to see? Thanks for reading!