
deBridgeGate.send()
method is made on the origin (source) chain, the gate contract validates the input (its args and the
autoParams
struct), and if everything is correct (the data is unambiguous, the input asset covers the fees, etc), a special Sent
event is emitted.
This event exposes the following details of the submission:
submissionId
, the identifier of the cross-chain transaction you’ve initiated;debridgeId
, the cross-chain identifier of the input asset, needed to correctly handle tokens across supported chains;args
and theautoParams
structure that contains information about the passed message.
- waits a specific amount of block confirmations (12 block confirmations for supported EVM chains, and 256 block confirmations for the Polygon network) to ensure the finality of the transaction where the event has been emitted,
- validates the args and the structure,
- if the data is correct, sign the message with its own private key, and publish the signature to Arweave.
Note: Validators’ financial responsibility to be enabled through Slashing and Delegated Staking.
You can access the actual minimum required number of signatures by querying the
minConfirmations
property of the signatureVerifier
contract:claim()
method of the deBridgeGate
contract with the submission’s data (taken from the Sent
event) and minimal required number of validators’
signatures provided as its args.
Worth mentioning that such transactions may be signed and sent by anyone who is willing to pay the gas for its’ execution on the destination chain.
There is no security implication because during the claiming phase the deBridgeGate
contract first checks the integrity of the message (the args and
the autoParams
struct that was initially passed to the send()
method on the origin chain) by verifying each validator’s signature against their public
key, and then executing the instructions this message contains.
There are three ways to trigger a claiming transaction:
- manually, by visiting deExplorer, where you can find your cross-chain transaction by its
submissionId
or even by the hash of the origin transaction, then sign the prepared claiming transaction using the browser wallet (MetaMask, etc);

-
automatically, by specifying sufficient
executionFee
property within your submission: in this case, Claimers will execute the transaction and deliver the message in case the supplied on the source chainexecutionFee
(included gas) covers their gas on the destination chain. Claimer may wait to deliver the message (submission) in case of gas price spikes (if the value of the included gas becomes less than the cost of execution). In this case, you should trigger a claiming txn on your own, either manually or programmatically, and you’ll receive back the supplied included gas (instead of the Claimer service); - programmatically, by constructing a claiming txn with a little help of deSDK (this is what Claimer service actually does automatically).
deBridgeGate.claim()
call succeeds, a special Claimed
event is emitted by the
deBridgeGate
contract signaling the successful completion of the cross-chain transaction. Voila!