
Pixotchi Mini
Your pocket farm on Base!
About
The problem it solves  [Pixotchi Mini](mini.pixotchi.tech) is not an app, wrapped to be compatible with Miniapp mode, It was written from scratch following Farcaster and minikit SDK guidelines! It also makes interacting with the Pixotchi ecosystem significantly easier, especially for new users entering through the brand new Base app or Farcaster, with all sponsored-gas tx across all dapp along with more features like Batch tx/Bundler and Theme customization! Pixotchi Mini features the highest available tech from Base including Agent where it can use Spend Permissions from Base Account SDK to take onchain actions on your behalf! The original game involves multiple NFT types ([Plants](app.pixotchi.tech), [Lands](land.pixotchi.tech) and [Staking](stake.pixotchi.tech)), each with separate smart contracts, onchain actions, and time-sensitive logic. That level of complexity often requires users to jump between apps, wallets, explorers, and [documentation](doc.pixotchi.tech) just to manage a single plant/land or understand what's happening.  Pixotchi Mini brings all of that into one simple, responsive interface. It gives users a clear view of their Plants and Lands, allows in-game actions to be executed directly (and provably) onchain, and integrates flashblock-compatible RPCs and Base’s latest smart wallet features bundled transactions, and sponsored gas to remove friction from every interaction. It also has Neural Seed, Pixotchi's AI assistant integrated along with a Public chat; Allowing users to communicate with each other and ask about the next steps they need to take with help of Neural Seed AI! It’s not just a dashboard, it’s an onboarding and management tool that makes Pixotchi feel intuitive, responsive, and easy to navigate, while keeping the full transparency and depth of an onchain game as mini app. [Pixotchi App Repo](https://github.com/pixotchi/Pixotchi-Eco) Smart Contract Address(es) **Passport NFT**: [(repo)](https://github.com/pixotchi/Pixotchi-PassNFT) 0x4B6cF0cd836488F6A22752AC301354713fd68aEB **SEED Staking contract:** 0xF15D93c3617525054aF05338CC6Ccf18886BD03A **Plants NFT V2 (ERC-7504: Dynamic smart contracts):** [(repo)](https://github.com/pixotchi/Pixotchi-PlantsV2) 0xeb4e16c804AE9275a655AbBc20cD0658A91F9235 **Lands NFT (EIP-2535: Diamond Pattern):** [(repo)](https://github.com/pixotchi/Pixotchi-LandsNFT) 0x3f1F8F0C4BE4bCeB45E6597AFe0dE861B8c3278c Other Onchain Proof We have built a [Dune Dashboard](https://dune.com/pixotchi/dashboard) to track activity across most of our smart contracts. https://dune.com/pixotchi/dashboard 
How it's made
Challenges we ran into One of the biggest challenges was building for a complex game with deeply on-chain mechanics while still keeping the experience smooth and accessible. Indexing was the first major hurdle. **Plants and Lands are separate contracts with different standards**, with many edge cases and time-based state changes. We had to write a new indexer from the ground up that could handle the logic correctly, sync reliably, and power a real-time UI. Adding Bundler/Batch transactions functions was another point of challenge, as we had to [rewrite our indexer](https://github.com/pixotchi-tech/Pixotchi-Indexer) to be compatible in detecting individual events within a batch transaction. Another major challenge was simplifying onchain actions. **Every interaction, whether it’s extending TOD, feeding your plant, or harvesting, is a transaction onchain.** Every single asset you own from Plants, Passports, Lands are NFTs. We wanted these actions to feel fast and fluid. Integrating Smart Wallet features like flashblocks, bundled transactions, and sponsored gas helped make that possible, but it required a lot of experimentation to get right. Finally, **getting the perfect balance across various SDKs used (Farcaster, Minikit, OnchainKit, etc.)** was quite challenging—at least until the Base Build sessions started! By August 16th, we managed to fully integrate key features from the MiniApp SDK to make our app feel native to the Base app. For clarification, we use the isInMiniapp function to detect the environment and present wallet options to users. This allows us to onboard users outside of the Base app who didn’t yet have beta access. 