Dymension RDK (RollApp Development Kit) is the Cosmos SDK for RollApps. The Cosmos SDK is a development kit that comes pre-built with various modules that expediate the building process.
RollApps are composed out of two core services, client and server. The server is the application side designated for the RollApp deployer to implement custom business logic alongside the pre-packaged modules. The client component, referred to as dymint, is a drop-in replacement for Tendermint and responsible for block production, peer message propagation and inter-layer networking.
Most Cosmos SDK modules may be integrated into the RollApp for building a RollApp. Core modules inherited from the Cosmos SDK and IBC are:
- Bank - Facilitating token transfers
- Gov - onchain proposals and voting
- Upgrade - Handling software upgrades
- IBC - Bridging protocol
Additional smart contract frameworks have been developed and deployed to production under various licenses:
Unlike the Cosmos SDK default modules, a few adjustments have been made that define the Dymension RDK:
- Epochs - RollApps utilize elastic block production which may cause inconsistencies in block production thus RollApps utilize time-based rather than height-based approach for state triggers.
- Mint - RollApps utilize time-based mint module built for consistent token creation. The mint module built by the Osmosis and Stride teams has been generalized by removing references to pools/incentive structures tied to the aformentioned protocols.
- Dist - Allocates tokens between the Sequencer (block proposer), members, and community pool.
- Sequencers - Creates an account to receive rewards for operating the RollApp
- Staking - Wrapper on the existing Cosmos SDK Staking module that prevents validator updates on the Proof-of-stake layer.