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.
| Route | Igra mainnet (38833) → Robinhood Chain (4663) |
| Direction | One-way |
| Rate | 1:1. No bridge fee |
| Gas | You pay Igra gas in iKAS. The Kaskad relayer pays Robinhood Chain gas |
| Minimum | 1,000 KSKD per transfer |
| Capacity | 25,000,000 KSKD per one-day window, shared by all users |
| Typical delivery | About 15–20 minutes |
| Recipient | Your address. The app sends to the wallet you connect |
How It Works
Kskd Exit. exit (amount)- burns your KSKD
- adds it to
burned[you]
- reads
burned[you] - signs “you have burned N in total”
Kskd Entry. claim (…)- mints the total minus what was already minted
- to the same address
- Burn on Igra. The
KskdExitcontract burns your KSKD and adds the amount to a running total for your recipient address,burned[recipient]. - 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.
- 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
- 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.
- Connect the wallet you want to receive on. The recipient is always the connected wallet: tokens arrive at the same address on Robinhood Chain.
- If your wallet is on another network, press Switch to Igra mainnet.
- 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.
- Tick I understand this transfer is one-way. Changing the amount clears the tick.
- 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.
- Press Send to Robinhood and confirm the transfer.
- 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:
| Field | Value |
|---|---|
| Network | Robinhood Chain (4663) |
| Contract | 0x6ddb8541Af17DAdEA47dF41D1C13faf8Deee1902 |
| Symbol | KSKD |
| Decimals | 18 |
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.
| Message | Meaning | What to do |
|---|---|---|
| Waiting for the bridge to deliver your tokens | Your burn is recorded on Igra and is waiting for depth, the relayer, or window capacity | Wait. 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 pending | Less than 1,000 KSKD is pending, and the relayer does not deliver that | Send at least 1,000 KSKD more, or claim it yourself |
| Receiving capacity is below the automatic delivery minimum | The daily window is almost used up | Wait for the window to reset. The app shows the earliest reset time |
| The bridge is paused. Your pending transfer remains recorded | Minting on Robinhood Chain is paused | Wait. Pending amounts are delivered after minting resumes |
| Bridge verification is temporarily unavailable | Fewer enclave signers are registered than a claim needs | Wait. Burns stay recorded and are delivered once a signer is registered |
| New transfers are closed | KskdExit no longer accepts new burns | Nothing is lost: tokens burned before closing remain claimable |
| The source transaction reverted. No tokens were sent | The Igra transaction failed and nothing was burned | Try again |
| The bridge is temporarily unavailable. Refresh to check both networks | The app could not read one of the chains | Refresh. If it persists, an RPC endpoint is down |
| Under maintenance | The app's price-feed check failed. The whole app is paused, including the Bridge tab | Wait. 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.
KskdEntryadmits 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
KskdEntryon chain4663and 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.comContracts
| Contract | Network | Address |
|---|---|---|
| KSKD | Igra | 0x16d92794F5B81d2CdEd0F0958779A410401e6435 |
KskdExit | Igra | 0x5A818D42cA142483f72AE7D426E199324FEc4871 |
KskdEntry | Robinhood Chain | 0x7b1D080d2485E63791468d73418e2B262c25C402 |
KSKD (KskdBridged) | Robinhood Chain | 0x6ddb8541Af17DAdEA47dF41D1C13faf8Deee1902 |
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.

