Build decentralized applications on Freenet using river as a template. Guides through designing contracts (shared state), delegates (private state), and UI. Use when user wants to create a new Freenet dApp, design contract state, implement delegates, or build a Freenet-connected UI.
View on GitHubfreenet/freenet-agent-skills
freenet
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/freenet/freenet-agent-skills/blob/main/skills/dapp-builder/SKILL.md -a claude-code --skill dapp-builderInstallation paths:
.claude/skills/dapp-builder/# Freenet Decentralized Application Builder Build decentralized applications on Freenet following the architecture patterns established in River (decentralized chat). ## How Freenet Applications Work Freenet is a platform for building decentralized applications that run without centralized servers. Apps rely on a global, peer-to-peer **Key-Value Store** where the "Keys" are cryptographic contracts. ### Core Concept: The Contract is the Key The "Key" for any piece of data is the **cryptographic hash of the WebAssembly (WASM) code** that controls it. - This ties the *identity* of the data to its *logic* - If you change the code (logic), the key changes - This creates a "Trustless" system: You don't need to trust the node storing the data, because the data is self-verifying against the contract code ## The Three Components of a Freenet App ### 1. The Contract (Network Side) - **Role:** Acts as the "Backend" or Database - **Location:** Runs on the public network (untrusted peers) - **Functionality:** - Defines what data (State) is valid - Defines how that data can be modified - **State:** Holds the actual application data (arbitrary bytes) - **Constraint:** Cannot hold private keys or secrets - all data is public (unless encrypted by the client) ### 2. The Delegate (Local Side) - **Role:** Acts as the "Middleware" or private agent - **Location:** Runs locally on the user's device (within the Freenet Kernel) - **Functionality:** - **Trust Zone:** Safely stores secrets, private keys, and user data - **Computation:** Performs signing, encryption, and complex logic before sending data to the network - **Background Tasks:** Can run continuously to monitor contracts or handle notifications even when the UI is closed ### 3. The User Interface (Frontend) - **Role:** Interaction layer for the user - **Location:** Web Browser (SPA) or native app - **Functionality:** - Connects to the local Freenet Kernel via WebSocket/HTTP - Built using standard web fra