Principles
Kyte is designed so that no person, including its operators, can take user funds, and so that users can always exit. These properties are enforced by the contracts themselves.
No admin access to funds
- No admin function can move user funds. No sweep, rescue or emergency-withdraw function exists.
- Collateral can only go to its seller or to the option holder.
- Calls and puts have separate escrows, so a fault in one cannot drain the other.
Immutability and governance
- Contracts are not upgradeable.
- Settings change only through a 48-hour timelock controlled by a 3-of-5 multisig, and only within hard-coded ceilings: premium fee never above 10%, exercise fee never above 1%, stakers' share never below 20%.
- Fees are snapshotted per position at creation; later changes never affect open positions.
Guardian and pause
A 2-of-3 guardian multisig can pause new offers and buys, or disable a token, immediately. It cannot unpause, enable anything, or touch funds. Unpausing requires the timelock.
Pause never blocks cancel, exercise or expire. Users can always exit.
Contract-level protections
- Reentrancy guard on every state-changing function; the final status is written before any transfer.
- Every incoming token transfer is verified by balance change; fee-on-transfer tokens are rejected.
- Option NFTs are minted without receiver callbacks; each market can only mint and burn its own id range.
- Payouts are made in WETH rather than native ETH, avoiding code execution on the recipient during payout.
- Status only moves forward; the exercise and expiry windows never overlap.
Code and testing
Contracts are written in open-source Solidity 0.8.28 using OpenZeppelin 5. 71 automated tests pass today, including unit tests, fuzz tests (fee conservation, exercise-or-expire boundaries, token decimals) and invariant tests (collateral ledgers, forward-only status, NFT exists only while filled).
Before mainnet
The following are planned and have not yet been completed:
- Two independent security audits.
- A public bug bounty.
- A testnet beta.
- A mainnet start with 3 tokens and low exposure caps.
Responsible disclosure
If you find a vulnerability, report it privately by email to [email protected], or by direct message to @useKyte on X. Please give us reasonable time to investigate and fix before any public disclosure, and do not exploit the issue beyond what is needed to demonstrate it.
This website is for information only. For product updates and launch announcements, follow Kyte on X.
