Kaskad

Pontifex Bridge

Pontifex moves KSKD from Igra to Robinhood Chain. You burn KSKD on Igra, and the same amount is minted to the same address on Robinhood Chain. The route is one-way: KSKD on Robinhood Chain cannot be bridged back to Igra.

RouteIgra mainnet (38833) → Robinhood Chain (4663)
DirectionOne-way
Rate1:1. No bridge fee
GasYou pay Igra gas in iKAS. The Kaskad relayer pays Robinhood Chain gas
Minimum1,000 KSKD per transfer
Capacity25,000,000 KSKD per one-day window, shared by all users
Typical deliveryAbout 15–20 minutes
RecipientYour address. The app sends to the wallet you connect

How It Works

Igra
KskdExit.exit(amount)
  • burns your KSKD
  • adds it to burned[you]
after 800 blocks
AWS Nitro Enclave
Bridge enclave
  • reads burned[you]
  • signs “you have burned N in total”
signature
Robinhood Chain
KskdEntry.claim(…)
  • mints the total minus what was already minted
  • to the same address
  1. Burn on Igra. The KskdExit contract burns your KSKD and adds the amount to a running total for your recipient address, burned[recipient].
  2. Attest. A signer that runs inside an AWS Nitro Enclave reads that total from Igra once it is 800 blocks deep (about 14 minutes) and signs it.
  3. Mint on Robinhood Chain. The Kaskad relayer submits the signature to KskdEntry. The contract mints the difference between the signed total and what it has already minted to you, bridgedIn[recipient].

The bridge never signs individual transfers, only your running total. Re-submitting an old signature mints nothing, and a transfer that was never relayed is caught up by the next signature. No nonces or transfer IDs are needed.

Bridge in the App

  1. Open kaskad.live and select the Bridge tab, or go straight to kaskad.live/#bridge. The tab is shown on both Igra and Robinhood Chain.
  2. Connect the wallet you want to receive on. The recipient is always the connected wallet: tokens arrive at the same address on Robinhood Chain.
  3. If your wallet is on another network, press Switch to Igra mainnet.
  4. Enter an amount of at least 1,000 KSKD. Available to receive this window shows how much the bridge can still deliver in the current window.
  5. Tick I understand this transfer is one-way. Changing the amount clears the tick.
  6. Press Approve KSKD and confirm in your wallet. The approval covers exactly this amount, so you usually approve again for each transfer. The step is skipped if an earlier approval already covers the amount.
  7. Press Send to Robinhood and confirm the transfer.
  8. Wait for delivery. The panel shows each step: approval, the Igra transaction, 800 network confirmations, and Receive KSKD on Robinhood.

Delivery is automatic. You can close the page; when you come back with the same wallet, the panel reopens while a transfer is pending.

To see KSKD in your wallet on Robinhood Chain, add the token manually:

FieldValue
NetworkRobinhood Chain (4663)
Contract0x6ddb8541Af17DAdEA47dF41D1C13faf8Deee1902
SymbolKSKD
Decimals18

Use a regular wallet

KSKD is minted to the same address on Robinhood Chain. A smart-contract wallet, such as a Safe or an ERC-4337 account, may not exist at that address on Robinhood Chain, or may belong to someone else there. Tokens minted to such an address cannot be recovered, and the app cannot detect this case. Bridge from a wallet that holds its own private key.

Delivery Time

The bridge waits 800 Igra blocks after your transaction before it signs, so that a chain reorganization cannot undo a burn that was already paid out. At about 1.07 seconds per block, that takes about 14 minutes. The relayer then collects the signature and submits the claim.

All 94 transfers made between 12 and 20 October 2026 were delivered. Based on on-chain timestamps:

  • The median delivery time was about 18 minutes.
  • 9 in 10 arrived within an hour.
  • The slowest took under 3 hours.

Delivery takes longer when the daily capacity is used up (see Limits).

Igra block timestamps currently run about 10 minutes behind real time, and the gap drifts. Transfer times in the app's history come from Igra blocks, so they can look earlier than your clock.

Limits

Minimum per transfer: 1,000 KSKD. KskdExit rejects smaller burns (minBurn). The relayer delivers a recipient's balance only when at least 1,000 KSKD is pending.

One pending transfer at a time. While 1,000 KSKD or more is waiting for delivery, the app does not let you send more.

Daily capacity. KskdEntry mints at most mintLimit, currently 25,000,000 KSKD, per window of one day, for all users together. A new window starts with the first claim after the previous window has ended, so the reset time shown in the app is the earliest possible reset.

If your pending amount is larger than the room left in the window, the bridge delivers what fits, and the rest stays recorded. The relayer delivers the rest after the reset if it is at least 1,000 KSKD. A smaller remainder waits until you send more or claim it yourself.

