Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.train.tech/llms.txt

Use this file to discover all available pages before exploring further.

1

Monitor the source chain

Subscribe to TokenLocked events to detect any locks made to your address with a hashlock.
2

Lock funds on the destination chain

  • When a lock is detected, call lock() on the destination chain and pass the same hashlock with timelock of T+2ΔT + 2\Delta.
3

Verify the lock on source chain

  • Monitor the source chain for the TokenLocked event details (or use the getDetails() function) on the detected lock.
  • Verify that the hashlock matches what the user used.
  • Verify that the timelock provides sufficient time to act, ensuring it is at least T+ΔT + \Delta.
  • Verify that the Id is consistent and valid.
4

Receive secret from user

The user will sign and transmit the derived secret to you via off-chain channels. Verify that when hashed, this secret matches the hashlock on both chains.
5

Complete the exchange

  • Once you receive the secret, call redeem() on the destination chain to unlock the user’s funds. You are incentivized to do this quickly because a reward is reserved for whoever completes this transaction. If you delay, another actor can call redeem and claim the reward instead.
  • Call redeem() on the source chain to claim your primary fee/reward.
  • Pass in the secret value received from the user.
Edge Case: User Fails to Act on the Solver’s Lock
  • If the commitment is not locked, wait for the timelock to expire.
  • Call refund() on the destination chain to reclaim your funds.