From dd67356aa313aeb036ebcc1bd1f565ed4bb21f5f Mon Sep 17 00:00:00 2001
From: "v.snigerev"
- The FHE layer uses a coprocessor-based system. Encrypted types (
+ The FHE layer is Fhenix CoFHE — a coprocessor that holds the secret
+ key off-chain and exposes precompiles to the EVM. Encrypted types (
+ Storage namespace today:
@@ -237,9 +246,10 @@ export default function Architecture() {
Public mode can deploy on any EVM chain; the current chaos-net
- deployment runs on Arbitrum L2. Cross-chain funding arrives over two
- rails — Circle CCTP V2 for USDC, and LayerZero OFT / USDT0 for USDT
- (available to non-U.S. and non-EU users) — both of which funnel into{" "}
+ deployment runs on Arbitrum L2. Cross-chain funding arrives over
+ Circle CCTP V2 for USDC today; the LayerZero OFT / USDT0 rail for USDT
+ (available to non-U.S. and non-EU users) is specified for v1.0. Both
+ funnel into{" "}
+ Each Solidity example below shows only{" "}
+
All contracts below are deployed on{" "}
-
+ Two postures coexist between testnet and mainnet:
+
- Every contract below is an immutable singleton{" "}
- deployed at a fixed address. There is no UUPS proxy, no{" "}
-
+ Plaintext state, no FHE dependency. This is the path that powers the
+ chaos-net mainnet launch on Arbitrum L2 and underpins the SDK's{" "}
+
+ Encrypted state using
+ Individual
+ Shared by both modes — operator registry, task execution, fee
+ collection, and CCTP relay.
+
+ Operator stake is denominated in cUSDC on chaos-net
+ (Whitepaper §8.1) — REINEIRA token issuance is conditional on the TGE
+ triggers in §12.11.
+
+ Cross-chain funding originates on one of the supported source chains
+ and is relayed to Arbitrum Sepolia (destination domain{" "}
+
+ These contracts are part of the v1.0 protocol specification but have no
+ canonical Arbitrum Sepolia deployment yet. Most are tracked toward
+ chaos-net Q4 2026 hardening or post-TGE.
+
- These are the two interfaces you implement to extend the protocol:
+ Two pluggable interfaces extend the protocol. Both require ERC-165 so
+ the registries can validate at registration time. The underwriter
+ policy has two variants — pick the one matching your deployment mode.
+ Implemented by Gate plugins.
+ Returned
- Both interfaces require ERC-165 support. Your contract must implement{" "}
-
diff --git a/src/pages/docs/CrossChain.tsx b/src/pages/docs/CrossChain.tsx
index 7d7f79b..1a29aca 100644
--- a/src/pages/docs/CrossChain.tsx
+++ b/src/pages/docs/CrossChain.tsx
@@ -72,7 +72,7 @@ export default function CrossChain() {
- Two transport rails ship at v1.0:
+ Two transport rails are designed into the system; only one is shipped
+ today:
+ The schedule above is the activated rate.{" "}
+
- Fees are deducted from the bridged amount before settlement. For a
- 10,000 USDC transfer, 50 USDC goes to the operator, 30 USDC to the
- protocol (FeeManager), and 9,920 USDC reaches the destination escrow.
+ Post-activation: fees are deducted from the bridged amount before
+ settlement. For a 10,000 USDC transfer, 35 USDC goes to the operator,
+ 15 USDC to the protocol (FeeManager), and 9,950 USDC reaches the
+ destination escrow.
- Conditional settlement infrastructure — encrypted Escrows, pluggable
- Gates, protocol-native Shields. Everything you need to make money
+ Conditional settlement infrastructure — confidential Escrows,
+ pluggable Gates, protocol-native Insurance, and an operator-secured
+ cross-chain settlement layer. Everything you need to make money
conditional and private.
- This checklist walks engineering teams through five phases of ReineiraOS
- adoption — from initial evaluation through production launch. Each phase
- builds on the previous one and includes concrete deliverables.
-
- While the phases are numbered sequentially, compliance and security
- reviews often run in parallel with integration work. Start Phase 4
- early to avoid blocking your launch timeline.
-
- Build a mental model of the protocol and assess fit for your use
- case.
-
- Build and connect your application to the ReineiraOS protocol.
-
- Validate correctness, security, and performance before going to
- production.
-
- Address regulatory and legal requirements for your jurisdiction.
-
- Deploy to production and establish operational readiness.
-
- FHE operations behave differently under load than standard EVM calls.
- Gas estimation, transaction ordering, and decryption latency can all
- surface issues that only appear at scale. Test thoroughly on testnet
- before committing to production.
-
- The following tools and standards are required or recommended for
- building on ReineiraOS:
-
- Current audit and review status for each protocol component:
-
- A comprehensive third-party audit is planned prior to production
- launch. Follow the{" "}
-
- Security
- {" "}
- page for updates.
-
- Available support channels and expected response times:
-
- Ready to start? Begin with Phase 1:
-
Deposit USDC into the Escrow via{" "}
euint64
@@ -141,9 +142,10 @@ export default function Architecture() {
) are stored as handles managed by the coprocessor. Client-side
encryption uses{" "}
- cofhejs
+ @cofhe/sdk
{" "}
- with input types (
+ (the v0.5 successor to the earlier cofhejs) with input
+ types (
InEuint64
@@ -180,8 +182,10 @@ export default function Architecture() {
content: " ebool isRedeemed; // encrypted redemption flag",
highlighted: true,
},
- { content: " bool exists; // cleartext existence flag" },
{ content: "}" },
+ { content: "" },
+ { content: "// Existence is derived from the next-id counter," },
+ { content: "// not a per-escrow plaintext flag — leaving zero plaintext on the struct." },
]}
/>
@@ -197,24 +201,29 @@ export default function Architecture() {
escrowId
- . Every protocol contract is deployed as an{" "}
- immutable singleton{" "}
- at a fixed address — there is no UUPS proxy, no{" "}
-
- _authorizeUpgrade
- {" "}
- hook, and no owner or admin upgrade key. Contracts still use ERC-7201
- namespaced storage with{" "}
+ . Contracts use ERC-7201 namespaced storage with{" "}
__gap[50]
-
- , but for layout compatibility across deployment versions rather than
- in-place upgrades. ERC-2771 meta-transaction support is provided via a
- base contract (
+ {" "}
+ reserves and inherit a shared base. On chaos-net testnet that base is{" "}
TestnetCoreBase
- ).
+ {" "}(Initializable + UUPS + Ownable + ReentrancyGuard + ERC-2771) so
+ we can iterate without breaking integrators. The v1.0 mainnet
+ deployment drops UUPS entirely: every protocol contract becomes an
+ immutable singleton — no{" "}
+
+ _authorizeUpgrade
+ {" "}
+ hook, no owner or admin upgrade key. ERC-2771 meta-transaction
+ support carries over.
+ privara.storage.* (legacy,
+ retained for cross-deployment-version compatibility per Whitepaper
+ §6.2). The reineira.storage.* prefix is canonical from
+ v1.0 mainnet onwards.
ConfidentialEscrow.fundFrom
@@ -263,7 +273,7 @@ export default function Architecture() {
- cofhejs.encrypt()
+ @cofhe/sdk
{" "}
- with the network's public FHE key.
+ (encryptInputs([...]).execute()) with the network's
+ public FHE key.
onConditionSet and isConditionMet for
+ clarity. A production resolver must also implement{" "}
+ getConditionFee(uint256 escrowId) view returns (uint16 bps, address recipient)
+ {" "}— the simplest stub is{" "}
+ {`{ return (0, address(0)); }`} when you don't charge a
+ resolver-author fee. The protocol calls it once at escrow creation
+ to stamp the Condition fee slot; the sum of all stamped fees is
+ bounded by MAX_TOTAL_BPS = 10000.
+
The fastest way to build a resolver is with{" "}
ReineiraOS Code
@@ -1090,7 +1120,7 @@ export default function ConditionPlugins() {
title: "ReineiraOS Code",
description:
"Generate production-ready resolvers with AI-assisted development",
- href: "/developers/reineira-code",
+ href: "/developer-tools/reineira-code",
icon: Code2,
},
]}
diff --git a/src/pages/docs/Contracts.tsx b/src/pages/docs/Contracts.tsx
index 6a91b62..7fdf2e5 100644
--- a/src/pages/docs/Contracts.tsx
+++ b/src/pages/docs/Contracts.tsx
@@ -10,25 +10,62 @@ import { getPrevNext } from "@/data/navigation";
import type { TocItem } from "@/components/layout/TableOfContents";
const toc: TocItem[] = [
- { id: "escrow", title: "Escrow", level: 2 },
- { id: "insurance", title: "Insurance", level: 2 },
+ { id: "deployment-posture", title: "Deployment posture", level: 2 },
+ { id: "plain-mode", title: "Plain mode (mainnet launch path)", level: 2 },
+ { id: "confidential-mode", title: "Confidential mode (FHE)", level: 2 },
{ id: "orchestration", title: "Orchestration", level: 2 },
{ id: "tokens", title: "Tokens", level: 2 },
{ id: "external-dependencies", title: "External dependencies", level: 2 },
{ id: "cctp-source-chains", title: "CCTP source chains", level: 2 },
+ { id: "not-yet-deployed", title: "Specified, not yet deployed", level: 2 },
{ id: "plugin-interfaces", title: "Plugin interfaces", level: 2 },
{ id: "iconditionresolver", title: "IConditionResolver", level: 3 },
{ id: "iunderwriterpolicy", title: "IUnderwriterPolicy", level: 3 },
+ {
+ id: "iconfidentialunderwriterpolicy",
+ title: "IConfidentialUnderwriterPolicy",
+ level: 3,
+ },
];
const { prev, next } = getPrevNext("/reference/contracts");
const contractColumns = [
- { header: "Contract", key: "name", width: "260px" },
+ { header: "Contract", key: "name", width: "280px" },
{ header: "Address", key: "address", mono: true },
];
-const escrowRows = [
+const plainEscrowRows = [
+ {
+ name: "Escrow",
+ address: "0xa125db70c1f17E395AfFa30b32e1e4A94aF3A81c",
+ },
+ {
+ name: "CCTPV2EscrowReceiver",
+ address: "0xD4cb6F1B679C3b16AE02aAdc66e172142EAAC5a2",
+ },
+];
+
+const plainInsuranceRows = [
+ {
+ name: "PolicyRegistry",
+ address: "0xAf23b86086FC6DC74796865be3B3a8bBAd68AB95",
+ },
+ {
+ name: "CoverageManager",
+ address: "0x3fcD1896745B2b91b4397e7E762910Fbf7eE9D22",
+ },
+ {
+ name: "PoolFactory",
+ address: "0xA2D78bfaB94B93106c8Da17E6967501D54DfE772",
+ },
+ {
+ name: "InsurancePool (implementation template)",
+ address: "0xCd05D0B8854ff030d874Ec346EbB883C40E63C33",
+ },
+];
+
+const confidentialEscrowRows = [
{
name: "ConfidentialEscrow",
address: "0xbe1eEB78504B71beEE1b33D3E3D367A2F9a549A6",
@@ -38,12 +75,12 @@ const escrowRows = [
address: "0x67AE0C5fE86716441B38b73A66F21c6aC8e338d0",
},
{
- name: "SimpleCondition",
+ name: "SimpleCondition (example plugin)",
address: "0xA0f6F26de1D3289425aA8A7fDDb769c61CD38e97",
},
];
-const insuranceRows = [
+const confidentialInsuranceRows = [
{
name: "ConfidentialPolicyRegistry",
address: "0x962A6c7Be4fC765B0E8B601ab4BB210938660190",
@@ -79,16 +116,16 @@ const tokenRows = [
name: "ConfidentialUSDC (cUSDC)",
address: "0x42E47f9bA89712C317f60A72C81A610A2b68c48a",
},
- { name: "USDC", address: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d" },
+ { name: "USDC (Arbitrum Sepolia)", address: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d" },
{
- name: "GovernanceToken",
+ name: "GovernanceToken (REINEIRA)",
address: "0xb847e041bB3bC78C3CD951286AbCa28593739D12",
},
];
const externalRows = [
{
- name: "CCTP MessageTransmitter",
+ name: "CCTP MessageTransmitter V2",
address: "0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275",
},
{
@@ -99,29 +136,81 @@ const externalRows = [
const cctpColumns = [
{ header: "Chain", key: "chain", width: "160px" },
- { header: "Domain", key: "domain", width: "140px" },
+ { header: "Chain ID", key: "chainId", width: "120px" },
+ { header: "Domain", key: "domain", width: "120px" },
{ header: "USDC Address", key: "usdc", mono: true },
- { header: "TokenMessenger", key: "messenger", mono: true },
+ { header: "TokenMessenger V2", key: "messenger", mono: true },
];
const cctpRows = [
{
chain: "Ethereum Sepolia",
+ chainId: "11155111",
domain: "0",
usdc: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
messenger: "0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",
},
{
chain: "Base Sepolia",
+ chainId: "84532",
domain: "6",
usdc: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
messenger: "0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",
},
{
chain: "Arbitrum Sepolia",
+ chainId: "421614",
domain: "3 (destination)",
usdc: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",
- messenger: "\u2014",
+ messenger: "—",
+ },
+];
+
+const notYetDeployedColumns = [
+ { header: "Contract", key: "name", width: "260px" },
+ { header: "Source / status", key: "status" },
+];
+
+const notYetDeployedRows = [
+ {
+ name: "StrategyRouter",
+ status:
+ "packages/insurance — pool liquidity routing; landed on main, no testnet deployment yet",
+ },
+ {
+ name: "OperatorSlashingManager",
+ status:
+ "packages/orchestration — four-stage slashing pipeline (3-day challenge / 4-day vote / 14-day expiry); contract present, not separately deployed (current slashing surface lives inside OperatorRegistry)",
+ },
+ {
+ name: "OperatorSubsidyManager",
+ status:
+ "Whitepaper §8.9 — chaos-net per-task subsidy paid in cUSDC; contract not in repo yet",
+ },
+ {
+ name: "CoordinatorRegistry",
+ status:
+ "Whitepaper §8.10 — on-chain coordinator registration & cross-graph slashing; v1.0-track",
+ },
+ {
+ name: "QuorumRegistry, RiskScoreAttestor",
+ status:
+ "Whitepaper §7.8, §8.10 — agentic/risk-attestation registries; deferred past v1.0 RSS",
+ },
+ {
+ name: "ConfidentialUSDT (cUSDT)",
+ status:
+ "Whitepaper §9.1, §9.6 — USDT0 wrapper via LayerZero OFT; tracked for v1.0, non-U.S./non-EU only",
+ },
+ {
+ name: "LZOFTHandler / LZOFTEscrowReceiver / LZOFTForwarder",
+ status:
+ "Whitepaper §9.2 — LayerZero OFT handler family for USDT0; tracked for v1.0",
+ },
+ {
+ name: "ParticipationBond",
+ status:
+ "Whitepaper §11.6 — $1M cUSDC bond; deployed empty pre-TGE as immutable commitment shell, funded conditionally on TGE",
},
];
@@ -132,59 +221,119 @@ export default function Contracts() {
+ : the proposer posts a 5% bond and submits an evidence hash; a 3-day{" "}
+ sdk.escrow / sdk.escrowPlain etc.).
+ Deployment posture
+
+
+
+
+
+ TestnetCoreBase (Initializable + UUPS +
+ Ownable + ReentrancyGuard + ERC-2771). This lets us iterate during
+ the chaos-net runway without breaking integrators on every patch.
+ _authorizeUpgrade{" "}
+ hook, no owner or admin upgrade key. Bug fixes ship as new contract
+ deployments at new addresses — users opt in by migration. ERC-7201
+ namespaced storage with __gap[50] reserves protects
+ storage layout across deployment versions.
+
- _authorizeUpgrade
- {" "}
- hook, and no owner or admin upgrade key — these addresses cannot be
- upgraded in place. Functional changes ship as new contract deployments
- at new addresses that you opt into by migration. The tables on this
- page form the canonical-deployment registry: a documentation surface,
- not an on-chain contract, listing the v1.0 addresses across host
- chains. You may interact with any other bytecode deployment. ERC-7201
- namespaced storage with{" "}
-
- __gap[50]
- {" "}
- is kept for layout compatibility across deployment versions, not for
- in-place upgrades.
+ The tables on this page are the documentation surface of the
+ canonical-deployment registry — not an on-chain contract. They list
+ the addresses ReineiraOS treats as canonical on each host. Other
+ bytecode-equivalent deployments may exist; you may interact with any
+ of them, but Foundation services (relayer, coordinator, app
+ frontend) connect only to the canonical set.
- Escrow
+ Plain mode (mainnet launch path)
- escrowPlain / insurancePlain modules.
+
+ Escrow
+
+
+ Insurance
+
+
- Insurance
+ Confidential mode (FHE)
- euint64, eaddress, and{" "}
+ ebool via Fhenix CoFHE precompiles. This is a separate
+ immutable deployment; mainnet activation is gated on Fhenix CoFHE
+ readiness (target Q4 2026 hardening lock). The silent-failure pattern
+ (Whitepaper §4.5, Proposition 4.3) applies to all confidential
+ contracts.
+
+ Escrow
+
+
+ Insurance
+
+ ConfidentialInsurancePool instances are
+ deployed lazily by ConfidentialPoolFactory.createPool() as{" "}
+ ERC1967Proxy clones — they do not have a single canonical
+ address.
+
+
+
3) via Circle CCTP V2.
+
+ Specified, not yet deployed
+
+
+
+
onConditionSet fires at
+ escrow creation; getConditionFee is read once at stamp
+ time; isConditionMet is called at redemption.
+ bps is bounded by{" "}
+ MAX_TOTAL_BPS = 10000 via the fee-sum invariant in{" "}
+ Escrow._stampFee. There is no per-fee on-chain cap; UI is
+ expected to sanity-check.
+
- IUnderwriterPolicy
+ IUnderwriterPolicy
+ IConfidentialUnderwriterPolicy{" "}
+
+
+
- supportsInterface(bytes4)
- {" "}
- and return{" "}
-
- true
- {" "}
- for the relevant interface ID.
+ All three interfaces extend IERC165. Your contract must
+ implement supportsInterface(bytes4) and return{" "}
+ true for the relevant interface ID, otherwise the
+ escrow / policy registry will reject it.
+ CHALLENGE_PERIOD
+ {" "}
+ opens; if challenged within the window, a stake-weighted vote runs for{" "}
+
+ VOTING_PERIOD
+ {" "}
+ of 4 days; unchallenged proposals execute after the challenge window
+ and the proposer recovers their bond plus a 10% slasher reward; the
+ proposal expires past{" "}
+
+ EXPIRY_PERIOD
+ {" "}
+ (14 days) and both bonds return. The vote quorum is{" "}
+
+ QUORUM_BPS = 1000
+ {" "}
+ (10% of total active stake) — the safety argument is the four-stage
+ moat (evidence hash + asymmetric bond + slow pipeline + owner
+ backstop), not the quorum threshold itself (Whitepaper §8.6).
@@ -94,15 +95,22 @@ export default function CrossChain() {
Circle CCTP V2
{" "}
for USDC — native burn-mint with attestation via the Circle Iris
- network. No wrapped tokens.
+ network. No wrapped tokens.{" "}
+
@@ -256,10 +264,29 @@ export default function CrossChain() {
LZOFTHandler, LZOFTEscrowReceiver,{" "}
+ LZOFTForwarder) is specified in Whitepaper §9.2; the{" "}
+ ConfidentialUSDT wrapper is also tracked for v1.0.
+ Non-U.S./non-EU-only on launch.{" "}
+
+ FeeManager
+ {" "}
+ is pinned to zero in bytecode while{" "}
+
+ block.number < MAINNET_ACTIVATION_BLOCK
+ {" "}
+ — collectFee() returns 0 for every relay until
+ activation (Whitepaper §8.8). During chaos-net, operators receive
+ per-task cUSDC subsidies from the Foundation-funded{" "}
+ OperatorSubsidyManager instead of bridged-amount
+ deductions.
+ OS Documentation
- Overview
-
-
-
- Adoption phases
-
-
-
-
-
- IConditionResolver
- {" "}
- pattern that fits your release conditions
-
-
-
- IConditionResolver
- {" "}
- implementation
-
-
-
-
-
-
-
- Technical requirements
-
-
-
- Security audit status
-
-
-
- Support & SLA
-
-
-
- Next steps
-
-
-
- fund(escrowId, amount)
+ fund(escrowId, encryptedPayment)
{" "}
- or{" "}
+ — the SDK encrypts the payment amount client-side as{" "}
- fundFrom(escrowId, amount, payer)
-
- . The contract wraps the USDC into ConfidentialUSDC and updates the
- encrypted{" "}
+ InEuint64
+ {" "}
+ before submission. Cross-chain receivers call{" "}
+
+ fundFrom(escrowId, euint64 amount)
+ {" "}
+ with a pre-existing encrypted-amount handle that the CCTP receiver
+ derives from the attested mint delta. The contract wraps USDC into
+ ConfidentialUSDC and updates the encrypted{" "}
paidAmount
@@ -312,6 +329,17 @@ export default function EscrowLifecycle() {
{" "}
flag)
+
+ paidAmount
+ {" "}
+ is at least the target{" "}
+
+ amount
+ {" "}
+ (homomorphic ≥)
+
@@ -335,7 +363,13 @@ export default function EscrowLifecycle() {
redeemMultiple(escrowIds)
{" "}
- to settle multiple Escrows in a single transaction.
+ to settle up to{" "}
+
+ MAX_BATCH_SIZE = 20
+ {" "}
+ Escrows in a single transaction. Per-id failures are silent: an
+ ineligible Escrow contributes zero to the accumulated transfer instead
+ of reverting the batch.
All numbers below are testnet estimates measured on Arbitrum Sepolia - with FHE coprocessor devnet. Mainnet costs will vary with network - congestion, L1 calldata pricing, and CoFHE operator fees. + with the FHE coprocessor devnet and apply to the{" "} + confidential-mode contracts. Mainnet costs will + vary with network congestion, L1 calldata pricing, and CoFHE + operator fees. +
++ Plain mode (the chaos-net launch path) uses no FHE + operations; expect roughly 40–60% of the gas figures below, because + the encryption / decryption / select calls drop out entirely. + Lifecycle, events, and ABI surface are the same.
- ReineiraOS launches as Public Infrastructure. Every contract is an{" "} - immutable singleton with no upgrade authority; protocol - fees are pinned at zero through chaos-net by a block-locked activation - constant; operators bond cUSDC, not a token; and a{" "} - REINEIRA token does not exist yet — any issuance is - conditional on the token-launch trigger conditions. Reineira Labs - Limited (RAK DAO Free Zone, UAE) deploys the contracts as a{" "} - Software Vendor, not as an operator of the protocol. -
- -- Because the contracts are immutable, there is no upgrade to govern. No - entity — DevCo, HoldCo, Foundation, or any future DAO — holds upgrade - authority. New functionality ships as{" "} - new contract deployments at new addresses that you - opt into. -
-
- Governance is split across three entities. The full stack is reached at
- Phase 2.{" "}
-
--- Every contract is an immutable singleton at a fixed address. No entity - holds upgrade authority. There is no UUPS proxy, no{" "} -
-_authorizeUpgradehook, no Owner - role with upgrade privileges, and no admin key on any escrow, coverage - manager, operator registry, fee manager, or token wrapper. Storage and - logic are both frozen at deployment. -
- Contracts still use ERC-7201 namespaced storage and carry a{" "}
-
- __gap[50]
- {" "}
- reserve — not for in-place upgrades (there are none) but so a future
- immutable redeployment can share storage conventions.
-
- Five authorities partition the protocol's privileged surface. None can - upgrade a contract, withdraw escrowed funds, modify escrow terms, - force-resolve a gate, or decrypt FHE state without explicit permission. -
-
- Under the Participation Policy, the Foundation commits to{" "}
- not act as operator, pool creator, pool manager, or
- curator on any role-collapsed venue. The commitment is collateralised by
- a $1M-equivalent ParticipationBond denominated in cUSDC
- , deployed empty at chaos-net and funded from Phase 2 capital if and
- when SAFT/QF rounds execute. Any Foundation key that participates on a
- role-collapsed venue forfeits the bond; quarterly{" "}
-
- NonParticipationAttestation
- {" "}
- events build an immutable record.
-
-
- If a TGE occurs, the DAO governs grant/treasury and Participation-Policy - parameters — never contract upgrades, which do not exist. -
- -- Reineira Labs Limited authors and deploys the immutable contracts, - publishes RSS, and coordinates audits. IP held under BUSL-1.1. - Capital via the BVI HoldCo Convertible Note (Reg S). No token, no - SAFT, no DAO. -
-- The Cayman Foundation becomes operational; IP transfers from DevCo - to Foundation via the CLA assignment chain; DevCo continues as - Software Vendor under a maintenance contract. Token issuance is{" "} - not a Phase 2 milestone. -
-- Only if the four triggers are satisfied, a TGE issues the REINEIRA - token, the DAO activates, and Participation Policy v1.1 is deployed - immutable. The protocol operates fully without ever reaching this - phase. -
-- Because contracts are immutable and non-custodial, you do not need to - trust any entity to use the protocol safely: no admin can steal funds, - change escrow terms, bypass a gate, or decrypt your state. The entity - stack governs grants, audits, and the standard — not your money. -
-
+ The four-role separation (Creator / Manager / Guardian / Underwriter)
+ from Whitepaper §7.2 maps onto these parameters. isOpen: false{" "}
+ gates buyers behind a manager-signed CoverageInvite{" "}
+ (EIP-712) — useful for closed cohorts and pilot underwriting.
+
+ The encrypted-mode interface — used by the example below: +
++ The plain-mode interface, used by the mainnet launch path, swaps the + FHE types for primitives but keeps the same shape: +
+ +- Anyone can create an Insurance pool, attach policies, provide liquidity, - and earn premiums. This is the open economy layer of ReineiraOS — the - best underwriters build the best pools and earn the most. + Anyone can create an Insurance pool (with an allowlisted payment + token), attach policies, provide liquidity, and earn premiums. This is + the open economy layer of ReineiraOS — the best underwriters build + the best pools and earn the most.
+
+ Every pool has four roles:{" "}
+ Pool Creator (deploys via factory, owns immutable
+ creator royalty),{" "}
+ Pool Manager (parameter custody, policy admission;
+ transferable to DAO/multisig),{" "}
+ Guardian (safety veto and emergency-deallocate
+ only, no earnings), and Operator (executes
+ pool-routing tasks under the orchestration layer). Creator and
+ Manager can be the same address at deploy time — pass{" "}
+ initialManager and guardian to{" "}
+ createPool to set them explicitly.
+
- All financial values in the insurance system are FHE-encrypted:
+ In confidential (FHE) mode, per-buyer financial values are encrypted{" "}
+
+ euint64
+ {" "}
+ and never leak through events (per-buyer premium and payout are
+ emitted as 0). Plain mode ships the same lifecycle without
+ encryption.
+
+ Confidential in encrypted mode: +
+ ++ Public on both modes:
- On-chain events emit only indexed IDs. No amounts, no addresses, no - policy details are visible to chain observers. + The Premium/Loss-Ratio Disclosure Bound formalises this split. In + encrypted mode, per-buyer financial values cannot be reconstructed + from chain state under TFHE IND-CPA security — but policy/pool + identities and lifecycle existence remain observable so integrators + can find your pool.
- The SDK exposes four modules accessible as properties:
+ The SDK exposes six modules accessible as properties. escrow{" "}
+ and insurance hit the confidential (FHE) deployment;{" "}
+ escrowPlain and insurancePlain hit the
+ mainnet-launch plaintext deployment.
+ Modules return instance objects (EscrowInstance,{" "}
+ PoolInstance, CoverageInstance, and their
+ plain variants) representing a single on-chain artifact —{" "}
+ escrow.fund(), pool.stake(),{" "}
+ coverage.dispute() etc. all live on the returned
+ instances. See the individual module pages for the full method
+ surface.
+
+ The fee schedule above is the activated rate.
+ During chaos-net,{" "}
+
+ FeeManager
+ {" "}
+ is pinned to zero in bytecode:{" "}
+
+ collectFee()
+ {" "}
+ returns 0 for every task until{" "}
+
+ block.number ≥ MAINNET_ACTIVATION_BLOCK
+ {" "}
+ (Whitepaper §8.8). Operator income during chaos-net comes from the
+ Foundation-funded{" "}
+
+ OperatorSubsidyManager
+ {" "}
+ (per-task cUSDC payments, capacity-bounded). Rates can be staged into
+ storage during chaos-net, but they do not apply until the activation
+ block.
+
- Fees are deducted from the bridged amount before settlement. For a - 10,000 USDC transfer, 50 USDC goes to the operator, 30 USDC to the - protocol, and 9,920 USDC reaches the destination escrow. + Post-activation: fees are deducted from the bridged amount before + settlement. For a 10,000 USDC transfer, 35 USDC goes to the operator, + 15 USDC to the protocol, and 9,950 USDC reaches the destination + escrow.
{/* Monitoring */} diff --git a/src/pages/docs/Security.tsx b/src/pages/docs/Security.tsx index 08577a6..b9aad43 100644 --- a/src/pages/docs/Security.tsx +++ b/src/pages/docs/Security.tsx @@ -102,10 +102,10 @@ const contractSecurityColumns = [ ]; const contractSecurityRows = [ { - mechanism: "Proxy pattern", + mechanism: "Proxy pattern (testnet only)", standard: "UUPS", purpose: - "Upgradeable contracts with minimal proxy overhead. Upgrade logic lives in the implementation, not the proxy.", + "UUPS upgradeable on chaos-net testnet via TestnetCoreBase. Removed at v1.0 mainnet: every contract becomes an immutable singleton, no _authorizeUpgrade hook, no upgrade authority (Whitepaper §11.8).", }, { mechanism: "Namespaced storage", @@ -129,7 +129,7 @@ const contractSecurityRows = [ mechanism: "Access control", standard: "Ownable", purpose: - "Single-owner admin pattern for testnet. Multi-sig and timelock planned for future releases.", + "Single-owner admin pattern on chaos-net for parameter custody and emergency response. Deploy posture is a Safe multisig behind a TimelockController (Whitepaper §10.6). Upgrade authority is eliminated entirely at v1.0 mainnet.", }, { mechanism: "Initializer", @@ -146,34 +146,40 @@ const limitationColumns = [ ]; const limitationRows = [ { - limitation: "Single coordinator", + limitation: "Single canonical coordinator in production", impact: - "Single point of failure for relay task distribution. If the coordinator goes down, cross-chain settlement stalls.", - plan: "Redundant coordinator instances with failover.", + "Only the Foundation-operated coordinator runs in chaos-net. If it stalls, the canonical relay queue backs up. Third parties may already run independent coordinators against the same OperatorRegistry / TaskExecutor contracts.", + plan: "On-chain CoordinatorRegistry + cross-graph slashing (votes spanning ≥3 independent coordinator–operator graphs) on the v1.0 track.", }, { limitation: "In-memory operator state", impact: - "Operator relay state is lost on restart. Pending messages may need manual resubmission.", + "Operator relay job state is held in-memory; on restart, pending jobs may need manual resubmission via the operator CLI.", plan: "Persistent state store with automatic recovery.", }, { - limitation: "Single-quorum slashing only", + limitation: "Cross-graph slashing not yet shipped", impact: - "OperatorSlashingManager enforces a single stake-weighted quorum across the active set. Cross-graph slashing (votes spanning ≥3 independent coordinator–operator graphs) is spec'd but not yet shipped.", - plan: "CoordinatorRegistry with cross-graph slashing on the v1.0 track.", + "The four-stage pipeline (5% bond → 3-day challenge → 4-day vote → 14-day expiry, QUORUM_BPS = 1000) is shipped. Whitepaper §8.6 argues the four-stage moat — not the quorum threshold — is the load-bearing safety property; the 10% quorum is intentional, not a transitional limitation.", + plan: "Cross-graph slashing (multi-graph attestation) is tracked for the v1.0 hardening lock; not a blocker for chaos-net.", }, { - limitation: "Testnet FHE", + limitation: "Testnet UUPS proxy posture", impact: - "FHE coprocessor is testnet-grade. Encryption is functional but security parameters may change before production.", - plan: "Production FHE parameters audited by cryptography team.", + "Testnet contracts inherit TestnetCoreBase (Initializable + UUPS + Ownable + ReentrancyGuard + ERC-2771) so we can iterate. The owner can still upgrade contracts; trust is not yet structurally eliminated.", + plan: "v1.0 mainnet contracts drop UUPS entirely and ship as immutable singletons (Whitepaper §11.8). Upgrade authority is removed at the bytecode level.", }, { - limitation: "No timelock", + limitation: "CoFHE substrate trust (encrypted mode)", impact: - "Admin upgrades are immediate with no delay. No governance review period.", - plan: "Timelock on admin actions with emergency multisig override.", + "FHE coprocessor is a single-substrate trust counterparty: liveness, key management, and attestation rest on its operator quorum, not on the host chain's validator set. Confidentiality is conditional on TFHE IND-CPA security (TA1) and CoFHE correctness (TA2).", + plan: "Threshold-FHE, MPC distribution, or hardware attestation — tracked as Open Problem 4.1 in the whitepaper, decision target pre-mainnet.", + }, + { + limitation: "No external audit at chaos-net launch", + impact: + "Phase 7 internal review remediated ~85 findings including 8 mainnet blockers; Slither / Aderyn baselines dated 2026-05-04. Use of chaos-net during Jun 2026 → Q4 2026 is at the user's own risk (Whitepaper §10.6).", + plan: "External audit committed for v1.0 hardening (Q4 2026 mainnet); auditor selection gated on Standard-tier budget.", }, ]; diff --git a/src/pages/docs/Status.tsx b/src/pages/docs/Status.tsx index b1ce8e4..8de8bd7 100644 --- a/src/pages/docs/Status.tsx +++ b/src/pages/docs/Status.tsx @@ -89,7 +89,7 @@ const componentRows = [ component: "OperatorSlashingManager", status:
+ Implementation note: chaos-net deployments retain the legacy{" "}
+
+ privara.storage.*
+ {" "}
+ slot prefix for cross-deployment-version compatibility (Whitepaper
+ §6.2). The{" "}
+
+ reineira.storage.*
+ {" "}
+ prefix is canonical from v1.0 mainnet onwards; the migration is a new
+ immutable deployment, not an in-place rename.
+
RSS does not mandate upgradeability — conforming
implementations may be upgradeable, immutable, or hybrid (the v1.0
From 2c4c97f4f4a58e7921b9774b348e56f71834a9e8 Mon Sep 17 00:00:00 2001
From: "v.snigerev"
- The FHE layer is Fhenix CoFHE — a coprocessor that holds the secret
- key off-chain and exposes precompiles to the EVM. Encrypted types (
+ The FHE layer is Fhenix CoFHE — a coprocessor that holds the secret key
+ off-chain and exposes precompiles to the EVM. Encrypted types (
Storage namespace today:
@@ -246,8 +249,8 @@ export default function Architecture() {
Public mode can deploy on any EVM chain; the current chaos-net
- deployment runs on Arbitrum L2. Cross-chain funding arrives over
- Circle CCTP V2 for USDC today; the LayerZero OFT / USDT0 rail for USDT
+ deployment runs on Arbitrum L2. Cross-chain funding arrives over Circle
+ CCTP V2 for USDC today; the LayerZero OFT / USDT0 rail for USDT
(available to non-U.S. and non-EU users) is specified for v1.0. Both
funnel into{" "}
- Each Solidity example below shows only{" "}
-
euint64
@@ -185,7 +185,10 @@ export default function Architecture() {
{ content: "}" },
{ content: "" },
{ content: "// Existence is derived from the next-id counter," },
- { content: "// not a per-escrow plaintext flag — leaving zero plaintext on the struct." },
+ {
+ content:
+ "// not a per-escrow plaintext flag — leaving zero plaintext on the struct.",
+ },
]}
/>
@@ -208,22 +211,22 @@ export default function Architecture() {
reserves and inherit a shared base. On chaos-net testnet that base is{" "}
TestnetCoreBase
-
- {" "}(Initializable + UUPS + Ownable + ReentrancyGuard + ERC-2771) so
- we can iterate without breaking integrators. The v1.0 mainnet
- deployment drops UUPS entirely: every protocol contract becomes an
- immutable singleton — no{" "}
+ {" "}
+ (Initializable + UUPS + Ownable + ReentrancyGuard + ERC-2771) so we can
+ iterate without breaking integrators. The v1.0 mainnet deployment drops
+ UUPS entirely: every protocol contract becomes an immutable singleton —
+ no{" "}
_authorizeUpgrade
{" "}
- hook, no owner or admin upgrade key. ERC-2771 meta-transaction
- support carries over.
+ hook, no owner or admin upgrade key. ERC-2771 meta-transaction support
+ carries over.
privara.storage.* (legacy,
retained for cross-deployment-version compatibility per Whitepaper
- §6.2). The reineira.storage.* prefix is canonical from
- v1.0 mainnet onwards.
+ §6.2). The reineira.storage.* prefix is canonical from v1.0
+ mainnet onwards.
diff --git a/src/pages/docs/ConditionPlugins.tsx b/src/pages/docs/ConditionPlugins.tsx
index 6b60da3..a9193a5 100644
--- a/src/pages/docs/ConditionPlugins.tsx
+++ b/src/pages/docs/ConditionPlugins.tsx
@@ -47,7 +47,8 @@ const interfaceRows = [
fn: "getConditionFee",
calledBy: "ConfidentialEscrow._setCondition()",
when: "Stamp time (in create)",
- purpose: "Declare the resolver-author fee in bps (0–10000) and recipient. Return (0, address(0)) for no fee.",
+ purpose:
+ "Declare the resolver-author fee in bps (0–10000) and recipient. Return (0, address(0)) for no fee.",
},
{
fn: "isConditionMet",
@@ -108,8 +109,7 @@ export default function ConditionPlugins() {
highlighted: true,
},
{
- content:
- " function getConditionFee(uint256 escrowId)",
+ content: " function getConditionFee(uint256 escrowId)",
highlighted: true,
},
{
@@ -126,15 +126,17 @@ export default function ConditionPlugins() {
onConditionSet and isConditionMet for
- clarity. A production resolver must also implement{" "}
- getConditionFee(uint256 escrowId) view returns (uint16 bps, address recipient)
- {" "}— the simplest stub is{" "}
- {`{ return (0, address(0)); }`} when you don't charge a
- resolver-author fee. The protocol calls it once at escrow creation
- to stamp the Condition fee slot; the sum of all stamped fees is
- bounded by MAX_TOTAL_BPS = 10000.
+ Each Solidity example below shows only onConditionSet and{" "}
+ isConditionMet for clarity. A production resolver must
+ also implement{" "}
+
+ getConditionFee(uint256 escrowId) view returns (uint16 bps, address
+ recipient)
+ {" "}
+ — the simplest stub is {`{ return (0, address(0)); }`}{" "}
+ when you don't charge a resolver-author fee. The protocol calls it
+ once at escrow creation to stamp the Condition fee slot; the sum of
+ all stamped fees is bounded by MAX_TOTAL_BPS = 10000.
sdk.escrow / sdk.escrowPlain etc.).
+ availability) are listed; the SDK exposes them as separate modules (
+ sdk.escrow / sdk.escrowPlain etc.).
TestnetCoreBase (Initializable + UUPS +
- Ownable + ReentrancyGuard + ERC-2771). This lets us iterate during
- the chaos-net runway without breaking integrators on every patch.
+ Ownable + ReentrancyGuard + ERC-2771). This lets us iterate during the
+ chaos-net runway without breaking integrators on every patch.
- Individual ConfidentialInsurancePool instances are
- deployed lazily by ConfidentialPoolFactory.createPool() as{" "}
+ Individual ConfidentialInsurancePool instances are deployed
+ lazily by ConfidentialPoolFactory.createPool() as{" "}
ERC1967Proxy clones — they do not have a single canonical
address.
- Cross-chain funding originates on one of the supported source chains
- and is relayed to Arbitrum Sepolia (destination domain{" "}
- 3) via Circle CCTP V2.
+ Cross-chain funding originates on one of the supported source chains and
+ is relayed to Arbitrum Sepolia (destination domain 3) via
+ Circle CCTP V2.
Two pluggable interfaces extend the protocol. Both require ERC-165 so - the registries can validate at registration time. The underwriter - policy has two variants — pick the one matching your deployment mode. + the registries can validate at registration time. The underwriter policy + has two variants — pick the one matching your deployment mode.
- Implemented by Gate plugins. onConditionSet fires at
- escrow creation; getConditionFee is read once at stamp
- time; isConditionMet is called at redemption.
+ Implemented by Gate plugins. onConditionSet fires at escrow
+ creation; getConditionFee is read once at stamp time;{" "}
+ isConditionMet is called at redemption.
IERC165. Your contract must
implement supportsInterface(bytes4) and return{" "}
- true for the relevant interface ID, otherwise the
- escrow / policy registry will reject it.
+ true for the relevant interface ID, otherwise the escrow
+ / policy registry will reject it.
diff --git a/src/pages/docs/CoordinatorNetwork.tsx b/src/pages/docs/CoordinatorNetwork.tsx
index c5dfd9c..4c3dcc1 100644
--- a/src/pages/docs/CoordinatorNetwork.tsx
+++ b/src/pages/docs/CoordinatorNetwork.tsx
@@ -393,9 +393,9 @@ export default function CoordinatorNetwork() {
VOTING_PERIOD
{" "}
- of 4 days; unchallenged proposals execute after the challenge window
- and the proposer recovers their bond plus a 10% slasher reward; the
- proposal expires past{" "}
+ of 4 days; unchallenged proposals execute after the challenge window and
+ the proposer recovers their bond plus a 10% slasher reward; the proposal
+ expires past{" "}
EXPIRY_PERIOD
{" "}
@@ -403,9 +403,9 @@ export default function CoordinatorNetwork() {
QUORUM_BPS = 1000
{" "}
- (10% of total active stake) — the safety argument is the four-stage
- moat (evidence hash + asymmetric bond + slow pipeline + owner
- backstop), not the quorum threshold itself (Whitepaper §8.6).
+ (10% of total active stake) — the safety argument is the four-stage moat
+ (evidence hash + asymmetric bond + slow pipeline + owner backstop), not
+ the quorum threshold itself (Whitepaper §8.6).
diff --git a/src/pages/docs/CrossChain.tsx b/src/pages/docs/CrossChain.tsx
index 1a29aca..2c1cc8e 100644
--- a/src/pages/docs/CrossChain.tsx
+++ b/src/pages/docs/CrossChain.tsx
@@ -104,11 +104,10 @@ export default function CrossChain() {
LayerZero OFT / USDT0
{" "}
- for USDT — handler family{" "}
- (
The schedule above is the activated rate.{" "}
Post-activation: fees are deducted from the bridged amount before
- settlement. For a 10,000 USDC transfer, 35 USDC goes to the operator,
- 15 USDC to the protocol (FeeManager), and 9,950 USDC reaches the
+ settlement. For a 10,000 USDC transfer, 35 USDC goes to the operator, 15
+ USDC to the protocol (FeeManager), and 9,950 USDC reaches the
destination escrow.
LZOFTHandler, LZOFTEscrowReceiver,{" "}
- LZOFTForwarder) is specified in Whitepaper §9.2; the{" "}
- ConfidentialUSDT wrapper is also tracked for v1.0.
- Non-U.S./non-EU-only on launch.{" "}
+ for USDT — handler family (LZOFTHandler,{" "}
+ LZOFTEscrowReceiver, LZOFTForwarder) is
+ specified in Whitepaper §9.2; the ConfidentialUSDT{" "}
+ wrapper is also tracked for v1.0. Non-U.S./non-EU-only on launch.{" "}
@@ -274,9 +276,9 @@ export default function CrossChain() {
block.number < MAINNET_ACTIVATION_BLOCK
{" "}
- — collectFee() returns 0 for every relay until
- activation (Whitepaper §8.8). During chaos-net, operators receive
- per-task cUSDC subsidies from the Foundation-funded{" "}
+ — collectFee() returns 0 for every relay until activation
+ (Whitepaper §8.8). During chaos-net, operators receive per-task cUSDC
+ subsidies from the Foundation-funded{" "}
OperatorSubsidyManager instead of bridged-amount
deductions.
All numbers below are testnet estimates measured on Arbitrum Sepolia with the FHE coprocessor devnet and apply to the{" "} - confidential-mode contracts. Mainnet costs will - vary with network congestion, L1 calldata pricing, and CoFHE - operator fees. + confidential-mode contracts. Mainnet costs will vary + with network congestion, L1 calldata pricing, and CoFHE operator fees.
Plain mode (the chaos-net launch path) uses no FHE diff --git a/src/pages/docs/InsuranceModule.tsx b/src/pages/docs/InsuranceModule.tsx index 3310115..a9bf668 100644 --- a/src/pages/docs/InsuranceModule.tsx +++ b/src/pages/docs/InsuranceModule.tsx @@ -167,9 +167,18 @@ export default function InsuranceModule() { content: " paymentToken: sdk.addresses.confidentialUSDC,", highlighted: true, }, - { content: " initialManager: '0xManager...', // optional, defaults to caller (Creator)" }, - { content: " guardian: '0xGuardian...', // optional, zero address allowed" }, - { content: " isOpen: true, // false = private (EIP-712 voucher-gated)" }, + { + content: + " initialManager: '0xManager...', // optional, defaults to caller (Creator)", + }, + { + content: + " guardian: '0xGuardian...', // optional, zero address allowed", + }, + { + content: + " isOpen: true, // false = private (EIP-712 voucher-gated)", + }, { content: "})" }, { content: "// pool.id, pool.address, pool.createTx.hash" }, ]} @@ -177,9 +186,10 @@ export default function InsuranceModule() {
The four-role separation (Creator / Manager / Guardian / Underwriter)
- from Whitepaper §7.2 maps onto these parameters. isOpen: false{" "}
- gates buyers behind a manager-signed CoverageInvite{" "}
- (EIP-712) — useful for closed cohorts and pilot underwriting.
+ from Whitepaper §7.2 maps onto these parameters.{" "}
+ isOpen: false gates buyers behind a manager-signed{" "}
+ CoverageInvite (EIP-712) — useful for closed cohorts and
+ pilot underwriting.
- The plain-mode interface, used by the mainnet launch path, swaps the - FHE types for primitives but keeps the same shape: + The plain-mode interface, used by the mainnet launch path, swaps the FHE + types for primitives but keeps the same shape:
- Anyone can create an Insurance pool (with an allowlisted payment - token), attach policies, provide liquidity, and earn premiums. This is - the open economy layer of ReineiraOS — the best underwriters build - the best pools and earn the most. + Anyone can create an Insurance pool (with an allowlisted payment token), + attach policies, provide liquidity, and earn premiums. This is the open + economy layer of ReineiraOS — the best underwriters build the best pools + and earn the most.
- Every pool has four roles:{" "}
- Pool Creator (deploys via factory, owns immutable
- creator royalty),{" "}
+ Every pool has four roles: Pool Creator (deploys via
+ factory, owns immutable creator royalty),{" "}
Pool Manager (parameter custody, policy admission;
- transferable to DAO/multisig),{" "}
- Guardian (safety veto and emergency-deallocate
- only, no earnings), and Operator (executes
- pool-routing tasks under the orchestration layer). Creator and
- Manager can be the same address at deploy time — pass{" "}
- initialManager and guardian to{" "}
- createPool to set them explicitly.
+ transferable to DAO/multisig), Guardian (safety veto
+ and emergency-deallocate only, no earnings), and{" "}
+ Operator (executes pool-routing tasks under the
+ orchestration layer). Creator and Manager can be the same address at
+ deploy time — pass initialManager and{" "}
+ guardian to createPool to set them
+ explicitly.
euint64
{" "}
- and never leak through events (per-buyer premium and payout are
- emitted as 0). Plain mode ships the same lifecycle without
- encryption.
+ and never leak through events (per-buyer premium and payout are emitted
+ as 0). Plain mode ships the same lifecycle without encryption.
diff --git a/src/pages/docs/MentalModel.tsx b/src/pages/docs/MentalModel.tsx index cdfedb7..171ad73 100644 --- a/src/pages/docs/MentalModel.tsx +++ b/src/pages/docs/MentalModel.tsx @@ -281,8 +281,7 @@ export default function MentalModel() { highlighted: true, }, { - content: - " function getConditionFee(uint256 escrowId)", + content: " function getConditionFee(uint256 escrowId)", }, { content: diff --git a/src/pages/docs/ReineiraSDK.tsx b/src/pages/docs/ReineiraSDK.tsx index b78e35f..13f6fde 100644 --- a/src/pages/docs/ReineiraSDK.tsx +++ b/src/pages/docs/ReineiraSDK.tsx @@ -201,10 +201,10 @@ export default function ReineiraSDK() {
- The SDK exposes six modules accessible as properties. escrow{" "}
- and insurance hit the confidential (FHE) deployment;{" "}
- escrowPlain and insurancePlain hit the
- mainnet-launch plaintext deployment.
+ The SDK exposes six modules accessible as properties.{" "}
+ escrow and insurance hit the confidential
+ (FHE) deployment; escrowPlain and{" "}
+ insurancePlain hit the mainnet-launch plaintext deployment.
CoverageInstance, and their
plain variants) representing a single on-chain artifact —{" "}
escrow.fund(), pool.stake(),{" "}
- coverage.dispute() etc. all live on the returned
- instances. See the individual module pages for the full method
- surface.
+ coverage.dispute() etc. all live on the returned instances.
+ See the individual module pages for the full method surface.
{/* ── Utilities ──────────────────────────────────────────────────── */}
diff --git a/src/pages/docs/RunOperator.tsx b/src/pages/docs/RunOperator.tsx
index 6ddcf3f..a706142 100644
--- a/src/pages/docs/RunOperator.tsx
+++ b/src/pages/docs/RunOperator.tsx
@@ -345,10 +345,13 @@ export default function RunOperator() {
- The fee schedule above is the activated rate.
- During chaos-net,{" "}
+ The fee schedule above is the activated rate. During
+ chaos-net,{" "}
FeeManager
{" "}
@@ -373,9 +376,8 @@ export default function RunOperator() {
Post-activation: fees are deducted from the bridged amount before - settlement. For a 10,000 USDC transfer, 35 USDC goes to the operator, - 15 USDC to the protocol, and 9,950 USDC reaches the destination - escrow. + settlement. For a 10,000 USDC transfer, 35 USDC goes to the operator, 15 + USDC to the protocol, and 9,950 USDC reaches the destination escrow.
{/* Monitoring */} diff --git a/src/pages/docs/rss/RssLicensing.tsx b/src/pages/docs/rss/RssLicensing.tsx index 735a19f..dedeb67 100644 --- a/src/pages/docs/rss/RssLicensing.tsx +++ b/src/pages/docs/rss/RssLicensing.tsx @@ -27,7 +27,11 @@ const layerRows = [ now: "Apache 2.0", after: "Apache 2.0", }, - { layer: "SDK, plugin examples, @cofhe/sdk integration", now: "MIT", after: "MIT" }, + { + layer: "SDK, plugin examples, @cofhe/sdk integration", + now: "MIT", + after: "MIT", + }, { layer: "Token wrappers (cUSDC, cUSDT)", now: "MIT", after: "MIT" }, { layer: "Operator services (orchestrator, coordinator, CLI)",