Skip to main content
App capabilities — Managing a shared counter that can be incremented and used across chains.

1. Kernel implementation

A. Skate APP Template

B. Kernel Counter App Implementation

Take note of the increaseCounter() and _handleSkateIntent() implementations.The signature format for methods should follow this structure:
  1. Method Name: The first part of the signature must be the method name.
  2. Parameter Types The subsequent parts represent the input parameter types, separated by commas.
    These types must be supported by Solidity.
  3. Cross-Chain Type Handling For non-EVM chains, type transpilation occurs at the MessageBox level.
    For example, Solana doesn’t support uint256 — emit it as uint128 or uint64, then cast to uint256 at the Kernel layer.
  4. Format Rule All parts of the signature must be comma-separated with no spaces. Example: increaseCounter,uint256,uint256

2. Periphery Implementation (EVM example)

Take note of the increaseCounter() and _handleSkateIntent() implementations.The signature format for methods should follow similar standard to kernel

Notes and best practices

  1. All deployed periphery should be registered on Kernel App using bytes32 format, see setChainToPeripheryContract on Kernel Skate App template.
  2. All shared logic should be maintain at Kernel level, periphery should only act as proxy for assets handler.
  3. Ensure to used a consistent omnichain assets format across your app, i.e. in case of rebalancing between periphery