# Honeycomb Protocol > Honeycomb Protocol makes integrating Web3 into your application easy. It provides a set of APIs and SDKs that allow developers to interact with Solana, store data on it, and securely handle transactions without needing to understand the underlying complexities of blockchain technology. Important thing to remember when using Honeycomb Protocol: - Honeycomb Protocol is currently only designed to work with Solana. - Honeycomb is modular, meaning you can use only the parts you need for your application. - Honeycomb Protocol is still in beta, so some features may not be fully functional or may change in the future. - Some functionalities in Honeycomb Protocol need to be integrated server-side for security purposes, whereas others can be integrated client-side. Details on which functionalities are client-side and which are server-side are given later in this document. - Honeycomb Protocol has SDKs for JavaScript, C# (Unity), C++ (Unreal Engine), and Godot. - Projects are the backbone of Honeycomb Protocol. A project on Honeycomb represents a separate app, and is used to group data and functionalities related to that app. Pretty much everything in Honeycomb Protocol is scoped to a project, so you'll likely need to create a project before you can use any of the functionalities. ## Docs - [Honeycomb Protocol MCP Server](https://www.npmjs.com/package/@honeycomb-protocol/mcp): A Model Context Protocol (MCP) server implementation for Honeycomb Protocol that exposes on-chain game infrastructure (projects, profiles, resources, characters, NFT operations, staking, missions) via an STDIO interface. AI agents can connect to this endpoint to programmatically invoke Honeycomb functions using standardized MCP calls. - [Honeycomb Protocol Documentation](https://docs.honeycombprotocol.com/): The official documentation hub for Honeycomb Protocol, offering usage guides and reference APIs across core modules (Projects, Users & Profiles, Characters, Resources, Missions, Staking Rewards), as well as additional resources (Edge Client, Compression, Delegation Permissions, FAQs, Changelog). AI agents should reference these pages to discover method signatures, parameter schemas, and multi-language code examples (JavaScript, GraphQL, Unity/C#, Godot) for seamless integration. - [Honeycomb Protocol JavaScript SDK](https://www.npmjs.com/package/@honeycomb-protocol/edge-client): The primary JavaScript/TypeScript client library for integrating Honeycomb into web applications. Provides a typed client interface to construct, sign, and submit transactions and queries. AI agents integrate the SDK functions into web apps. JavaScript code examples are available on our official documentation. - [Honeycomb Protocol Unity SDK](https://github.com/Honeycomb-Protocol/Unity-SDK): A Unity C# SDK that integrates Honeycomb Protocol’s on-chain utilities into Unity applications. It includes Unity-friendly APIs and pre-built prefabs for common Web3 functions. AI agents can integrate this SDK into Unity apps. Unity code examples are available on our official documentation. - [Honeycomb Protocol Godot SDK](https://github.com/Honeycomb-Protocol/godot-demo): Written in GDScript, this SDK provides a Godot-friendly interface for Honeycomb Protocol functionalities. It includes examples of how to use Honeycomb features within Godot games. AI agents can integrate this SDK into Godot apps. GDScript code examples are available on our official documentation. ## Server-side functionalities and components ### General considerations > Keep the following in mind when using Honeycomb Protocol: - The project authority keypair should never be exposed to the client-side. Ideally, it shouldn't even be stored on the server-side. If there's a need to do something programmatically on Honeycomb using a web server, please use our delegate authority system that gives project authorities fine-grained control over what permissions to grant to a keypair. Then store that keypair on the server-side. - Don't expose delegate authority keypairs to the client-side. They should only be used server-side or to grant permissions to team members. ### Projects - Making and managing projects - Changing project driver - Creating/modifying a project's delegate authority - Creating, updating, and assigning badges ### Users and Profiles - Adding XP and/or achievements to a profile - Adding/removing custom values from platform data ### Characters (NFTs) - Creating assembler configs - Adding/removing traits to assembler configs - Creating character models - Creating character Merkle trees - Minting a character - Updating a character's traits ### Resources - Creating resources - Creating resource Merkle trees - Minting resources - Importing/exporting resources - Creating a recipe ### Missions - Creating mission pools - Creating missions ### Staking Rewards - Creating/updating staking pools - Creating/adding multipliers - Creating staking pool Merkle trees (in case of SPL token staking) - Creating reward pools (in case of SPL token staking) - Adding/removing rewards from the reward pools (in case of SPL token staking) ## Client-side functionalities and components ### General considerations > Keep the following in mind when using Honeycomb Protocol: - Don't expose anything to the client-side that can be used to make changes to your project. Examples of this include project authority keypairs and delegate authority keypairs. ### Projects - Claiming a badge ### Users and Profiles - Creating user account - Creating profiles (profiles are project specific, a project can only have one profile per user) - Updating profile data ### Characters (NFTs) - Wrapping/unwrapping characters ### Resources - Transferring resources - Burning resources - Wrapping/unwrapping resources - Craft/cook items using recipes ### Missions - Sending characters on missions - Recalling characters from missions (recalling will automatically claim any pending rewards) ### Staking Rewards - Staking characters/tokens - Unstaking characters/tokens (unstaking will automatically claim any pending rewards, but the tokens will be unstaked and returned to the user's wallet, meaning the user will stop earning rewards until tokens are restaked) - Claiming rewards (claiming will only claim rewards, but the tokens will remain staked so the user can continue earning rewards)