Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Getting Started (15 minutes)

This page is the fastest path to your first working message flow.

You will complete a minimal setup in this order:

  1. Deploy a receiver contract that inherits ConceroClient.
  2. Configure trusted relayer and verifier modules.
  3. Send a message from a source chain.
  4. Verify delivery with API tracking and destination-chain logs.

Before you begin

  • Solidity project ready (foundry or hardhat).
  • One source chain and one destination chain from Supported Networks.
  • Native gas token funded on both chains.
  • Router + module addresses copied for your target networks.

Step 1: Understand the flow

Read Integration Overview first. It explains who does what at source vs destination.

Step 2: Set up the destination receiver

Follow Set up ConceroClient:

  • inherit ConceroClient,
  • configure relayer/verifier allowlists,
  • set required verifier assertions,
  • implement _conceroReceive(bytes).

Step 3: Send from source chain

Follow Send a Cross-Chain Message:

  • build MessageRequest,
  • quote fee with getMessageFee,
  • call conceroSend with native fee.

Step 4: Confirm delivery on destination chain

Follow Receive a Message to validate receiver policy and payload decoding.

Step 5: Track status end to end

Use Track a Message with the returned messageId.

What the protocol enforces vs what you enforce

LayerEnforced by protocol/contractsEnforced by your app
Router authRouter controls submitMessage flow and relayer authorization through relayerLib.validateN/A
Receiver authConceroClientBase requires router-only caller and relayer allowlistN/A
Verifier checksRouter computes validationChecks from selected verifier libsYour app decides verification policy in ConceroClient or custom _validateMessageSubmission
Business logicN/A_conceroReceive implementation

Next steps