Supply cap. KSKD on Robinhood Chain has a fixed maximum supply of 1,000,000,000 KSKD.

Status and Troubleshooting

The app computes your status from both chains: your total burned on Igra minus your total received on Robinhood Chain. The app runs no off-chain ledger. You can read the same values yourself.

MessageMeaningWhat to do
Waiting for the bridge to deliver your tokensYour burn is recorded on Igra and is waiting for depth, the relayer, or window capacityWait. If it takes much longer than an hour, check the window capacity or claim it yourself
You have N KSKD pending on Robinhood. Automatic delivery requires at least 1,000 KSKD pendingLess than 1,000 KSKD is pending, and the relayer does not deliver thatSend at least 1,000 KSKD more, or claim it yourself
Receiving capacity is below the automatic delivery minimumThe daily window is almost used upWait for the window to reset. The app shows the earliest reset time
The bridge is paused. Your pending transfer remains recordedMinting on Robinhood Chain is pausedWait. Pending amounts are delivered after minting resumes
Bridge verification is temporarily unavailableFewer enclave signers are registered than a claim needsWait. Burns stay recorded and are delivered once a signer is registered
New transfers are closedKskdExit no longer accepts new burnsNothing is lost: tokens burned before closing remain claimable
The source transaction reverted. No tokens were sentThe Igra transaction failed and nothing was burnedTry again
The bridge is temporarily unavailable. Refresh to check both networksThe app could not read one of the chainsRefresh. If it persists, an RPC endpoint is down
Under maintenanceThe app's price-feed check failed. The whole app is paused, including the Bridge tabWait. Transfers already sent are unaffected

Claim It Yourself

The relayer is a convenience, not a gatekeeper. KskdEntry.claim is permissionless: anyone may submit a valid enclave signature, and the tokens always go to the recipient named inside the signature. Submitting someone else's claim only pays their gas.

If the relayer is slow, or you have a remainder under 1,000 KSKD, you can request a signature from the bridge API and submit the claim yourself. You pay Robinhood Chain gas in ETH. See Self-claim for the API and a script.

Why It Is Safe

  • There is no vault to drain. KSKD is burned on Igra, not locked.
  • The signing key exists only inside an AWS Nitro Enclave that runs published, reproducible code. KskdEntry admits a signer only with an AWS-signed attestation of the pinned image. You can check this yourself.
  • The enclave signs only what Igra shows. It reads your total at 800 blocks depth, re-reads it at the same block hash, and refuses forbidden recipients.
  • Signatures are bound and short-lived. Each signature is an EIP-712 message bound to KskdEntry on chain 4663 and expires after one hour. Because it carries a running total, replaying it mints nothing.
  • Minting is capped. At most 25,000,000 KSKD can be minted per window, or up to twice that around a window boundary, and never more than the supply cap. Minting can be paused immediately.

Enclave Security explains how the enclave keys are created and protected.

You can check that every KSKD on Robinhood Chain is backed by KSKD burned on Igra. When no transfer is pending, KskdExit.totalBurned() on Igra equals totalSupply() of KSKD on Robinhood Chain:

cast call 0x5A818D42cA142483f72AE7D426E199324FEc4871 "totalBurned()(uint256)" --rpc-url https://rpc.igralabs.com:8545
cast call 0x6ddb8541Af17DAdEA47dF41D1C13faf8Deee1902 "totalSupply()(uint256)" --rpc-url https://rpc.mainnet.chain.robinhood.com

Contracts

The contract source is public in Kaskad-Lending/kaskad-pontifex, and the deployed bytecode of all three contracts matches commit 1832366. The enclave source is in Kaskad-Lending/kaskad-pontifex-enclave; rebuilding commit 79c81b8 reproduces the measurements of the running bridge enclave (how to check).

FAQ

Can I bridge KSKD back to Igra? No. KSKD on Robinhood Chain has no burn or exit path.

Does the bridge charge a fee? No. You receive exactly the amount you burn. You pay only Igra gas.

Can I send to a different address? Not in the app. Developers who call KskdExit directly can name any recipient, and a wrong recipient is final. See the developer reference.

What happens if the relayer stops? Your burn stays recorded on Igra. Delivery resumes when the relayer is back, or you can claim it yourself.

What happens if the bridge enclave stops? No new signatures are produced until a signer is back. Burns stay recorded on Igra and are delivered afterwards, even if a new enclave has to be registered.

Is KSKD on Robinhood Chain the same token? It is a separate ERC-20 contract, KskdBridged, named Kaskad with symbol KSKD and 18 decimals. Only the bridge can mint it, and every token is backed by a burn on Igra.