Integration Overview
Concero V2 is a message protocol where each message defines its own delivery and verification stack.
At a high level:
- Source app creates a
MessageRequestand pays message fee. - Router emits a packed message receipt.
- Selected relayer delivers submission to destination router.
- Destination router computes verifier checks.
- Destination app authenticates/asserts message and runs app logic.
Mental model: two enforcement layers
Layer 1: protocol execution
Handled by router + selected modules:
- fee quote and collection,
- relayer authorization (
relayerLib.validate), - verifier check computation (
validationChecks).
Layer 2: application acceptance
Handled by your destination client contract:
- accept calls only from trusted router,
- allow only trusted relayer libs,
- assert verifier checks according to your policy,
- execute app logic in
_conceroReceive.
Source chain responsibilities
- Build
MessageRequestwith the right chain selector, relayer lib, and verifier libs. - Encode destination execution data (
receiver + gas limit) withMessageCodec.encodeEvmDstChainData. - Call
getMessageFeeand pass returned value toconceroSendwhen paying native.
Destination chain responsibilities
- Configure
ConceroClient/ConceroClientBasesafely. - Allowlist relayer and verifier modules you trust.
- Set verification policy (
all required verifiersby default inConceroClient). - Decode and process payload in
_conceroReceive.