Transfers Flow

There are four transfer types supported by the Protocol, the "color" indicates if the privacy feature is used and the "weigh" indicates the internal mechanics that differ for chains with low/high network fees:

  1. Full Regular (aka. White)

  2. Light Regular (aka. White Light)

  3. Full Private (aka. Black)

  4. Light Private (aka. Black Light)

Full Regular Transfers

This type of transfer is used when both chains have low network fees.

If the user is aimed to lock the original tokens on chain A and receive the wrapped token on chain B the transfer requires 3 actions:

  1. Send - the user initiates the transfer of the original asset from chain A, sends the tokens to the contract, and specifies the receiver address.

  2. SubmitMint - the oracle submits the hash of the user's transaction parameters and his counter on chain B (should be repeated by the minimal required amount of oracles).

  3. Mint - the user claims the tokens (after oracle's confirmation) on the chain B by providing the same parameters as in the Send.

Original token to Wrapped Asset

If the user requires to exchange the wrapped asset from chain B back to the original tokens on chain A the operation goes through the followed 3 steps:

  1. Burn - the user initiates the transfer of the wrapped asset from chain B, sends the tokens to the contract, and specifies the receiver.

  2. SubmitBurn - the oracle submits the hash of the user's transaction parameters and his counter on chain A(should be repeated by the minimal required amount of oracles).

  3. Claim - the user claims the tokens (after oracle's confirmation) on chain A by providing the same set of parameters as was in the Burn transaction.

Wrapped Asset to original token

Light Regular Transfers

This type of transfer is used when one of the chains has quite expensive network fees and it is required to minimize the number of transactions on the chain. In this case, when the tokens are send to the expensive chain the oracles submit the confirmations to the target chain but to the cheaper one and the user provides their signatures on the other chain to claim the asset.

If the user is aimed to lock the original tokens on chain A and receive the wrapped token on expensive chain B the 3 steps are processed:

  1. Send - the user initiates the transfer of the original asset from chain A, sends the tokens to the contract, and specifies the receiver.

  2. SubmitMint - the oracle submits the hash of the user's transaction parameters and his counter on Chain A(should be repeated by the minimal required amount of oracles).

  3. Mint - the user claims the tokens (after oracle's confirmation) on the chain B by providing the same parameters as in the Send along with the signed transactions submitted by the oracles to the chain A.

Original token to Wrapped Asset

If the user requires to exchange the wrapped asset from cheap chain B back to the original tokens on chain A with high fees the operation goes through the followed 3 steps:

  1. Burn - the user initiates the transfer of the wrapped asset from chain B, sends the tokens to the contract, and specifies the receiver.

  2. SubmitBurn - the oracle submits the hash of the user's transaction parameters and his counter on Chain B(should be repeated by the minimal required amount of oracles).

  3. Claim - the user claims the tokens (after oracle's confirmation) on chain A by providing the same parameters as in the Burn along with the signed transactions submitted by the oracles to the chain B.

Wrapped Asset to original token