Send
A contract calls send(chain, receiver, payload) on its chain's Kashima endpoint. The endpoint stamps the sender and a nonce, and records the message where it can be proven later.
Testnet
What it is
A contract on one chain calls send. On the other chain, anyone presents a proof that the message was sent, the endpoint there checks it against a light client of the first chain, and hands the message to its receiver. Exactly once, in any order, byte for byte.
A contract calls send(chain, receiver, payload) on its chain's Kashima endpoint. The endpoint stamps the sender and a nonce, and records the message where it can be proven later.
A light client on the other side follows the source chain's own consensus: validator signatures, Ethereum's sync committee, a rollup's settlement on Ethereum, BSC's finality votes. The message is proven by Merkle proof against a block it accepted.
Anyone may carry the proof. The endpoint delivers each message once, to the receiver it names, with the chain and sender it came from. A receiver that refuses keeps the message deliverable.
Every route runs through STRATO. A message between two other chains sails twice: into STRATO, then out. KashimaRouter does the transfer inside one transaction and tells the receiver where the message really began, so an application never names a hop.
The archipelago
The crossing time is how long the source chain takes to become provable on the other side: its finality, not Kashima's.
| Chain | How STRATO knows its blocks | Typical crossing to STRATO |
|---|
Leaving STRATO takes a minute or two everywhere: the destination needs only a header signed by STRATO's validators.
What it trusts