docs(landing): update operator sections for testnet launch

This commit is contained in:
anonpenguin23 2026-03-27 12:13:38 +02:00
parent 59d881afe6
commit fd59131ff4
30 changed files with 3762 additions and 3159 deletions

View File

@ -7,7 +7,6 @@ import { DashedPanel } from "../ui/dashed-panel";
import { Button } from "../ui/button";
import { AnimateIn } from "../ui/animate-in";
import { StatusDot } from "../ui/status-dot";
import { Redacted } from "../ui/redacted";
const ctaContent: Record<
Persona,
@ -29,7 +28,7 @@ const ctaContent: Record<
operator: {
heading: "Start your node today.",
description:
<>Minimal hardware. Maximum rewards. Join <Redacted /> operators powering the decentralized cloud.</>,
"Minimal hardware. Maximum rewards. Testnet is free — no staking required. Tokens carry over to mainnet.",
buttonText: "Read Setup Guide",
to: "/docs/operator/getting-started",
},
@ -53,7 +52,7 @@ export function CtaSection({ persona }: { persona: Persona }) {
<div className="flex flex-col items-center text-center gap-6 py-8">
<div className="flex items-center justify-center gap-2 mb-2">
<StatusDot status="active" />
<span className="text-xs font-mono text-muted tracking-wider uppercase">50+ Nodes Online</span>
<span className="text-xs font-mono text-muted tracking-wider uppercase">Testnet Live 300-Node Genesis Target</span>
</div>
<h2 className="font-display font-bold text-2xl lg:text-3xl text-fg">

View File

@ -34,11 +34,11 @@ const heroContent: Record<
titleLine1: "Earn by powering",
titleLine2: "the decentralized cloud.",
description:
"Run an Orama node on any VPS. Earn $ORAMA tokens for every request you serve. Join the infrastructure that replaces AWS.",
"Run an Orama node on any VPS. Earn $ORAMA through hybrid consensus — Effective Power = Stake x Contribution x Infrastructure. Testnet is free, no staking required. Tokens carry over to mainnet.",
primaryCta: { text: "Become an Operator", to: "/dashboard" },
secondaryCta: { text: "See Documentation", to: "/docs" },
comingSoon: true,
badges: ["$ORAMA Rewards", "Deploy on Any VPS", "100+ Operators"],
badges: ["$ORAMA Rewards", "Testnet Free — No Staking", "300-Node Genesis Target"],
},
contributor: {
label: "",

View File

@ -7,9 +7,9 @@ import { Badge } from "../ui/badge";
import { AnimateIn } from "../ui/animate-in";
const rewardSpec = [
{ label: "Reward token", value: "$ORAMA — uptime, bandwidth, compute" },
{ label: "Privacy relay", value: "Orama Proxy on every node" },
{ label: "Routing", value: "Onion-routed traffic for all requests" },
{ label: "Payout", value: "Continuous, based on contribution metrics" },
{ label: "Network privacy", value: "Orama Proxy — onion routing for traffic obfuscation" },
{ label: "Transaction privacy", value: "PLONK zk-SNARKs — per-tx public/private toggle (core protocol)" },
{ label: "Payout", value: "Continuous, based on Effective Power formula" },
];
export function OpsAnyone() {
@ -25,8 +25,11 @@ export function OpsAnyone() {
<div className="flex flex-col gap-4">
<Badge variant="accent" className="w-fit">Privacy Layer</Badge>
<p className="text-muted leading-relaxed">
Every Orama node runs the Orama Proxy privacy relay. As an operator,
you earn $ORAMA rewards while providing onion-routed privacy for all network traffic.
Every Orama node runs the Orama Proxy privacy relay for network-level traffic
obfuscation via onion routing. This is the transport layer it hides where traffic
comes from. The core privacy feature is PLONK zk-SNARKs at the protocol level,
which provides per-transaction public/private toggle (hiding sender, receiver, and
amount). Private transactions cost 4x the public gas equivalent.
</p>
<SpecTable rows={rewardSpec} />
</div>

View File

@ -18,7 +18,7 @@ export function OpsOramaOne() {
Orama One
</h2>
<p className="text-lg text-accent font-mono tracking-wider">
Plug in. Connect. Earn.
3D-printed. Open-source. OramaOS pre-loaded.
</p>
</div>
@ -73,26 +73,32 @@ export function OpsOramaOne() {
</DashedPanel>
{/* Specs */}
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4 max-w-4xl mx-auto w-full">
<div className="grid grid-cols-2 sm:grid-cols-4 gap-4 max-w-4xl mx-auto w-full">
<DashedPanel className="p-4 text-center">
<span className="text-xs font-mono text-muted block mb-1">FORM FACTOR</span>
<span className="text-sm text-fg">Compact. Silent. Always-on.</span>
<span className="text-xs font-mono text-muted block mb-1">CPU</span>
<span className="text-sm text-fg">4+ cores, 2.0+ GHz</span>
</DashedPanel>
<DashedPanel className="p-4 text-center">
<span className="text-xs font-mono text-muted block mb-1">CONNECTIVITY</span>
<span className="text-sm text-fg">Ethernet + WiFi + WireGuard</span>
<span className="text-xs font-mono text-muted block mb-1">RAM</span>
<span className="text-sm text-fg">8 GB</span>
</DashedPanel>
<DashedPanel className="p-4 text-center">
<span className="text-xs font-mono text-muted block mb-1">SETUP</span>
<span className="text-sm text-fg">Plug in and start earning</span>
<span className="text-xs font-mono text-muted block mb-1">STORAGE</span>
<span className="text-sm text-fg">256 GB NVMe SSD</span>
</DashedPanel>
<DashedPanel className="p-4 text-center">
<span className="text-xs font-mono text-muted block mb-1">NETWORK</span>
<span className="text-sm text-fg">1 Gbps + TPM 2.0</span>
</DashedPanel>
</div>
{/* Description + CTA */}
<div className="flex flex-col items-center text-center gap-6 max-w-2xl mx-auto">
<p className="text-muted leading-relaxed">
A pre-built hardware node. No VPS. No terminal. No configuration.
Just plug it in, connect to the network, and start earning $ORAMA.
A 3D-printed hardware node pre-loaded with OramaOS the hardened
OS with no SSH, read-only rootfs, full-disk encryption, and TPM
attestation. Earns the 1.5x Infrastructure Multiplier automatically.
Open-source hardware design build your own or buy one.
</p>
<Button variant="ghost" size="lg">
Notify Me When Available

View File

@ -15,7 +15,7 @@ export function OpsSetup() {
<div className="flex flex-col gap-8">
<SectionHeader
title="From zero to earning in 5 minutes."
subtitle="Get your node running with just a VPS and an invite token."
subtitle="Testnet is free — no staking required. Get a VPS, install OramaOS, and start earning $ORAMA that carries over to mainnet."
/>
<div className="flex flex-col gap-8 max-w-3xl mx-auto w-full">
@ -25,7 +25,7 @@ export function OpsSetup() {
<div>
<h3 className="font-display font-semibold text-fg text-sm mb-1">Get a VPS</h3>
<p className="text-sm text-muted">
Any Linux VPS with 4GB RAM, 2 cores, 40GB disk. Hetzner, DigitalOcean, Vultr any provider works.
Cloud: 2+ vCPU, 4GB RAM, 80GB SSD. Standard: 4+ cores, 8GB RAM, 256GB NVMe, TPM 2.0. Hetzner, DigitalOcean, Vultr any provider works.
</p>
</div>
</div>

View File

@ -1,5 +1,5 @@
import { Link } from "react-router";
import { Coins, Vote, CreditCard, Server, ArrowRight } from "lucide-react";
import { Coins, Vote, CreditCard, ArrowRight, AlertTriangle } from "lucide-react";
import { Section } from "../layout/section";
import { SectionHeader } from "../ui/section-header";
import { MetricCard } from "../ui/metric-card";
@ -7,36 +7,13 @@ import { DashedPanel } from "../ui/dashed-panel";
import { CrosshairDivider } from "../ui/crosshair-divider";
import { AnimateIn } from "../ui/animate-in";
import { Button } from "../ui/button";
import { Badge } from "../ui/badge";
import { SILVER } from "../ui/silver-theme";
const TIER_ACCENT: Record<string, string> = {
Base: "#888",
Enhanced: "#4169E1",
Governor: "#a855f7",
};
const rewardTiers = [
{
icon: <Server className="w-5 h-5" />,
tier: "Base",
stake: "***",
multiplier: "***",
description: "Standard rewards for running a node with minimum stake",
},
{
icon: <Coins className="w-5 h-5" />,
tier: "Enhanced",
stake: "***",
multiplier: "***",
description: "Higher stake unlocks enhanced reward multiplier",
},
{
icon: <Vote className="w-5 h-5" />,
tier: "Governor",
stake: "***",
multiplier: "***",
description: "Top-tier rewards plus governance voting power",
},
const PER_NODE_EARNINGS = [
{ nodes: "300", daily: "3,840", monthly: "115,200" },
{ nodes: "500", daily: "2,304", monthly: "69,120" },
{ nodes: "1,000", daily: "1,152", monthly: "34,560" },
{ nodes: "5,000", daily: "230", monthly: "6,912" },
];
export function OpsTokenomics() {
@ -47,94 +24,126 @@ export function OpsTokenomics() {
<div className="flex flex-col gap-8">
<SectionHeader
title="Reward Structure"
subtitle="Earn $ORAMA for every request you serve. Higher stake, higher rewards."
subtitle="Earn $ORAMA through hybrid consensus. Your Effective Power determines your share of block rewards."
/>
{/* Key metrics */}
<div className="grid grid-cols-2 sm:grid-cols-4 gap-4 max-w-4xl mx-auto w-full">
<DashedPanel className="p-4">
<MetricCard label="Rewards" value="$ORAMA" />
<MetricCard label="Block Reward (Era 1)" value="100 $ORAMA" />
</DashedPanel>
<DashedPanel className="p-4">
<MetricCard label="Payout" value="Daily" />
<MetricCard label="Block Time" value="6 seconds" />
</DashedPanel>
<DashedPanel className="p-4">
<MetricCard label="Based On" value="Uptime + Traffic" />
<MetricCard label="To Miners" value="80%" />
</DashedPanel>
<DashedPanel className="p-4">
<MetricCard label="Operators" value="Unlimited" />
<MetricCard label="Halving" value="Every 2 Years" />
</DashedPanel>
</div>
{/* Reward tiers */}
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
{rewardTiers.map((tier) => {
const accent = TIER_ACCENT[tier.tier] ?? "#888";
return (
<div
key={tier.tier}
className="group relative border border-dashed border-border p-6 flex flex-col gap-5 transition-all duration-300 hover:border-border/80"
style={{ borderLeftColor: accent, borderLeftWidth: 2, borderLeftStyle: "solid" }}
>
{/* Subtle gradient hover overlay */}
<div
className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none"
style={{
background: `linear-gradient(135deg, ${accent}08 0%, transparent 60%)`,
}}
/>
<div className="relative flex items-center justify-between">
<div className="flex items-center gap-3">
<div style={{ color: accent }}>{tier.icon}</div>
<div className="flex flex-col">
<span className="font-display font-semibold text-fg">
{tier.tier}
</span>
<span className="text-xs text-muted font-mono">Tier</span>
</div>
</div>
<Badge variant="outline">{tier.tier}</Badge>
</div>
{/* Multiplier — large and prominent */}
<div className="relative flex items-baseline gap-2">
<span
className="font-mono text-4xl font-bold tracking-tight"
style={{ color: accent }}
>
<span className="redacted-inline">{tier.multiplier}</span>
</span>
<span className="text-xs text-muted font-mono uppercase tracking-wider">
Multiplier
</span>
</div>
<div className="relative flex items-baseline gap-1">
<span className="font-mono text-lg font-bold text-fg">
<span className="redacted-inline">{tier.stake}</span>
</span>
<span className="text-xs text-muted font-mono">$ORAMA staked</span>
</div>
<p className="relative text-sm text-muted leading-relaxed">
{tier.description}
{/* Effective Power formula */}
<DashedPanel withCorners withBackground>
<div className="flex flex-col gap-4 p-6">
<h3 className="font-display font-bold text-fg">Effective Power Formula</h3>
<div className="bg-bg/50 border border-dashed border-border rounded-sm p-4 font-mono text-sm text-fg text-center">
Effective Power = Staked $ORAMA &times; (1 + Contribution Score) &times; Infrastructure Multiplier
</div>
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4 mt-2">
<div className="flex flex-col gap-1">
<span className="text-xs font-mono text-muted uppercase tracking-wider">Contribution Score</span>
<p className="text-xs text-muted leading-relaxed">
40% uptime, 30% bandwidth, 20% compute, 10% reliability. Measured every epoch (1 hour).
</p>
</div>
);
})}
</div>
<div className="flex flex-col gap-1">
<span className="text-xs font-mono text-muted uppercase tracking-wider">Infrastructure Multiplier</span>
<p className="text-xs text-muted leading-relaxed">
OramaOS = 1.5x. Standard OS = 1.0x. TPM-based attestation verified on-chain.
</p>
</div>
<div className="flex flex-col gap-1">
<span className="text-xs font-mono text-muted uppercase tracking-wider">Testnet Bootstrap</span>
<p className="text-xs text-muted leading-relaxed">
No staking required on testnet. Tokens earned carry over to mainnet. 1,000 $ORAMA min stake at mainnet.
</p>
</div>
</div>
</div>
</DashedPanel>
{/* Per-node earnings table */}
<DashedPanel withCorners withBackground>
<div className="flex flex-col gap-4 p-6">
<h3 className="font-display font-bold text-fg">Per-Node Earnings (Era 1)</h3>
<p className="text-xs text-muted">Assumes equal Effective Power across all nodes.</p>
<div className="overflow-x-auto">
<table className="w-full text-xs sm:text-sm min-w-[400px]">
<thead>
<tr className="border-b" style={{ borderColor: SILVER.border }}>
<th className="text-left p-2 sm:p-3 font-mono text-[10px] sm:text-xs text-zinc-500 uppercase tracking-wider">Total Nodes</th>
<th className="text-left p-2 sm:p-3 font-mono text-[10px] sm:text-xs text-zinc-500 uppercase tracking-wider">Daily per Node</th>
<th className="text-left p-2 sm:p-3 font-mono text-[10px] sm:text-xs text-zinc-500 uppercase tracking-wider">Monthly per Node</th>
</tr>
</thead>
<tbody>
{PER_NODE_EARNINGS.map((row, i) => (
<tr
key={row.nodes}
className={i < PER_NODE_EARNINGS.length - 1 ? "border-b" : ""}
style={{ borderColor: SILVER.border }}
>
<td className="p-2 sm:p-3 font-display font-bold text-fg text-xs">{row.nodes}</td>
<td className="p-2 sm:p-3 text-xs" style={{ color: SILVER.light }}>{row.daily} $ORAMA</td>
<td className="p-2 sm:p-3 text-xs" style={{ color: SILVER.light }}>{row.monthly} $ORAMA</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</DashedPanel>
{/* Slashing rules */}
<DashedPanel withCorners>
<div className="flex flex-col gap-4 p-6">
<div className="flex items-center gap-2">
<AlertTriangle className="w-4 h-4 text-amber-500" />
<h3 className="font-display font-bold text-fg">Slashing Rules</h3>
</div>
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4">
<div className="flex flex-col gap-1">
<span className="text-xs font-mono font-bold text-red-400">100% SLASH</span>
<p className="text-xs text-muted">Double-signing or cheating. Tokens burned.</p>
</div>
<div className="flex flex-col gap-1">
<span className="text-xs font-mono font-bold text-amber-400">5-30% SLASH</span>
<p className="text-xs text-muted">Downtime exceeding 20%. Progressive penalty.</p>
</div>
<div className="flex flex-col gap-1">
<span className="text-xs font-mono font-bold text-orange-400">50% SLASH</span>
<p className="text-xs text-muted">False infrastructure attestation. Permanently flagged.</p>
</div>
</div>
<p className="text-[10px] font-mono text-muted">All slashed tokens are burned permanently not redistributed.</p>
</div>
</DashedPanel>
{/* Utility summary + CTA */}
<div className="flex flex-col sm:flex-row items-center justify-between gap-4 border border-dashed border-border p-5">
<div className="flex flex-wrap gap-6 text-sm text-muted">
<div className="flex items-center gap-2">
<CreditCard className="w-4 h-4 text-accent" />
<span>Pay in BTC or $ORAMA</span>
<span>BTC-only economy</span>
</div>
<div className="flex items-center gap-2">
<Vote className="w-4 h-4 text-accent" />
<span>Governance voting with stake</span>
<span>On-chain governance</span>
</div>
<div className="flex items-center gap-2">
<Coins className="w-4 h-4 text-accent" />
<span>210M hard cap zero pre-mine</span>
</div>
</div>
<Button asChild variant="ghost" size="sm">

View File

@ -146,8 +146,9 @@ export function Footer() {
</span>
</Link>
<p className="text-muted text-sm leading-relaxed max-w-xs">
Decentralized cloud infrastructure. Deploy, store, and compute
without centralized providers.
Standalone Layer-1 blockchain. The eternal decentralized computer
and financial system. BTC-only economy, WASM smart contracts,
PLONK privacy.
</p>
</div>

View File

@ -20,7 +20,7 @@ export function WhitelistBanner() {
}}
>
<a
href="https://t.me/debrosportal"
href="/whitelist"
target="_blank"
rel="noopener noreferrer"
className="flex items-center gap-3 flex-1 justify-center group"

View File

@ -26,7 +26,6 @@ import { CrosshairDivider } from "../components/ui/crosshair-divider";
import { AnimateIn } from "../components/ui/animate-in";
import { SplitText } from "../components/ui/split-text";
import { SILVER } from "../components/ui/silver-theme";
import { Redacted } from "../components/ui/redacted";
const AboutHeroScene = lazy(() =>
import("../components/landing/about-hero-scene").then((m) => ({
@ -335,12 +334,12 @@ const VALUES = [
{
icon: <Coins className="w-5 h-5" />,
title: "Fair Economics",
description: "Node operators earn, not middlemen. Developers pay only for what they use. No hidden fees, no markup, no rent-seeking.",
description: "210 million $ORAMA hard cap. Zero pre-mine, zero airdrop — 100% mined by node operators. No team allocation, no insider advantage.",
},
{
icon: <Rocket className="w-5 h-5" />,
title: "Long-term Vision",
description: "Building for 2028 mainnet, not quick flips. Every decision optimizes for the network existing in 10 years, not 10 months.",
title: "1,000-Year Vision",
description: "Designed for a 1,000-year horizon, not quick flips. Immutable financial core that no governance vote can change. The protocol outlives any person, company, or government.",
},
];
@ -352,10 +351,10 @@ const TEAM_MEMBERS = [
];
const TRUST_METRICS = [
{ icon: <Server className="w-6 h-6" />, label: "Nodes Live", value: "50+" },
{ icon: <Server className="w-6 h-6" />, label: "Genesis Target", value: "300 Nodes" },
{ icon: <AppWindow className="w-6 h-6" />, label: "Live Apps", value: "AnChat" },
{ icon: <Github className="w-6 h-6" />, label: "GitHub Repos", value: "Public" },
{ icon: <Handshake className="w-6 h-6" />, label: "Privacy Layer", value: "Orama Proxy" },
{ icon: <Handshake className="w-6 h-6" />, label: "Privacy Layer", value: "PLONK zk-SNARKs" },
];
/*
@ -403,10 +402,10 @@ export default function About() {
`}</style>
<p className="text-muted text-sm leading-relaxed max-w-lg">
We're a small team of builders who got tired of handing our
infrastructure to corporations. So we built our own open source,
community owned, running on a decentralized mesh of independent
operators. No pitch decks. No empty promises. Just working code.
We're a small team of builders creating the eternal decentralized
computer a standalone Layer-1 blockchain designed for a 1,000-year
horizon. Open source, community owned, powered by real hardware
running OramaOS. No pitch decks. No empty promises. Just working code.
</p>
<div className="flex flex-col sm:flex-row gap-3 mt-2">
@ -466,6 +465,9 @@ export default function About() {
So they built AnChat. A messaging app where no one can read
your messages. Not governments. Not corporations.{" "}
<span className="text-fg font-medium">Not even us.</span>
{" "}But the vision grew beyond messaging. What if the entire
infrastructure of the internet could be decentralized compute,
storage, databases, even money?
</p>
<p>
Then two more joined. Four people now. Still no investors. Still
@ -473,16 +475,19 @@ export default function About() {
night. Faced attacks, legal threats, health problems. Invested
over{" "}
<span className="text-fg font-medium">
<Redacted /> of their own money.
everything they had.
</span>
{" "}Not because it was easy because it mattered.
</p>
<p>
From that sacrifice came the Orama Network. A decentralized
cloud where your apps run on a mesh of independent nodes,
connected by encrypted tunnels. No Amazon. No Google. No single
point of failure. Fifty nodes are live today. Open source.
Auditable.{" "}
From that sacrifice came the Orama Network a standalone
Layer-1 blockchain designed for a{" "}
<span className="text-fg font-medium">1,000-year horizon.</span>
{" "}The eternal decentralized computer and financial system.
BTC-only economy. 210 million $ORAMA zero pre-mine, 100% mined.
WASM smart contracts in any language. Per-transaction privacy
with PLONK zk-SNARKs. Nodes are live today, earning toward the
300-node genesis requirement. Open source. Auditable.{" "}
<span className="text-fg font-medium">
Owned by the community.
</span>

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,6 @@ import { CrosshairDivider } from "../components/ui/crosshair-divider";
import { AnimateIn } from "../components/ui/animate-in";
import { StatusDot } from "../components/ui/status-dot";
import { SILVER } from "../components/ui/silver-theme";
import { Redacted } from "../components/ui/redacted";
import {
ArrowRight,
ExternalLink,
@ -107,7 +106,7 @@ function ComputeHero() {
<div className="flex items-center gap-2 text-xs font-mono text-muted">
<StatusDot status="active" />
<span>DEVNET LIVE 50+ NODES ONLINE</span>
<span>TESTNET LIVE 300 NODES REQUIRED FOR GENESIS</span>
</div>
</div>
</Section>
@ -124,7 +123,7 @@ function WhatYouCanDeploy() {
{ icon: Database, title: "Databases", desc: "Distributed databases with automatic replication and fault tolerance." },
{ icon: HardDrive, title: "Storage", desc: "Decentralized file storage with IPFS integration. Permanent, censorship-resistant." },
{ icon: Zap, title: "Serverless Functions", desc: "WASM-powered edge functions. Execute code at the closest node to your users." },
{ icon: Brain, title: "AI Inference", desc: "Run ML models on distributed GPU/CPU resources across the network." },
{ icon: Brain, title: "AI Marketplace", desc: "Native AI Marketplace with autonomous AI agents (Angels) that interact with on-chain primitives." },
];
return (
@ -178,15 +177,16 @@ function OramaOneSection() {
<p className="text-muted text-sm max-w-lg leading-relaxed">
Plug in. Connect. Start powering the decentralized cloud.
Every Orama One node contributes compute, storage, and bandwidth
to the network earning $ORAMA rewards through Proof of Infrastructure.
Every Orama One node runs OramaOS hardened, read-only, TPM-attested
earning $ORAMA with a 1.5x Infrastructure Multiplier.
3D-printed, open-source hardware design. 4+ cores, 8GB RAM, 256GB NVMe.
</p>
<div className="grid grid-cols-2 sm:grid-cols-4 gap-4 w-full max-w-lg">
{[
{ label: "Consensus", value: "PoI" },
{ label: "Rewards", value: "$ORAMA" },
{ label: "Privacy", value: "Built-in" },
{ label: "Consensus", value: "Hybrid PoS+PoC+PoI" },
{ label: "Block Time", value: "6 seconds" },
{ label: "OramaOS", value: "1.5x Multiplier" },
{ label: "Status", value: "Coming Soon" },
].map((stat) => (
<div key={stat.label} className="flex flex-col gap-1 text-center">
@ -214,15 +214,15 @@ function OramaOneSection() {
}
/*
4. NODE LICENSES
4. RUN A NODE
*/
function NodeLicenses() {
function RunANode() {
return (
<Section>
<AnimateIn>
<SectionHeader
title="Node Licenses"
subtitle={<>Secure your place in the network. Only <Redacted /> licenses available early operators earn rewards before mainnet.</>}
title="Run a Node"
subtitle="No licenses. No gatekeeping. Run a node on testnet for free — stake 1,000 $ORAMA at mainnet."
/>
</AnimateIn>
@ -236,15 +236,15 @@ function NodeLicenses() {
<div>
<span className="text-sm font-semibold text-purple-300">DeBros Team NFT Holders</span>
<p className="text-xs text-purple-400/80 mt-1">
All 100 DeBros Team NFT holders receive a <strong>free node license</strong> to deploy
their own nodes on the network.{" "}
100 Team NFTs: <strong>40% governance power</strong> (5 votes each) +{" "}
<strong>50% of BTC bridge fees</strong> auto-swapped to $ORAMA every epoch.{" "}
<a
href="https://debros.io/nft"
target="_blank"
rel="noopener noreferrer"
className="underline hover:text-purple-300"
>
View the collection
View the collection &rarr;
</a>
</p>
</div>
@ -263,15 +263,15 @@ function NodeLicenses() {
>
1
</span>
<span className="font-display font-bold text-fg">2027 Scale Phase</span>
<span className="font-display font-bold text-fg">Testnet Free to Join</span>
</div>
<p className="text-xs text-muted leading-relaxed">
Only license holders can run nodes. Start earning $ORAMA rewards
before anyone else. Proof of Infrastructure goes live your uptime
and contribution directly determines your rewards.
No staking required. Run a node and start earning $ORAMA block rewards immediately.
Testnet tokens are real they carry over to mainnet. Earn 3,840 $ORAMA/day per node
at 300 nodes in Era 1.
</p>
<div className="flex flex-wrap gap-2">
{["Exclusive Access", "Pre-Mainnet Rewards", "PoI Live"].map((tag) => (
{["Zero Stake", "Real Tokens", "Carry Over to Mainnet"].map((tag) => (
<span
key={tag}
className="text-[10px] font-mono px-2 py-0.5 rounded-sm"
@ -295,15 +295,15 @@ function NodeLicenses() {
>
2
</span>
<span className="font-display font-bold text-fg">2028 Mainnet Launch</span>
<span className="font-display font-bold text-fg">Mainnet 300 Nodes Verified</span>
</div>
<p className="text-xs text-muted leading-relaxed">
The network opens to everyone. But license holders have been earning
since day one with established uptime scores, accumulated rewards,
and priority positioning in the validator set.
Full production launch when 300 independent nodes are running and verified.
Staking activates at 1,000 $ORAMA. BTC bridge live. Native DEX live.
Every testnet node runner will have earned more than enough to stake.
</p>
<div className="flex flex-wrap gap-2">
{["Open Network", "Token Trading", "Full Rewards"].map((tag) => (
{["1,000 $ORAMA Stake", "BTC Bridge", "Native DEX"].map((tag) => (
<span
key={tag}
className="text-[10px] font-mono px-2 py-0.5 rounded-sm"
@ -318,30 +318,20 @@ function NodeLicenses() {
</AnimateIn>
</div>
{/* License Card */}
{/* Hardware Specs */}
<AnimateIn>
<DashedPanel withCorners withBackground className="mt-6">
<div className="flex flex-col sm:flex-row items-center justify-between gap-6 p-6">
<div className="flex flex-col gap-2">
<span className="font-display font-bold text-lg text-fg">Orama One Node License</span>
<p className="text-xs text-muted max-w-sm">
Right to operate a node on the Orama Network. Earn $ORAMA rewards through
Proof of Infrastructure. Limited to <Redacted /> licenses total.
</p>
<div className="flex items-center gap-3 mt-1 text-xs font-mono text-muted">
<span><Redacted /> Total</span>
<span style={{ color: SILVER.border }}>|</span>
<span style={{ color: "#F7931A", fontWeight: "bold" }}>BTC</span>
<div className="flex flex-col gap-4 p-6">
<span className="font-display font-bold text-lg text-fg">Hardware Requirements</span>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div className="flex flex-col gap-2">
<span className="text-xs font-mono text-muted uppercase tracking-wider">Standard Node</span>
<p className="text-xs text-muted">4+ cores, 8GB RAM, 256GB NVMe, 1Gbps, TPM 2.0</p>
</div>
<div className="flex flex-col gap-2">
<span className="text-xs font-mono text-muted uppercase tracking-wider">Cloud Node (min)</span>
<p className="text-xs text-muted">2+ vCPU, 4GB RAM, 80GB SSD, OramaOS image</p>
</div>
</div>
<div className="flex flex-col items-center gap-3">
<span className="text-3xl font-bold tabular-nums text-fg">
<Redacted /> <span style={{ color: "#F7931A" }}>BTC</span>
</span>
<Redacted />
<Button className="silver-button text-black font-mono font-semibold tracking-wider uppercase px-6 py-2.5 text-xs rounded-sm opacity-50 pointer-events-none">
COMING SOON <ArrowRight className="w-3 h-3 ml-1" />
</Button>
</div>
</div>
</DashedPanel>
@ -364,13 +354,13 @@ function HowComputeWorks() {
{
num: "02",
title: "Distribute",
desc: "Your application is compiled to WASM and distributed across Orama nodes worldwide. Replicated, fault-tolerant.",
desc: "Your application is compiled to pure WASM and distributed across Orama nodes. BFT consensus ensures fault tolerance with 6-second block times.",
icon: Server,
},
{
num: "03",
title: "Serve",
desc: "Users hit the closest node. Fast, private, censorship-resistant. No single point of failure.",
desc: "Users hit the closest node. Per-transaction privacy via PLONK zk-SNARKs. No single point of failure. Censorship-resistant by design.",
icon: Globe,
},
];
@ -591,31 +581,31 @@ function ComputeFAQ() {
const faqs = [
{
question: "What can I deploy on Orama Compute?",
answer: "Static sites, APIs, backends (Go, Node, Python), databases, file storage via IPFS, serverless WASM functions, and AI inference workloads. If it runs on a traditional cloud, it can run on Orama.",
answer: "Static sites, APIs, backends (Go, Node, Python), databases, file storage via IPFS, serverless WASM functions, and AI workloads via the native AI Marketplace. Write smart contracts in any language that compiles to WebAssembly.",
},
{
question: "What's a node license?",
answer: "A node license gives you the right to operate an Orama One node on the network. During the Scale phase (2027), only license holders can run nodes and earn pre-mainnet $ORAMA rewards. After mainnet (2028), the network opens to everyone — but license holders have a year head start.",
question: "How do I run a node?",
answer: "During testnet, anyone can run a node with zero staking. Just get a VPS (2+ vCPU, 4GB RAM, 80GB SSD) or dedicated hardware (4+ cores, 8GB RAM, 256GB NVMe), install OramaOS, and start earning. Testnet tokens carry over to mainnet.",
},
{
question: "Do DeBros NFT holders get free licenses?",
answer: "Yes. DeBros Team NFT holders receive a free node license. This is our way of rewarding the earliest supporters of the ecosystem.",
question: "What is the staking requirement?",
answer: "On testnet: zero. At mainnet launch, the minimum stake is 1,000 $ORAMA. Every testnet node runner will have earned more than enough to stake by then.",
},
{
question: "How does Proof of Infrastructure work?",
answer: "Proof of Infrastructure (PoI) is Orama's primary consensus mechanism. Unlike Proof of Stake where the richest validators dominate, PoI rewards nodes for real work — uptime, compute served, storage provided, bandwidth contributed. A node with excellent uptime earns more than someone who just stakes capital.",
question: "What happens if my node goes down?",
answer: "Slashing is progressive: downtime over 20% results in a 5-30% slash. Double-signing is a 100% slash, and false infrastructure attestation is 50%. Slashed tokens are burned permanently.",
},
{
question: "Is this live now?",
answer: "The devnet is live with 50+ nodes. Developers can join the waitlist for early access to deploy on the testnet. The Scale phase (license holders only) begins in 2027, with full mainnet in 2028.",
question: "How does the consensus mechanism work?",
answer: "Orama uses hybrid PoS + Proof of Contribution + Proof of Infrastructure. Effective Power = Stake x (1 + Contribution Score) x Infrastructure Multiplier. OramaOS nodes get a 1.5x multiplier. Contribution is weighted: 40% uptime, 30% bandwidth, 20% compute, 10% reliability.",
},
{
question: "How is this different from Akash or Filecoin?",
answer: "Orama is more than a compute marketplace. It's a full L1 blockchain fused with a decentralized cloud — meaning compute, storage, consensus, and on-chain logic all live on the same infrastructure. You don't need to bridge between chains or coordinate multiple protocols.",
answer: "Orama is a standalone L1 blockchain with compute as a native primitive — not a separate marketplace. BTC-only economy, native DEX, PLONK privacy, AI Marketplace, and on-chain governance all live on the same chain. No bridging between protocols.",
},
{
question: "What payments are accepted?",
answer: "Node licenses and token pre-sales accept BTC. Once mainnet launches, all network services are paid in $ORAMA.",
answer: "Only BTC and $ORAMA. Gas is always paid in $ORAMA. Base fee is burned. This is a BTC-only economy by design — no stablecoins, no altcoins.",
},
];
@ -665,8 +655,8 @@ function ComputeCTA() {
Ready to own your infrastructure?
</h2>
<p className="text-muted text-sm max-w-md">
Secure a node license to earn rewards before mainnet, or join the
developer waitlist for early access to the compute layer.
Run a node on testnet for free no staking required. Tokens carry
over to mainnet. Or join the developer waitlist for early access.
</p>
<div className="flex flex-wrap items-center justify-center gap-3">
<Button className="silver-button text-black font-mono font-semibold tracking-wider uppercase px-8 py-3 text-sm rounded-sm opacity-50 pointer-events-none">
@ -700,7 +690,7 @@ export default function Compute() {
<CrosshairDivider />
<OramaOneSection />
<CrosshairDivider />
<NodeLicenses />
<RunANode />
<CrosshairDivider />
<HowComputeWorks />
<CrosshairDivider />

View File

@ -74,9 +74,9 @@ function ContributorsHero() {
`}</style>
<p className="text-muted text-sm leading-relaxed max-w-lg">
Orama Network is open-source infrastructure built with Go and
TypeScript. Contribute to a distributed system that powers real
compute, storage, and networking across hundreds of nodes worldwide.
Orama Network is a standalone L1 blockchain built with Go and
TypeScript. Contribute to a distributed system powering real compute,
storage, WASM smart contracts, and AI agents targeting 300 nodes for genesis.
</p>
<div className="flex flex-wrap items-center gap-3 justify-center pt-4">
@ -109,7 +109,7 @@ function WhyContribute() {
{
icon: Rocket,
title: "Shape the Future",
desc: "Your code runs on real infrastructure serving real users. This isn't a toy project — it's production distributed systems powering hundreds of nodes across three environments.",
desc: "Your code runs on real infrastructure serving real users. This is a standalone L1 blockchain — production distributed systems targeting 300 nodes for genesis across real hardware.",
},
{
icon: GraduationCap,
@ -119,7 +119,7 @@ function WhyContribute() {
{
icon: Award,
title: "Earn Recognition",
desc: "Top contributors earn $ORAMA tokens and node licenses. Ship meaningful code, get recognized by the community, and earn a stake in the network you helped build.",
desc: "Top contributors earn $ORAMA tokens. Ship meaningful code, get recognized by the community, and earn a stake in the network you helped build. 100% mined — no pre-mine, no insider advantage.",
},
];
@ -191,13 +191,18 @@ function TechStack() {
{
icon: Cpu,
name: "WebAssembly",
desc: "Sandboxed serverless function execution",
desc: "Pure WASM smart contracts — write in Rust, Go, TypeScript, C++",
},
{
icon: Network,
name: "Orama Proxy",
desc: "Privacy relay layer running on every node",
},
{
icon: Globe,
name: "AI Marketplace",
desc: "Native protocol primitive for AI models and autonomous Angels",
},
];
return (

View File

@ -1,13 +1,10 @@
import { useState, useRef, useEffect } from "react";
import { ArrowUpDown, ExternalLink } from "lucide-react";
import { Page } from "../components/layout/page";
import { Section } from "../components/layout/section";
import { SectionHeader } from "../components/ui/section-header";
import { DashedPanel } from "../components/ui/dashed-panel";
import { AnimateIn } from "../components/ui/animate-in";
import { CrosshairDivider } from "../components/ui/crosshair-divider";
import { SILVER, SilverBadge, SilverButton, SilverMetric } from "../components/ui/silver-theme";
import { Redacted } from "../components/ui/redacted";
import { SILVER, SilverButton, SilverMetric } from "../components/ui/silver-theme";
/* ── Token logos (inline SVG) ── */
function OramaLogo({ size = 20 }: { size?: number }) {
@ -20,58 +17,16 @@ function OramaLogo({ size = 20 }: { size?: number }) {
);
}
function EthLogo({ size = 20 }: { size?: number }) {
function BtcLogo({ size = 20 }: { size?: number }) {
return (
<svg width={size} height={size} viewBox="0 0 32 32" fill="none">
<circle cx="16" cy="16" r="16" fill="#627EEA" />
<path d="M16 4v8.87l7.5 3.35L16 4z" fill="#fff" fillOpacity="0.6" />
<path d="M16 4L8.5 16.22 16 12.87V4z" fill="#fff" />
<path d="M16 21.97v6.03l7.5-10.4L16 21.97z" fill="#fff" fillOpacity="0.6" />
<path d="M16 28v-6.03L8.5 17.6 16 28z" fill="#fff" />
<path d="M16 20.57l7.5-4.35L16 12.87v7.7z" fill="#fff" fillOpacity="0.2" />
<path d="M8.5 16.22l7.5 4.35v-7.7l-7.5 3.35z" fill="#fff" fillOpacity="0.6" />
<circle cx="16" cy="16" r="16" fill="#F7931A" />
<text x="16" y="21" textAnchor="middle" fontSize="14" fontWeight="bold" fill="#fff" fontFamily="monospace">B</text>
</svg>
);
}
function SolLogo({ size = 20 }: { size?: number }) {
return (
<svg width={size} height={size} viewBox="0 0 32 32" fill="none">
<circle cx="16" cy="16" r="16" fill="#000" />
<defs><linearGradient id="sol-g" x1="6" y1="26" x2="26" y2="6"><stop stopColor="#9945FF" /><stop offset="0.5" stopColor="#19FB9B" /><stop offset="1" stopColor="#00D4AA" /></linearGradient></defs>
<path d="M8 20.5h13.5l2.5-2.5H10.5L8 20.5z" fill="url(#sol-g)" />
<path d="M8 11.5l2.5 2.5H24l-2.5-2.5H8z" fill="url(#sol-g)" />
<path d="M8 24l2.5-2.5H24L21.5 24H8z" fill="url(#sol-g)" />
</svg>
);
}
const TOKEN_LOGOS: Record<string, React.ReactNode> = {
ORAMA: <OramaLogo />,
ETH: <EthLogo />,
SOL: <SolLogo />,
};
const tokens = [
{ symbol: "ETH", name: "Ethereum" },
{ symbol: "SOL", name: "Solana" },
];
export default function Dex() {
const [selectedToken, setSelectedToken] = useState("ETH");
const [tokenSelectorOpen, setTokenSelectorOpen] = useState(false);
const selectorRef = useRef<HTMLDivElement>(null);
useEffect(() => {
function handleClickOutside(e: MouseEvent) {
if (selectorRef.current && !selectorRef.current.contains(e.target as Node)) {
setTokenSelectorOpen(false);
}
}
document.addEventListener("mousedown", handleClickOutside);
return () => document.removeEventListener("mousedown", handleClickOutside);
}, []);
return (
<Page title="Orama DEX">
{/* ── Hero ─────────────────────────────────────────────── */}
@ -79,12 +34,12 @@ export default function Dex() {
<AnimateIn>
<SectionHeader
title="Orama DEX"
subtitle="Swap any token for $ORAMA on the Orama L1 chain."
subtitle="Protocol-native order book. One pair: $ORAMA/BTC. No AMM. Pure price discovery."
/>
</AnimateIn>
</Section>
{/* ── Swap Card ────────────────────────────────────────── */}
{/* ── Order Book Interface ────────────────────────────── */}
<Section padding="narrow">
<AnimateIn>
<div className="max-w-md mx-auto">
@ -103,69 +58,25 @@ export default function Dex() {
placeholder="0.0"
disabled
/>
<div className="relative" ref={selectorRef}>
<button
type="button"
onClick={() => setTokenSelectorOpen(!tokenSelectorOpen)}
className="flex items-center gap-2 px-3 py-1.5 border border-dashed text-fg font-mono text-sm tracking-wider hover:border-fg/30 transition-colors cursor-pointer"
style={{ borderColor: SILVER.dark }}
>
<span className="shrink-0">{TOKEN_LOGOS[selectedToken]}</span>
{selectedToken}
<svg
width="10"
height="6"
viewBox="0 0 10 6"
fill="none"
className={`transition-transform ${tokenSelectorOpen ? "rotate-180" : ""}`}
>
<path
d="M1 1L5 5L9 1"
stroke="currentColor"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
</button>
{tokenSelectorOpen && (
<div className="absolute right-0 top-full mt-1 z-50 border border-dashed bg-[#0a0a0a] min-w-[200px]" style={{ borderColor: SILVER.dark }}>
{tokens.map((token) => (
<button
key={token.symbol}
type="button"
onClick={() => {
setSelectedToken(token.symbol);
setTokenSelectorOpen(false);
}}
className={`w-full flex items-center gap-3 px-3 py-2.5 text-left hover:bg-white/[0.04] transition-colors cursor-pointer ${
selectedToken === token.symbol
? "text-zinc-200"
: "text-fg"
}`}
>
<span className="shrink-0">{TOKEN_LOGOS[token.symbol]}</span>
<span className="font-mono text-sm">{token.symbol}</span>
<span className="text-xs text-muted ml-auto">{token.name}</span>
</button>
))}
</div>
)}
</div>
<span className="flex items-center gap-2 px-3 py-1.5 border border-dashed font-mono text-sm text-zinc-300" style={{ borderColor: SILVER.mid }}>
<BtcLogo />
BTC
</span>
</div>
<span className="text-xs text-muted font-mono">
&asymp; <Redacted />
Bridged BTC on Orama L1
</span>
</div>
{/* Swap Direction Button */}
{/* Swap Direction */}
<div className="flex justify-center">
<div
className="w-8 h-8 rounded-full border border-dashed flex items-center justify-center text-muted hover:text-fg transition-colors"
className="w-8 h-8 rounded-full border border-dashed flex items-center justify-center text-muted"
style={{ borderColor: SILVER.dark }}
>
<ArrowUpDown className="w-4 h-4" />
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
<path d="M8 3v10M8 3L5 6M8 3l3 3" />
</svg>
</div>
</div>
@ -176,7 +87,7 @@ export default function Dex() {
</span>
<div className="flex items-center gap-3">
<span className="flex-1 text-3xl font-mono text-fg min-w-0 truncate">
<Redacted />
</span>
<span className="flex items-center gap-2 px-3 py-1.5 border border-dashed font-mono text-sm text-zinc-300" style={{ borderColor: SILVER.mid }}>
<OramaLogo />
@ -184,21 +95,21 @@ export default function Dex() {
</span>
</div>
<span className="text-xs text-muted font-mono">
1 {selectedToken} &asymp; <Redacted /> ORAMA
1 BTC = ORAMA
</span>
</div>
{/* Details Row */}
<div className="border-t border-dashed pt-4 flex items-center justify-between" style={{ borderColor: SILVER.border }}>
<span className="text-xs text-muted font-mono">
Rate: 1 {selectedToken} = <Redacted /> ORAMA
Order Type: Market
</span>
<span className="text-xs text-muted font-mono">
Slippage: <Redacted />
Fee: 1,000 rays
</span>
</div>
{/* Swap Button — Coming Soon */}
{/* Action Button */}
<SilverButton size="lg" className="w-full opacity-50 cursor-not-allowed" disabled>
Coming Soon
</SilverButton>
@ -222,10 +133,10 @@ export default function Dex() {
background: SILVER.bg,
}}
>
<SilverMetric label="Total Liquidity" value={<Redacted />} />
<SilverMetric label="24h Volume" value={<Redacted />} />
<SilverMetric label="$ORAMA Price" value={<Redacted />} />
<SilverMetric label="Active Pairs" value="3" />
<SilverMetric label="Order Book Depth" value="—" />
<SilverMetric label="24h Volume" value="—" />
<SilverMetric label="$ORAMA Price (BTC)" value="—" />
<SilverMetric label="Active Pair" value="$ORAMA/BTC" />
</div>
</AnimateIn>
</Section>
@ -234,34 +145,134 @@ export default function Dex() {
<CrosshairDivider />
</Section>
{/* ── Supported Tokens ─────────────────────────────────── */}
{/* ── Order Book API ────────────────────────────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-6">
<SectionHeader title="Supported Tokens" />
<div className="grid grid-cols-2 sm:grid-cols-4 gap-4">
<SectionHeader
title="Order Book Interface"
subtitle="Native chain primitive — not a smart contract. Callable from WASM contracts and external RPC."
/>
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
{[
{ symbol: "ORAMA", name: "$ORAMA" },
{ symbol: "ETH", name: "Ethereum" },
{ symbol: "SOL", name: "Solana" },
].map((t) => (
<div
key={t.symbol}
className="flex items-center gap-3 p-4 rounded-sm"
style={{
border: `1px dashed ${SILVER.border}`,
background: SILVER.bg,
}}
>
<span className="shrink-0">{TOKEN_LOGOS[t.symbol]}</span>
<div className="flex flex-col min-w-0">
<span className="font-mono text-sm text-fg font-semibold truncate">{t.symbol}</span>
<span className="text-xs text-muted truncate">{t.name}</span>
{ fn: "place_order(pair, side, amount, price)", desc: "Place a limit order on the book" },
{ fn: "market_order(pair, side, amount)", desc: "Execute at best available price" },
{ fn: "cancel_order(order_id)", desc: "Cancel an open limit order" },
{ fn: "get_orderbook(pair)", desc: "Current bids and asks" },
{ fn: "quote(pair, side, amount)", desc: "Expected fill price and size" },
].map((item) => (
<DashedPanel key={item.fn} withBackground>
<div className="flex flex-col gap-2 p-3">
<code className="text-xs font-mono text-fg break-all">{item.fn}</code>
<span className="text-xs text-muted">{item.desc}</span>
</div>
<span className="font-mono text-xs text-zinc-400 ml-auto shrink-0"><Redacted /></span>
</div>
</DashedPanel>
))}
</div>
<p className="text-xs text-muted leading-relaxed max-w-xl">
Any wallet, aggregator, or exchange in the world can integrate by calling these
functions over Orama's RPC. No permission required. No listing fees. No gatekeepers.
</p>
</div>
</AnimateIn>
</Section>
<Section padding="none">
<CrosshairDivider />
</Section>
{/* ── Why Order Book, Not AMM ────────────────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-6">
<SectionHeader
title="Why an Order Book, Not an AMM"
subtitle="The whitepaper explicitly argues against AMMs for the core trading pair."
/>
<DashedPanel withCorners withBackground>
<div className="p-4 overflow-x-auto">
<table className="w-full text-left">
<thead>
<tr className="border-b border-dashed border-border">
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4"></th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4">AMM</th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3">Order Book</th>
</tr>
</thead>
<tbody>
{[
{ aspect: "Bootstrap", amm: "Needs liquidity providers with both assets", ob: "Just needs sellers and buyers — works from block 1" },
{ aspect: "Fairness", amm: "LPs earn special yield (privileged class)", ob: "No special roles — everyone is a trader" },
{ aspect: "Capital Efficiency", amm: "Spread across entire price curve", ob: "Concentrated at actual price levels" },
{ aspect: "Philosophy", amm: "Complex, opaque", ob: "Simple, transparent, free" },
].map((row) => (
<tr key={row.aspect} className="border-b border-border/50">
<td className="text-sm text-fg py-3 pr-4 font-semibold">{row.aspect}</td>
<td className="text-sm text-muted py-3 pr-4">{row.amm}</td>
<td className="text-sm text-fg py-3">{row.ob}</td>
</tr>
))}
</tbody>
</table>
</div>
</DashedPanel>
</div>
</AnimateIn>
</Section>
<Section padding="none">
<CrosshairDivider />
</Section>
{/* ── Bonding Curve as Liquidity Backstop ────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-6">
<SectionHeader
title="Bonding Curve Backstop"
subtitle="The protocol bonding curve guarantees liquidity even when the order book is thin."
/>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
<DashedPanel withCorners withBackground>
<div className="flex flex-col gap-4 p-4">
<h3 className="text-xs font-mono text-muted tracking-wider uppercase">How It Works</h3>
<p className="text-sm text-muted leading-relaxed">
20% of every block reward flows into the curve's sell-side inventory (max 21M $ORAMA).
Anyone can buy from the curve by sending BTC. The price follows:
</p>
<code className="text-sm text-fg font-mono block text-center py-2">
Price = 0.0000000006 x sqrt(total_sold)
</code>
<p className="text-sm text-muted leading-relaxed">
BTC paid goes to the protocol reserve, directly backing the BTC bridge.
The free market (order book) determines the real price. The curve is a floor.
</p>
</div>
</DashedPanel>
<DashedPanel withCorners withBackground>
<div className="flex flex-col gap-4 p-4">
<h3 className="text-xs font-mono text-muted tracking-wider uppercase">Curve Price Schedule</h3>
<div className="flex flex-col gap-1">
{[
{ sold: "10,000", price: "0.00000006 BTC", btc: "0.0004 BTC" },
{ sold: "1,000,000", price: "0.0000006 BTC", btc: "0.4 BTC" },
{ sold: "5,000,000", price: "0.00000134 BTC", btc: "4.5 BTC" },
{ sold: "10,000,000", price: "0.0000019 BTC", btc: "12.7 BTC" },
{ sold: "21,000,000", price: "0.00000275 BTC", btc: "~38.5 BTC" },
].map((r) => (
<div key={r.sold} className="grid grid-cols-3 text-xs font-mono py-1.5 border-b border-border/30">
<span className="text-muted">{r.sold} sold</span>
<span className="text-fg">{r.price}</span>
<span className="text-muted text-right">{r.btc} total</span>
</div>
))}
</div>
</div>
</DashedPanel>
</div>
</div>
</AnimateIn>
</Section>
@ -270,76 +281,92 @@ export default function Dex() {
<CrosshairDivider />
</Section>
{/* ── Also Available On ────────────────────────────────── */}
{/* ── Asset Hierarchy ────────────────────────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader title="Also Available On" />
<div className="flex flex-col gap-6">
<SectionHeader
title="Asset Hierarchy"
subtitle="BTC at the top. $ORAMA in the middle. Custom tokens at the bottom."
/>
<DashedPanel withCorners withBackground>
<div className="flex flex-col items-center gap-6 p-6">
<div className="flex items-center gap-3 p-4 rounded-sm" style={{ border: `1px dashed ${SILVER.border}`, background: SILVER.bg }}>
<BtcLogo size={28} />
<div className="flex flex-col">
<span className="font-mono text-fg font-bold">BTC</span>
<span className="text-xs text-muted">Bridged from Bitcoin mainnet</span>
</div>
</div>
<div className="flex flex-col items-center gap-1">
<div className="w-px h-6 bg-zinc-700" />
<span className="text-[10px] font-mono text-muted">Protocol-native order book</span>
<div className="w-px h-6 bg-zinc-700" />
</div>
<div className="flex items-center gap-3 p-4 rounded-sm" style={{ border: `2px solid ${SILVER.mid}`, background: SILVER.bg }}>
<OramaLogo size={28} />
<div className="flex flex-col">
<span className="font-mono text-fg font-bold">$ORAMA</span>
<span className="text-xs text-muted">Gas token, earned through mining</span>
</div>
</div>
<div className="flex flex-col items-center gap-1">
<div className="w-px h-6 bg-zinc-700" />
<span className="text-[10px] font-mono text-muted">Permissionless WASM DEX contracts</span>
<div className="w-px h-6 bg-zinc-700" />
</div>
<div className="flex items-center gap-3 p-4 rounded-sm" style={{ border: `1px dashed ${SILVER.border}`, background: SILVER.bg }}>
<div className="w-7 h-7 rounded-full bg-zinc-800 flex items-center justify-center text-xs font-mono text-muted">?</div>
<div className="flex flex-col">
<span className="font-mono text-fg font-bold">Custom Tokens</span>
<span className="text-xs text-muted">Created on Orama via WASM contracts</span>
</div>
</div>
</div>
</DashedPanel>
</div>
</AnimateIn>
</Section>
<Section padding="none">
<CrosshairDivider />
</Section>
{/* ── Front-Running Prevention ──────────────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-6">
<SectionHeader
title="Security"
subtitle="Front-running prevention and price manipulation resistance built into the protocol."
/>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<a
href="https://aerodrome.finance"
target="_blank"
rel="noopener noreferrer"
>
<DashedPanel
withCorners
withBackground
className="hover:border-fg/30 transition-colors"
>
<div className="flex flex-col gap-3">
<div className="flex items-center justify-between">
<span className="font-display font-semibold text-fg text-lg">
Aerodrome Finance
</span>
<SilverBadge variant="status">LIVE</SilverBadge>
</div>
<p className="text-sm text-muted">
Trade $ORAMA on Base via Aerodrome Finance, the leading DEX
on the Base network.
</p>
<span
className="inline-flex items-center gap-1.5 text-xs font-mono"
style={{ color: SILVER.light }}
>
Trade on Aerodrome
<ExternalLink className="w-3.5 h-3.5" />
</span>
</div>
</DashedPanel>
</a>
<a
href="https://app.uniswap.org"
target="_blank"
rel="noopener noreferrer"
>
<DashedPanel
withCorners
withBackground
className="hover:border-fg/30 transition-colors"
>
<div className="flex flex-col gap-3">
<div className="flex items-center justify-between">
<span className="font-display font-semibold text-fg text-lg">
Uniswap
</span>
<SilverBadge variant="status">LIVE</SilverBadge>
</div>
<p className="text-sm text-muted">
Swap $ORAMA on Ethereum mainnet via Uniswap, the most widely
used decentralized exchange.
</p>
<span
className="inline-flex items-center gap-1.5 text-xs font-mono"
style={{ color: SILVER.light }}
>
Trade on Uniswap
<ExternalLink className="w-3.5 h-3.5" />
</span>
</div>
</DashedPanel>
</a>
<DashedPanel withBackground>
<div className="flex flex-col gap-3 p-4">
<h3 className="font-display font-bold text-fg text-sm">Randomized Order Processing</h3>
<p className="text-xs text-muted leading-relaxed">
Order book transactions within the same block are processed in randomized order,
not by gas price. This eliminates MEV (Miner Extractable Value) block proposers
cannot reorder transactions to front-run traders.
</p>
</div>
</DashedPanel>
<DashedPanel withBackground>
<div className="flex flex-col gap-3 p-4">
<h3 className="font-display font-bold text-fg text-sm">Bonding Curve Reference Price</h3>
<p className="text-xs text-muted leading-relaxed">
The bonding curve provides a mathematical reference price that cannot be manipulated
by wash trading on the order book. The curve's price is deterministic based on total
tokens sold pure math, not market games.
</p>
</div>
</DashedPanel>
</div>
</div>
</AnimateIn>
@ -358,7 +385,7 @@ export default function Dex() {
Start Trading
</h2>
<p className="text-muted max-w-lg leading-relaxed">
Connect your wallet to swap tokens on the Orama L1 chain.
Connect your RootWallet to trade $ORAMA/BTC on the protocol-native order book.
</p>
<SilverButton size="lg" disabled className="opacity-50 cursor-not-allowed">
Coming Soon

View File

@ -33,7 +33,6 @@ import {
HardDrive,
} from "lucide-react";
import debrosIcon from "../assets/debrosnet.png";
import { Redacted } from "../components/ui/redacted";
const NetworkVisualization = lazy(() =>
import("../components/landing/network-visualization").then((m) => ({
@ -150,7 +149,7 @@ function HomeHero() {
<div className="relative z-10 flex items-center gap-2 mt-2">
<span className="w-2.5 h-2.5 rounded-full bg-emerald-400 animate-pulse-dot" />
<span className="text-xs font-mono text-muted tracking-wider uppercase">
Devnet Live 50+ Nodes Online
Testnet Live 300 Nodes Required for Genesis
</span>
</div>
@ -201,33 +200,11 @@ function InvestorSection() {
</h2>
<p className="text-muted leading-relaxed text-sm">
We're raising <Redacted /> BTC to bring Orama Network to mainnet
<Redacted /> from node licenses and <Redacted /> from
a token pre-sale. Paid in BTC.
210M $ORAMA zero pre-mine, 100% mined. Era 1 block reward is 100 $ORAMA
with Bitcoin-style halving every 2 years. BTC-only economy. No ETH, no SOL,
no stablecoins. Run a node, earn tokens the only way to get $ORAMA.
</p>
{/* Fundraise bar */}
<DashedPanel withCorners withBackground>
<div className="flex flex-col gap-3 p-3">
<div className="flex items-center justify-between">
<span className="text-xs font-mono text-muted tracking-wider uppercase">Total Fundraise</span>
<span className="text-xs font-mono text-muted">
<Redacted /> <span style={{ color: "#F7931A" }}>BTC</span> / <Redacted /> <span style={{ color: "#F7931A" }}>BTC</span>
</span>
</div>
<div className="h-2 bg-surface-2 rounded-full overflow-hidden">
<div
className="h-full rounded-full transition-all duration-1000"
style={{ width: "1%", background: SILVER.gradient }}
/>
</div>
<div className="flex items-center justify-between text-xs font-mono text-muted">
<span><Redacted /> raised</span>
<span>Goal: Mainnet by 2028</span>
</div>
</div>
</DashedPanel>
<div className="flex flex-wrap gap-3">
<span className="silver-button inline-flex items-center justify-center font-mono font-semibold tracking-wider uppercase px-6 py-2.5 text-xs rounded-sm cursor-pointer text-black">
<Link to="/investors" className="flex items-center">
@ -252,23 +229,14 @@ function InvestorSection() {
<div className="flex items-center justify-between">
<div>
<span className="text-xs font-mono text-muted tracking-wider uppercase block">Node Licenses</span>
<span className="font-display font-bold text-fg"><Redacted /> available</span>
<span className="font-display font-bold text-fg">Run a node, earn $ORAMA</span>
</div>
<span
className="font-display font-bold text-2xl"
style={{ background: SILVER.gradient, WebkitBackgroundClip: "text", WebkitTextFillColor: "transparent" }}
>
<Redacted /> BTC
</span>
</div>
<p className="text-xs text-muted">
Operate an Orama node. Earn $ORAMA rewards. Governance rights included.
Operate an Orama node. Earn $ORAMA block rewards based on Effective Power
(Stake x Contribution x Infrastructure). OramaOS nodes get a 1.5x multiplier.
</p>
<div className="flex items-center justify-between mt-1">
<div className="flex items-center gap-2">
<span className="text-xs font-mono text-muted">Pay with</span>
<span className="px-2 py-0.5 text-xs font-mono font-bold border border-border rounded" style={{ color: "#F7931A", borderColor: "#F7931A40" }}>BTC</span>
</div>
<div className="flex items-center justify-end mt-1">
<span className="inline-flex items-center justify-center font-mono font-semibold tracking-wider uppercase px-4 py-1.5 text-xs rounded-sm text-black opacity-50 pointer-events-none" style={{ background: SILVER.mid }}>
Coming Soon
</span>
@ -276,29 +244,21 @@ function InvestorSection() {
</div>
</DashedPanel>
{/* Token presale */}
{/* Bonding curve */}
<DashedPanel withCorners withBackground>
<div className="flex flex-col gap-3 p-3">
<div className="flex items-center justify-between">
<div>
<span className="text-xs font-mono text-muted tracking-wider uppercase block">Token Pre-Sale</span>
<span className="font-display font-bold text-fg"><Redacted /> $ORAMA</span>
<span className="text-xs font-mono text-muted tracking-wider uppercase block">Protocol Bonding Curve</span>
<span className="font-display font-bold text-fg">Buy $ORAMA with BTC</span>
</div>
<span
className="font-display font-bold text-2xl"
style={{ background: SILVER.gradient, WebkitBackgroundClip: "text", WebkitTextFillColor: "transparent" }}
>
<Redacted /> BTC
</span>
</div>
<p className="text-xs text-muted">
Buy $ORAMA before public launch. Trade from day 1 at mainnet. <Redacted /> vesting terms.
20% of block rewards flow into the bonding curve (capped at 21M $ORAMA).
Bridge BTC onto Orama and purchase $ORAMA at a mathematically determined price.
Early buyers pay less the price rises with demand.
</p>
<div className="flex items-center justify-between mt-1">
<div className="flex items-center gap-2">
<span className="text-xs font-mono text-muted">Pay with</span>
<span className="px-2 py-0.5 text-xs font-mono font-bold border border-border rounded" style={{ color: "#F7931A", borderColor: "#F7931A40" }}>BTC</span>
</div>
<div className="flex items-center justify-end mt-1">
<span className="inline-flex items-center justify-center font-mono font-semibold tracking-wider uppercase px-4 py-1.5 text-xs rounded-sm text-black opacity-50 pointer-events-none" style={{ background: SILVER.mid }}>
Coming Soon
</span>
@ -406,14 +366,14 @@ function HowItWorks() {
icon: Server,
title: "Nodes power the network",
description:
"Independent operators run nodes on servers worldwide. Each node contributes compute, storage, and bandwidth — and earns tokens for it.",
"Independent operators run nodes on servers worldwide. Each node contributes compute, storage, and bandwidth — and earns $ORAMA for it. OramaOS nodes get a 1.5x Infrastructure Multiplier.",
},
{
number: "02",
icon: Code,
title: "Developers deploy apps",
description:
"With one command, developers ship websites, APIs, databases, and functions to the network. Like Vercel or AWS, but decentralized and private.",
"With one command, developers ship websites, APIs, databases, and functions to the network. Write smart contracts in Rust, Go, TypeScript, or any WASM language.",
},
{
number: "03",
@ -572,32 +532,6 @@ function AnChatShowcase() {
</span>
</div>
<a
href="https://anchat.io/#token"
target="_blank"
rel="noopener noreferrer"
className="flex items-center gap-3 px-4 py-3 rounded-lg transition-all group"
style={{ background: `${cyan}08`, border: `1px solid ${cyan}20` }}
>
<span className="w-2 h-2 rounded-full animate-pulse-dot shrink-0" style={{ background: cyan }} />
<span className="text-xs font-mono text-fg tracking-wider">
<span style={{ color: cyan }}>$ANCHAT</span> token is live Staking available now
</span>
<ArrowRight className="w-3.5 h-3.5 ml-auto shrink-0 group-hover:translate-x-0.5 transition-all" style={{ color: `${cyan}80` }} />
</a>
<Link
to="/invest"
className="flex items-center gap-3 px-4 py-3 rounded-lg transition-all group"
style={{ background: SILVER.bg, border: `1px solid ${SILVER.border}` }}
>
<Coins className="w-4 h-4 shrink-0" style={{ color: SILVER.light }} />
<span className="text-xs font-mono text-fg tracking-wider">
<span style={{ color: SILVER.light }}>$ANCHAT holders</span> Claim <Redacted /> of your holdings as $ORAMA
</span>
<ArrowRight className="w-3.5 h-3.5 ml-auto shrink-0 group-hover:translate-x-0.5 transition-all" style={{ color: SILVER.mid }} />
</Link>
<div className="flex flex-wrap gap-3">
<a
href="https://anchat.io"
@ -655,14 +589,14 @@ function AnChatShowcase() {
*/
function BlockchainSection() {
const features = [
{ icon: Coins, title: "Staking", description: "Operators stake $ORAMA to run nodes. Rewards based on uptime, compute, and bandwidth." },
{ icon: Vote, title: "Governance", description: "Token holders vote on proposals, treasury, and protocol upgrades via on-chain DAO." },
{ icon: Wallet, title: "AI Agent Payments", description: "Native payment rails between AI agents — autonomous transactions on the network." },
{ icon: Shield, title: "Proof of Infrastructure", description: "Primary consensus: nodes earn by doing real work. Uptime and contribution beat capital. Power to the people." },
{ icon: Users, title: "Proof of Angels", description: "AI agents (Angels) validated on-chain. Earn rewards for compute and intelligence." },
{ icon: Repeat, title: "Launchpad & DEX", description: "Native swap and launchpad for projects building on Orama infrastructure." },
{ icon: Lock, title: "Private Transactions", description: "Choose zero-knowledge or public transactions. Privacy is a choice, not a restriction." },
{ icon: Code, title: "Developer Friendly", description: "Familiar tooling, EVM-compatible, powered by RootWallet for seamless onboarding." },
{ icon: Shield, title: "Hybrid Consensus", description: "Proof of Stake + Proof of Contribution + Proof of Infrastructure. Effective Power = Stake x (1 + Contribution) x Infrastructure Multiplier." },
{ icon: Vote, title: "On-Chain Governance", description: "NFT holders (75% voting power) + token holders (25% quadratic). Three governance tiers: emergency (24h), protocol (3 days), constitutional (14 days)." },
{ icon: Wallet, title: "BTC-Only Economy", description: "Only two assets: BTC and $ORAMA. Native BTC bridge with 0.25% fee. Protocol-native order book for $ORAMA/BTC. No ETH, no SOL, no stablecoins." },
{ icon: Coins, title: "210M Hard Cap", description: "Zero pre-mine, 100% mined. Era 1 = 100 $ORAMA/block. Bitcoin-style halving every 2 years. 80% to miner, 20% to bonding curve." },
{ icon: Lock, title: "PLONK zk-SNARKs", description: "Per-transaction public/private toggle. Private mode hides sender, receiver, and amount. 4x gas for private transactions. Universal trusted setup." },
{ icon: Code, title: "Pure WASM VM", description: "Write smart contracts in Rust, Go, TypeScript, C++, or any WASM language. No EVM, no Solidity required." },
{ icon: Repeat, title: "Native DEX", description: "Protocol-native order book for $ORAMA/BTC. Not an AMM — pure price discovery. Randomized ordering prevents front-running." },
{ icon: Users, title: "AI Marketplace", description: "Host AI models and Angels (autonomous agents) on-chain. Compute providers capped at 10% of network nodes. Pay per use in $ORAMA." },
];
return (
@ -681,18 +615,19 @@ function BlockchainSection() {
Most blockchains are financial ledgers. Orama's L1 is built for
<span className="text-fg font-semibold"> infrastructure and AI</span> Proof of Infrastructure
rewards real work over staked capital, Proof of Stake provides economic
security, and Proof of Angels adds AI-powered threat detection.
security, and Proof of Contribution measures uptime, bandwidth, and compute every epoch.
</p>
<p className="text-muted leading-relaxed">
Transactions can be zero-knowledge or public your choice.
AI agents pay each other natively. Developers get familiar EVM tooling
powered by <span className="text-fg font-semibold">RootWallet</span> for
Transactions can be private (PLONK zk-SNARKs) or public your choice.
AI agents transact natively. Developers write smart contracts in Rust, Go, TypeScript,
or any language that compiles to WASM. Powered by <span className="text-fg font-semibold">RootWallet</span> for
seamless wallet onboarding.
</p>
<p className="text-muted leading-relaxed">
The $ORAMA token coordinates everything: operators stake to run nodes,
developers pay for resources, AI agents transact autonomously, and the
DAO governs how the network evolves.
developers pay for resources, AI agents transact autonomously, and
on-chain governance decides how the network evolves. 6-second block time,
1-hour epoch finality via BFT checkpoints.
</p>
<Button asChild variant="ghost" size="default" className="w-fit">
<Link to="/blockchain">
@ -726,9 +661,9 @@ function BlockchainSection() {
*/
function ComputeSection() {
const services = [
{ icon: Database, title: "Distributed SQL", description: "RQLite-backed database with Raft consensus and automatic replication." },
{ icon: HardDrive, title: "File Storage", description: "IPFS-powered content-addressed storage distributed across the network." },
{ icon: Cpu, title: "Serverless Functions", description: "Deploy WASM and Go functions that execute across the node mesh." },
{ icon: Database, title: "Distributed SQL", description: "On-chain SQL database primitive with Raft consensus and automatic replication across the node mesh." },
{ icon: HardDrive, title: "IPFS + KV Storage", description: "Content-addressed IPFS storage and key-value store distributed across the network. 10,000 rays/MB (IPFS), 200 rays/op (KV)." },
{ icon: Cpu, title: "Serverless WASM", description: "Deploy WASM functions in Rust, Go, TypeScript, C++ — execute across the node mesh. 1,000 rays per 1M instructions." },
{ icon: Globe, title: "DNS", description: "Decentralized CoreDNS — your domains resolve through the network." },
{ icon: Layers, title: "In-Memory Cache", description: "Olric distributed cache with namespace isolation and auto-replication." },
{ icon: Users, title: "PubSub & WebRTC", description: "Real-time messaging and peer-to-peer communication built in." },
@ -788,6 +723,15 @@ function ComputeSection() {
8. ORAMA ONE Hardware Node
*/
function OramaOneSection() {
const specs = [
{ label: "CPU", value: "4+ cores, 2.0+ GHz (ARM or x86)" },
{ label: "RAM", value: "8 GB" },
{ label: "Storage", value: "256 GB NVMe SSD" },
{ label: "Network", value: "1 Gbps Ethernet" },
{ label: "TPM", value: "TPM 2.0 for OramaOS attestation" },
{ label: "Power", value: "Under 25W continuous" },
];
return (
<Section>
<AnimateIn>
@ -812,13 +756,14 @@ function OramaOneSection() {
</h2>
<p className="text-muted text-sm leading-relaxed max-w-lg">
The heart of the blockchain and the compute layer. A purpose-built
The heart of the blockchain and the compute layer. A purpose-built, 3D-printed
hardware node designed to power the Orama Network plug in, connect,
and start contributing to the decentralized cloud.
and start earning $ORAMA. Fanless, compact, and silent. Open-source hardware
so anyone can build their own.
</p>
<div className="flex flex-wrap gap-2 justify-center">
{["Plug & Earn", "Silent Operation", "Built for 24/7"].map((label) => (
{["Plug & Earn", "Silent & Fanless", "Open-Source Hardware", "OramaOS 1.5x Multiplier"].map((label) => (
<span
key={label}
className="inline-flex items-center px-3 py-1 text-xs font-mono tracking-wider rounded-full"
@ -829,6 +774,21 @@ function OramaOneSection() {
))}
</div>
<div className="grid grid-cols-2 sm:grid-cols-3 gap-3 max-w-lg w-full mt-2">
{specs.map((s) => (
<div
key={s.label}
className="flex flex-col gap-1 p-3 rounded-sm text-left"
style={{ border: `1px solid ${SILVER.border}`, background: SILVER.bg }}
>
<span className="text-[10px] font-mono tracking-wider uppercase" style={{ color: SILVER.mid }}>
{s.label}
</span>
<span className="text-xs font-mono text-fg">{s.value}</span>
</div>
))}
</div>
<p className="text-xs font-mono text-muted/50 tracking-wider uppercase mt-4">
Coming soon details to be announced
</p>
@ -848,7 +808,7 @@ function OramaOneSection() {
}
/*
9. ROADMAP Interactive timeline
9. ROADMAP Milestone-based (no specific years)
*/
function Roadmap() {
const [activeIndex, setActiveIndex] = useState(0);
@ -856,49 +816,60 @@ function Roadmap() {
const milestones = [
{
status: "live" as const,
phase: "Phase 1",
title: "Network Beta",
phase: "Testnet",
title: "Network Launch",
items: [
"50+ nodes across devnet and testnet",
"AnChat Lite — closed beta for DeBros NFT holders",
"Network live — no staking required to run a node",
"Node runners begin earning $ORAMA block rewards",
"Full infrastructure stack (SQL, Cache, Storage, PubSub, DNS)",
"Orama Proxy integration",
"PLONK trusted setup ceremony",
"Bug bounty program",
],
},
{
status: "building" as const,
phase: "Phase 2",
title: "Devnet & L1 Blockchain",
phase: "Testnet Expansion",
title: "AI & Commerce",
items: [
"Devnet and testnet deployment",
"L1 blockchain development — proof of infrastructure",
"$ORAMA token pre-sale",
"Node license sales",
"RootWallet integration",
"AI Marketplace beta — host and consume AI models",
"Angels framework — autonomous AI agents on-chain",
"Compute provider registration",
"Orama One pre-orders",
],
},
{
status: "planned" as const,
phase: "Phase 3",
title: "Scale",
phase: "Testnet Maturity",
title: "300-Node Threshold",
items: [
"Node license holders become operators",
"Operators start earning $ORAMA rewards",
"AI agent layer — proof of angels",
"Launchpad & DEX go live",
"Developer waitlist opens for deployment",
"Target 300 verified independent nodes for genesis",
"DeBros NFT migration preparation (Solana snapshot)",
"Bonding curve live on testnet",
"Native order book testing ($ORAMA/BTC)",
],
},
{
status: "planned" as const,
phase: "Phase 4",
title: "Mainnet (2028)",
phase: "Mainnet",
title: "Full Production Launch",
items: [
"Full mainnet launch",
"Token pre-sale holders can trade from day 1",
"Complete decentralization — no central authority",
"Cross-chain bridges",
"The cloud, replaced",
"BTC bridge live — deposit and withdraw BTC",
"Native DEX live — protocol order book for $ORAMA/BTC",
"Staking activated (1,000 $ORAMA minimum)",
"DeBros NFT bridge revenue begins",
"On-chain governance live",
],
},
{
status: "planned" as const,
phase: "Post-Launch",
title: "Long-Term Evolution",
items: [
"L2 rollup support (optimistic and zk)",
"AI Marketplace expansion",
"Post-quantum signature upgrade",
"Orama One general availability",
"Bonding curve sunset when organic liquidity is sufficient",
],
},
];
@ -916,7 +887,7 @@ function Roadmap() {
<AnimateIn>
<SectionHeader
title="Roadmap"
subtitle="Where we are and where we're going."
subtitle="Milestone-based — mainnet launches when 300 nodes are verified."
/>
</AnimateIn>
@ -1087,19 +1058,27 @@ function FAQ() {
const faqs = [
{
question: "Is Orama Network live or still in development?",
answer: "The network is live with 50+ nodes running across three environments. AnChat, a fully decentralized messenger, is the first production app running on it. The developer platform, playground, and infrastructure stack (databases, caching, storage, DNS, serverless) are all operational. The L1 blockchain and public node onboarding are currently in development.",
answer: "The testnet is live with nodes running across multiple environments. AnChat, a fully decentralized messenger, is the first production app running on it. The developer platform, playground, and infrastructure stack (databases, caching, storage, DNS, serverless) are all operational. Mainnet launches when 300 independent nodes are verified — no shortcuts, no exceptions.",
},
{
question: "How is Orama different from Akash, Filecoin, or other DePIN projects?",
answer: "Most decentralized infrastructure projects solve one piece — Filecoin does storage, Akash does compute. Orama is a full cloud platform: databases, caching, DNS, pub/sub, serverless, file storage, and compute — all in one network. Plus, it has its own L1 blockchain for coordination and a built-in privacy layer via Orama Proxy. Developers deploy real apps, not just smart contracts.",
answer: "Most decentralized infrastructure projects solve one piece — Filecoin does storage, Akash does compute. Orama is a full cloud platform: databases, caching, DNS, pub/sub, serverless, file storage, and compute — all in one network. Plus, it has its own L1 blockchain with pure WASM smart contracts, a native BTC bridge, per-transaction zk-SNARK privacy, and a built-in AI Marketplace. Developers deploy real apps, not just smart contracts.",
},
{
question: "What is the $ORAMA token used for?",
answer: "$ORAMA is the coordination layer of the network. Operators stake it to run nodes and earn rewards. Developers use it to pay for compute, storage, and bandwidth. Token holders vote on governance proposals and treasury decisions. It's utility-first — the token exists because the network needs it, not the other way around.",
answer: "$ORAMA is the native token with a 210M hard cap and zero pre-mine — 100% mined by running nodes. Operators stake it (1,000 minimum at mainnet) to validate blocks. Developers pay for compute, storage, and bandwidth in $ORAMA. Base fees are burned, making the token increasingly deflationary as usage grows. The only way to acquire $ORAMA is to mine it by running a node or buy it with BTC on the native order book or bonding curve.",
},
{
question: "Can I run a node today?",
answer: "Not yet publicly. Node onboarding is currently invite-only while we finalize the operator tooling and reward mechanics. Join the waitlist via our Telegram (t.me/debrosportal) to get notified when public onboarding opens — early operators will receive bonus reward multipliers.",
answer: "During testnet, no staking is required to run a node. Any operator can participate and earn $ORAMA block rewards with zero stake. Testnet tokens are real — they carry over to mainnet with no reset. Join the waitlist via our Telegram (t.me/debrosportal) to get notified when public onboarding opens.",
},
{
question: "What programming languages can I use for smart contracts?",
answer: "Orama uses a pure WASM virtual machine — no EVM, no Solidity. You can write smart contracts in any language that compiles to WebAssembly: Rust, Go, TypeScript, C++, and more. This gives developers full freedom to use the languages and tools they already know.",
},
{
question: "What is the BTC-only economy?",
answer: "Orama has exactly two assets: BTC and $ORAMA. No stablecoins, no wrapped altcoins, no fiat pegs. To acquire $ORAMA, you bridge BTC onto Orama and trade on the native order book or bonding curve. This creates zero counterparty risk beyond Bitcoin itself and makes Orama's economy entirely self-contained.",
},
{
question: "Who is behind Orama Network?",
@ -1163,7 +1142,7 @@ function FinalCTA() {
<DashedPanel withCorners withBackground>
<div className="flex flex-col items-center text-center gap-6 py-8">
<Badge variant="outline" className="w-fit">
EARLY ACCESS
TESTNET LIVE
</Badge>
<h2 className="font-display font-bold text-2xl lg:text-3xl text-fg">
@ -1173,8 +1152,8 @@ function FinalCTA() {
</h2>
<p className="text-muted max-w-lg leading-relaxed">
Whether you're an investor backing the future of infrastructure
or a developer ready to build on it now is the time.
No tokens to buy beforehand. No presale to miss. Run a node, earn $ORAMA,
and be part of the only blockchain where everyone starts equal.
</p>
<div className="flex flex-wrap items-center gap-3 justify-center">

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,6 @@ import { DashedPanel } from "../components/ui/dashed-panel";
import { AnimateIn } from "../components/ui/animate-in";
import { CrosshairDivider } from "../components/ui/crosshair-divider";
import { SILVER, SilverBadge, SilverButton, SilverMetric } from "../components/ui/silver-theme";
import { Redacted } from "../components/ui/redacted";
/* ── Types ── */
interface LaunchToken {
@ -93,13 +92,13 @@ function BondingBar() {
/>
</div>
<span className="text-[10px] font-mono text-zinc-500 w-8 text-right">
<Redacted />
</span>
</div>
);
}
/* ── Token Card (pump.fun style) ── */
/* ── Token Card ── */
function TokenCard({ token }: { token: LaunchToken }) {
return (
<Link
@ -108,7 +107,6 @@ function TokenCard({ token }: { token: LaunchToken }) {
style={{ border: `1px dashed ${SILVER.border}` }}
>
<div className="flex flex-col gap-3">
{/* Header */}
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<span className="text-lg">{token.emoji}</span>
@ -127,22 +125,19 @@ function TokenCard({ token }: { token: LaunchToken }) {
)}
</div>
{/* Price + Change */}
<div className="flex items-baseline justify-between">
<span className="font-mono text-lg font-semibold text-fg">
<Redacted />
</span>
<span className="text-sm font-mono font-semibold text-zinc-500">
<Redacted />
</span>
</div>
{/* Bonding curve */}
{!token.graduated && <BondingBar />}
{/* Footer stats */}
<div className="flex items-center justify-between text-[10px] font-mono text-zinc-500">
<span>MCap <Redacted /></span>
<span>MCap </span>
<span className="flex items-center gap-1">
<Users className="w-2.5 h-2.5" />
{token.holders}
@ -260,8 +255,8 @@ export default function Launchpad() {
</span>
</h1>
<p className="text-muted text-lg leading-relaxed max-w-xl">
Create a token on Orama L1 in seconds. Bonding curve pricing,
automatic liquidity, instant DEX listing. No VCs, no gatekeepers.
Create a token on Orama L1 as a WASM smart contract. Bonding curve pricing,
automatic liquidity, trading against $ORAMA. No VCs, no gatekeepers.
</p>
{/* Live hero stats */}
@ -272,13 +267,13 @@ export default function Launchpad() {
background: SILVER.bg,
}}
>
<SilverMetric label="Tokens Launched" value={<Redacted />} />
<SilverMetric label="Tokens Launched" value="—" />
<div className="w-px h-10 bg-zinc-800 hidden sm:block" />
<SilverMetric label="Total Volume" value={<Redacted />} />
<SilverMetric label="Total Volume" value="—" />
<div className="w-px h-10 bg-zinc-800 hidden sm:block" />
<SilverMetric label="Graduated" value={<Redacted />} />
<SilverMetric label="Graduated" value="—" />
<div className="w-px h-10 bg-zinc-800 hidden sm:block" />
<SilverMetric label="Active Now" value={<Redacted />} />
<SilverMetric label="Active Now" value="—" />
</div>
<div className="flex flex-wrap gap-3 pt-2">
@ -390,7 +385,7 @@ export default function Launchpad() {
<div className="flex flex-col gap-8">
<SectionHeader
title="Launch Your Token"
subtitle={<>Deploy in seconds. Bonding curve pricing starts at <Redacted />. Graduates to DEX at <Redacted /> market cap.</>}
subtitle={<>Deploy a WASM smart contract in seconds. Trades against $ORAMA. Cost in rays.</>}
/>
<div className="grid grid-cols-1 md:grid-cols-5 gap-8">
@ -426,7 +421,7 @@ export default function Launchpad() {
</div>
<div>
<label className="text-xs font-mono text-muted uppercase tracking-wider mb-2 block">
Initial Buy
Initial Buy ($ORAMA)
</label>
<input
type="text"
@ -457,7 +452,7 @@ export default function Launchpad() {
</SilverButton>
<p className="text-xs text-muted text-center">
Cost: <Redacted /> $ORAMA &middot; Requires wallet connection
Cost: TBD &middot; Requires RootWallet connection
</p>
</div>
</DashedPanel>
@ -474,32 +469,32 @@ export default function Launchpad() {
<div className="flex items-start gap-3">
<span className="font-mono text-xs text-zinc-500 shrink-0 w-5 h-5 flex items-center justify-center border border-dashed" style={{ borderColor: SILVER.dark }}>1</span>
<div>
<span className="text-sm text-fg font-semibold block">Create</span>
<span className="text-xs text-muted">Pick a name, ticker, and make an initial buy</span>
<span className="text-sm text-fg font-semibold block">Create WASM Contract</span>
<span className="text-xs text-muted">Pick a name, ticker, and make an initial buy in $ORAMA</span>
</div>
</div>
<div className="flex items-start gap-3">
<span className="font-mono text-xs text-zinc-500 shrink-0 w-5 h-5 flex items-center justify-center border border-dashed" style={{ borderColor: SILVER.dark }}>2</span>
<div>
<span className="text-sm text-fg font-semibold block">Trade</span>
<span className="text-xs text-muted">Anyone can buy/sell on the bonding curve immediately</span>
<span className="text-sm text-fg font-semibold block">Trade Against $ORAMA</span>
<span className="text-xs text-muted">Anyone can buy/sell on the bonding curve immediately, paying in $ORAMA</span>
</div>
</div>
<div className="flex items-start gap-3">
<span className="font-mono text-xs text-zinc-500 shrink-0 w-5 h-5 flex items-center justify-center border border-dashed" style={{ borderColor: SILVER.dark }}>3</span>
<div>
<span className="text-sm text-fg font-semibold block">Graduate</span>
<span className="text-xs text-muted">At <Redacted /> market cap, liquidity auto-deposits to Orama DEX</span>
<span className="text-xs text-muted">At graduation threshold, liquidity auto-deposits to permissionless WASM DEX</span>
</div>
</div>
</div>
<div className="border-t border-dashed pt-4 flex flex-col gap-2" style={{ borderColor: SILVER.border }}>
<span className="text-xs font-mono text-zinc-500">BONDING CURVE</span>
<span className="text-xs font-mono text-zinc-500">ASSET HIERARCHY</span>
<p className="text-xs text-muted leading-relaxed">
Every token starts with a bonding curve. Price increases as
more people buy. When market cap reaches <Redacted />, all liquidity
is deposited into the Orama DEX and the token is freely tradable.
Custom tokens trade against $ORAMA (not BTC directly).
$ORAMA trades against BTC on the protocol-native order book.
This creates a clear asset hierarchy: BTC &harr; $ORAMA &harr; Custom Tokens.
</p>
</div>
</div>
@ -523,7 +518,7 @@ export default function Launchpad() {
Ready to launch?
</h2>
<p className="text-muted max-w-lg leading-relaxed">
The next 100x token is one click away.
Deploy your token as a WASM smart contract on Orama L1.
</p>
<Link to="/dashboard">
<SilverButton size="lg">Get Started</SilverButton>

View File

@ -10,7 +10,6 @@ import { Button } from "../components/ui/button";
import { SpecTable } from "../components/ui/spec-table";
import { CrosshairDivider } from "../components/ui/crosshair-divider";
import { AnimateIn } from "../components/ui/animate-in";
import { Redacted } from "../components/ui/redacted";
interface PricingPlan {
name: string;
@ -28,11 +27,11 @@ const PLANS: PricingPlan[] = [
badge: "FREE",
period: "/mo",
features: [
<><Redacted /> requests/hour</>,
<><Redacted /> requests/day</>,
<><Redacted /> deployment (static only)</>,
<><Redacted /> storage (IPFS)</>,
<><Redacted /> database queries/min</>,
"100 requests/hour",
"2,400 requests/day",
"1 deployment (static only)",
"100 MB storage (IPFS)",
"10 database queries/min",
"Community support",
],
cta: "Start Free",
@ -43,12 +42,12 @@ const PLANS: PricingPlan[] = [
badge: "DEV",
period: "/mo",
features: [
<><Redacted /> requests/hour</>,
<><Redacted /> deployments (static + SSR)</>,
<><Redacted /> storage (IPFS)</>,
<><Redacted /> database queries/min</>,
<><Redacted /> cache (Olric)</>,
<><Redacted /> serverless invocations/min</>,
"1,000 requests/hour",
"3 deployments (static + SSR)",
"1 GB storage (IPFS)",
"100 database queries/min",
"256 MB cache (Olric)",
"100 serverless invocations/min",
"Email support",
],
cta: "Get Started",
@ -60,12 +59,12 @@ const PLANS: PricingPlan[] = [
period: "/mo",
highlighted: true,
features: [
<><Redacted /> requests/hour</>,
<><Redacted /> deployments (all types)</>,
<><Redacted /> storage (IPFS)</>,
<><Redacted /> database queries/min</>,
<><Redacted /> cache (Olric)</>,
<><Redacted /> serverless invocations/min</>,
"10,000 requests/hour",
"10 deployments (all types)",
"10 GB storage (IPFS)",
"1,000 database queries/min",
"1 GB cache (Olric)",
"1,000 serverless invocations/min",
"Custom domains",
"Priority support",
],
@ -79,9 +78,9 @@ const PLANS: PricingPlan[] = [
features: [
"Unlimited requests",
"Unlimited deployments",
<><Redacted /> storage</>,
"100 GB storage",
"Unlimited queries",
<><Redacted /> cache</>,
"10 GB cache",
"Unlimited serverless",
"Dedicated nodes",
"SLA guarantee",
@ -92,12 +91,13 @@ const PLANS: PricingPlan[] = [
];
const PAY_PER_USE_ROWS = [
{ label: "Requests", value: <><Redacted /> per requests</> },
{ label: "Storage", value: <><Redacted /> per GB/month</> },
{ label: "Database", value: <><Redacted /> per queries</> },
{ label: "Cache", value: <><Redacted /> per GB/month</> },
{ label: "Serverless", value: <><Redacted /> per invocations</> },
{ label: "Bandwidth", value: <><Redacted /> per GB</> },
{ label: "$ORAMA / BTC Transfer", value: "1,000 rays (0.001 $ORAMA)" },
{ label: "SQL Query", value: "500 rays" },
{ label: "IPFS Storage", value: "10,000 rays per MB" },
{ label: "KV Store Read/Write", value: "200 rays" },
{ label: "WASM Execution", value: "1,000 rays per 1M instructions" },
{ label: "DEX Order Book Trade", value: "1,000 rays" },
{ label: "Private Transaction (zk-SNARK)", value: "4x the public equivalent" },
];
interface FaqItem {
@ -215,7 +215,7 @@ export default function Pricing() {
<div className="flex items-baseline gap-1">
<span className="font-mono text-3xl font-bold text-fg">
<Redacted />
{plan.name === "Free" ? "$0" : plan.name === "Developer" ? "$5" : plan.name === "Pro" ? "$25" : "Custom"}
</span>
{plan.period && (
<span className="text-muted text-sm">{plan.period}</span>
@ -269,9 +269,26 @@ export default function Pricing() {
<SpecTable rows={PAY_PER_USE_ROWS} />
</AnimateIn>
<p className="text-xs text-muted italic text-center">
All prices payable in $ORAMA or BTC. Payments processed
on-chain via smart contracts.
1 $ORAMA = 1,000,000 rays. All fees in $ORAMA. Base fee burned. Priority fee to block proposer.
</p>
<AnimateIn>
<DashedPanel withBackground className="mt-4">
<div className="flex flex-col gap-3 p-4">
<span className="font-display font-semibold text-fg text-sm">Congestion Multiplier (EIP-1559 style)</span>
<p className="text-xs text-muted leading-relaxed">
Fees adjust dynamically based on block fullness. At 50% capacity (~500 transactions per block),
the multiplier is 1x. As blocks fill toward the 1,000 transaction limit, the multiplier rises
(up to 10x). When blocks are under half full, it drops below 1x. This prevents spam during
peak demand and keeps fees low during normal usage.
</p>
<div className="flex flex-wrap gap-4 text-xs font-mono text-muted">
<span>Base fee &rarr; burned</span>
<span>Priority fee &rarr; block proposer</span>
<span>Fee schedule &rarr; governance-adjustable</span>
</div>
</div>
</DashedPanel>
</AnimateIn>
</div>
</Section>

View File

@ -98,42 +98,37 @@ function SlashCanvas() {
const terminalLines = [
{ prefix: "$", text: "rw init" },
{ prefix: "", text: "Generating BIP-39 mnemonic... done" },
{ prefix: "", text: "Deriving HD wallet... done" },
{ prefix: "✓", text: "Wallet initialized: 0x7a3b...f29d" },
{ prefix: "\u2192", text: "Generating BIP-39 mnemonic... done" },
{ prefix: "\u2192", text: "Deriving HD wallet... done" },
{ prefix: "\u2713", text: "Wallet initialized: orama1q7a3b...f29d" },
{ prefix: "", text: "" },
{ prefix: "$", text: "rw balance" },
{ prefix: "→", text: "ETH: 1.247 ETH" },
{ prefix: "→", text: "SOL: 42.5 SOL" },
{ prefix: "→", text: "BASE: 0.89 ETH" },
{ prefix: "\u2192", text: "ORAMA: 3,840.00 $ORAMA (Orama L1)" },
{ prefix: "\u2192", text: "BTC: 0.025 BTC (bridged)" },
{ prefix: "\u2192", text: "ETH: 1.247 ETH" },
{ prefix: "\u2192", text: "SOL: 42.5 SOL" },
{ prefix: "", text: "" },
{ prefix: "$", text: "rw governance vote --proposal 42 --yes" },
{ prefix: "\u2192", text: "Casting vote with NFT governance power..." },
{ prefix: "\u2713", text: "Vote recorded on-chain (Tier 2 proposal)" },
{ prefix: "", text: "" },
{ prefix: "$", text: "rw password store database-prod" },
{ prefix: "→", text: "Splitting secret with Shamir's SSS (K=3, N=5)" },
{ prefix: "→", text: "Distributing to Orama Vault... done" },
{ prefix: "✓", text: "Password stored: database-prod" },
{ prefix: "", text: "" },
{ prefix: "$", text: "rw password get database-prod" },
{ prefix: "→", text: "Collecting shares from vault..." },
{ prefix: "→", text: "Received 3/5 shares (threshold met)" },
{ prefix: "✓", text: "Password retrieved" },
{ prefix: "\u2192", text: "Splitting secret with Shamir's SSS (K=3, N=5)" },
{ prefix: "\u2192", text: "Distributing to Orama Vault... done" },
{ prefix: "\u2713", text: "Password stored: database-prod" },
{ prefix: "", text: "" },
{ prefix: "$", text: "rw ssh generate production-server" },
{ prefix: "→", text: "Generating Ed25519 key pair... done" },
{ prefix: "→", text: "Storing private key in vault... done" },
{ prefix: "✓", text: "SSH key stored: production-server" },
{ prefix: "", text: "" },
{ prefix: "$", text: "rw ssh connect production-server" },
{ prefix: "→", text: "Retrieving key from vault..." },
{ prefix: "→", text: "Connecting to production-server..." },
{ prefix: "✓", text: "Connected" },
{ prefix: "\u2192", text: "Generating Ed25519 key pair... done" },
{ prefix: "\u2192", text: "Storing private key in vault... done" },
{ prefix: "\u2713", text: "SSH key stored: production-server" },
];
const features = [
{
icon: <Wallet className="w-5 h-5 text-fg" />,
title: "Wallet",
title: "Orama L1 Native",
description:
"BIP-39 HD wallet. EVM chains + Solana. Derive addresses from a single seed phrase.",
"The official wallet of Orama Network from day one. Send $ORAMA, bridge BTC, trade on the native DEX, and interact with WASM smart contracts.",
},
{
icon: <Lock className="w-5 h-5 text-fg" />,
@ -149,9 +144,9 @@ const features = [
},
{
icon: <LinkIcon className="w-5 h-5 text-fg" />,
title: "WalletConnect",
title: "Governance & NFTs",
description:
"Connect to any dApp via WalletConnect v2. Sign transactions from your terminal.",
"Cast governance votes, receive NFT bridge fee revenue, and manage DeBros NFTs — all from RootWallet.",
},
{
icon: <TerminalIcon className="w-5 h-5 text-fg" />,
@ -163,19 +158,21 @@ const features = [
icon: <Layers className="w-5 h-5 text-fg" />,
title: "Multi-Chain",
description:
"Support for EVM chains (Ethereum, Base, Polygon, etc.) and Solana. One wallet, every chain.",
"Orama L1 (primary), Bitcoin, EVM chains (Ethereum, Base, Polygon), and Solana. One wallet, every chain.",
},
];
const sdkCode = `import { useWallet } from '@debros/rootwallet-sdk'
function App() {
const { address, balance, signTransaction } = useWallet()
const { address, balance, signTransaction } = useWallet({
chain: 'orama' // Primary: Orama L1
})
return (
<div>
<p>Connected: {address}</p>
<p>Balance: {balance} ETH</p>
<p>Balance: {balance} $ORAMA</p>
<button onClick={() => signTransaction(tx)}>
Sign Transaction
</button>
@ -252,7 +249,7 @@ export default function RootWallet() {
<div className="flex flex-col gap-8">
<SectionHeader
title="What is RootWallet"
subtitle="One tool for wallets, passwords, and SSH keys — backed by decentralized secret storage."
subtitle="The official wallet of Orama Network from day one. Wallets, governance, passwords, and SSH keys — backed by decentralized secret storage."
/>
<div className="grid grid-cols-1 md:grid-cols-3 gap-0">
@ -262,9 +259,9 @@ export default function RootWallet() {
<h3 className="font-display font-semibold text-fg">Crypto Wallet</h3>
</div>
<ul className="text-sm text-muted space-y-1.5 pl-8">
<li>BIP-39 HD wallet from a single seed phrase</li>
<li>Ethereum, Base, Polygon, Solana</li>
<li>Send, receive, and sign transactions</li>
<li>Orama L1 + Bitcoin (primary chains)</li>
<li>EVM chains + Solana (secondary)</li>
<li>Native DEX trading, BTC bridge, governance</li>
</ul>
</div>

View File

@ -58,6 +58,34 @@ const url = await client.storage.getUrl('avatar.png')`,
'resize-image', { width: 800 }
)`,
},
{
name: "ai",
label: "AI Marketplace",
code: `const response = await client.ai.call(
'model-name', { prompt: 'Hello' }
)
// Deploy an Angel (autonomous AI agent)
await client.ai.deployAngel('my-agent', wasmBundle)`,
},
{
name: "bridge",
label: "BTC Bridge",
code: `// Deposit BTC to Orama
const deposit = await client.bridge.deposit(
{ amount: '0.01', from: 'btc' }
)
// Withdraw back to Bitcoin mainnet
await client.bridge.withdraw({ amount: '0.005' })`,
},
{
name: "dex",
label: "Native DEX",
code: `await client.dex.placeOrder({
pair: 'ORAMA/BTC', side: 'buy',
amount: '100', price: '0.000001'
})
const book = await client.dex.getOrderbook('ORAMA/BTC')`,
},
];
const quickstartLines = [

View File

@ -10,7 +10,7 @@ import { AnimateIn } from "../components/ui/animate-in";
/* ── Mock data ── */
type ServiceStatus = "operational" | "degraded" | "down";
type ServiceStatus = "operational" | "degraded" | "down" | "planned";
interface Service {
name: string;
@ -25,9 +25,12 @@ const services: Service[] = [
{ name: "Olric", status: "operational", uptime: "99.98%", responseTime: "3ms" },
{ name: "IPFS", status: "operational", uptime: "99.95%", responseTime: "45ms" },
{ name: "WireGuard", status: "operational", uptime: "100%", responseTime: "1ms" },
{ name: "Serverless", status: "operational", uptime: "99.97%", responseTime: "28ms" },
{ name: "Serverless (WASM)", status: "operational", uptime: "99.97%", responseTime: "28ms" },
{ name: "Vault", status: "operational", uptime: "100%", responseTime: "5ms" },
{ name: "Deployments", status: "degraded", uptime: "99.90%", responseTime: "120ms" },
{ name: "BTC Bridge", status: "planned", uptime: "—", responseTime: "—" },
{ name: "Native DEX", status: "planned", uptime: "—", responseTime: "—" },
{ name: "AI Marketplace", status: "planned", uptime: "—", responseTime: "—" },
];
const nodeStats = { total: 12, healthy: 10, degraded: 1, offline: 1 };
@ -37,12 +40,14 @@ const nodeStats = { total: 12, healthy: 10, degraded: 1, offline: 1 };
function statusToDot(s: ServiceStatus) {
if (s === "operational") return "active" as const;
if (s === "degraded") return "warning" as const;
if (s === "planned") return "warning" as const;
return "error" as const;
}
function statusLabel(s: ServiceStatus) {
if (s === "operational") return "Operational";
if (s === "degraded") return "Degraded";
if (s === "planned") return "Planned";
return "Down";
}
@ -186,7 +191,9 @@ export default function Status() {
? "text-accent-2"
: service.status === "degraded"
? "text-amber-500"
: "text-red-500")
: service.status === "planned"
? "text-blue-400"
: "text-red-500")
}
>
{statusLabel(service.status)}

View File

@ -3,16 +3,16 @@ import { Link } from "react-router";
import {
Coins,
Vote,
CreditCard,
Server,
ExternalLink,
ArrowRight,
Rocket,
TrendingUp,
Flame,
} from "lucide-react";
import { createChart, CandlestickSeries } from "lightweight-charts";
import type { CandlestickData, IChartApi, Time } from "lightweight-charts";
import { Redacted, ComingSoonOverlay } from "../components/ui/redacted";
import { ComingSoonOverlay } from "../components/ui/redacted";
import { Page } from "../components/layout/page";
import { Section } from "../components/layout/section";
import { SectionHeader } from "../components/ui/section-header";
@ -20,7 +20,6 @@ import { DashedPanel } from "../components/ui/dashed-panel";
import { FeatureCard } from "../components/ui/feature-card";
import { CrosshairDivider } from "../components/ui/crosshair-divider";
import { AnimateIn } from "../components/ui/animate-in";
import { SpecTable } from "../components/ui/spec-table";
import { SILVER, SilverBadge, SilverButton, SilverMetric } from "../components/ui/silver-theme";
/* ── Animated metallic particle canvas ── */
@ -79,19 +78,13 @@ function MetallicCanvas() {
ctx.clearRect(0, 0, w, h);
time += 0.004;
/* Floating metallic particles with shimmer */
for (const p of particles) {
p.x += p.vx;
p.y += p.vy;
if (p.x < 0 || p.x > w) p.vx *= -1;
if (p.y < 0 || p.y > h) p.vy *= -1;
const shimmer =
Math.sin(time * 3 + p.shimmer) * 0.5 + 0.5;
const shimmer = Math.sin(time * 3 + p.shimmer) * 0.5 + 0.5;
const alpha = p.opacity * (0.4 + shimmer * 0.6);
/* Silver-white color with occasional bright flash */
const bright = shimmer > 0.9 ? 255 : 180 + shimmer * 60;
ctx.fillStyle = `rgba(${bright}, ${bright}, ${bright + 5}, ${alpha})`;
ctx.beginPath();
@ -99,7 +92,6 @@ function MetallicCanvas() {
ctx.fill();
}
/* Subtle connection lines between nearby particles */
for (let i = 0; i < particles.length; i++) {
for (let j = i + 1; j < particles.length; j++) {
const dx = particles[i].x - particles[j].x;
@ -117,7 +109,6 @@ function MetallicCanvas() {
}
}
/* Radial pulse rings */
for (let i = 0; i < 3; i++) {
const radius = ((time * 40 + i * 100) % 300);
const opacity = Math.max(0, 1 - radius / 300) * 0.05;
@ -128,7 +119,6 @@ function MetallicCanvas() {
ctx.stroke();
}
/* Grid dots */
const spacing = 50;
for (let x = spacing; x < w; x += spacing) {
for (let y = spacing; y < h; y += spacing) {
@ -283,58 +273,30 @@ function OramaChart() {
const UTILITY_CARDS = [
{
icon: <Coins className="w-5 h-5" />,
title: "Staking & Rewards",
title: "Staking (Consensus)",
description:
"Stake $ORAMA to share network revenue. Operators lock tokens while running nodes to earn based on uptime and contributions.",
"Stake $ORAMA to validate blocks. Effective Power = Stake x (1 + Contribution Score) x Infrastructure Multiplier. Minimum 1,000 $ORAMA at mainnet.",
},
{
icon: <Vote className="w-5 h-5" />,
title: "Governance",
title: "Governance (25% cap)",
description:
"Vote on network proposals, protocol upgrades, and treasury decisions. Your stake is your voice.",
"Token holders get 25% of governance power with quadratic voting (sqrt of tokens held). NFT holders control the other 75%. No whale capture.",
},
{
icon: <CreditCard className="w-5 h-5" />,
title: "Payments",
icon: <Flame className="w-5 h-5" />,
title: "Gas (Base Burned)",
description:
"Pay for compute, storage, and bandwidth. Accepted alongside ETH and SOL.",
"All fees paid in $ORAMA. Base fee is burned permanently (deflationary). Priority fee goes to block proposer. EIP-1559 style congestion pricing.",
},
{
icon: <Server className="w-5 h-5" />,
title: "Node Operations",
description:
"Lock $ORAMA while running a node. Higher stake = higher reward multiplier.",
"Lock $ORAMA while running a node. OramaOS = 1.5x multiplier. Contribution score rewards real work: uptime (40%), bandwidth (30%), compute (20%), reliability (10%).",
},
];
const ALLOCATIONS = [
{ label: "Node Rewards", pct: 20, color: SILVER.light },
{ label: "Development", pct: 20, color: SILVER.mid },
{ label: "Community & Ecosystem", pct: 20, color: SILVER.dark },
{ label: "Team & Advisors", pct: 20, color: "#52525b" },
{ label: "Liquidity", pct: 20, color: "#3f3f46" },
];
const VESTING_ROWS = [
{ label: "Node Rewards", value: "***" },
{ label: "Development", value: "***" },
{ label: "Community", value: "***" },
{ label: "Team & Advisors", value: "***" },
{ label: "Liquidity", value: "***" },
];
function buildConicGradient() {
let cumulative = 0;
const stops: string[] = [];
for (const alloc of ALLOCATIONS) {
stops.push(
`${alloc.color} ${cumulative}deg ${cumulative + alloc.pct * 3.6}deg`,
);
cumulative += alloc.pct * 3.6;
}
return `conic-gradient(${stops.join(", ")})`;
}
/* ── Page ── */
export default function Token() {
return (
@ -345,7 +307,6 @@ export default function Token() {
<MetallicCanvas />
<div className="relative flex flex-col items-center text-center gap-8 z-10">
{/* Token symbol */}
<div className="relative">
<span
className="token-symbol text-[8rem] lg:text-[12rem] font-mono font-bold leading-none select-none"
@ -357,7 +318,7 @@ export default function Token() {
filter: "drop-shadow(0 0 60px rgba(200, 200, 210, 0.15))",
}}
>
<Redacted length={5} />
$ORAMA
</span>
<div className="absolute inset-0 token-symbol-glow" />
</div>
@ -367,15 +328,15 @@ export default function Token() {
$ORAMA Token
</h1>
<p className="font-mono text-base text-zinc-500 tracking-wider max-w-md">
The native token of the Orama L1 blockchain. Stake, govern, pay,
and earn across the decentralized cloud.
210,000,000 hard cap. Zero pre-mine. 100% earned through mining.
The native token of the Orama L1 blockchain.
</p>
</div>
<div className="flex flex-wrap items-center justify-center gap-2">
<SilverBadge variant="outline"><Redacted /> TOTAL SUPPLY</SilverBadge>
<SilverBadge variant="outline">L1 BLOCKCHAIN</SilverBadge>
<SilverBadge variant="status">LIVE</SilverBadge>
<SilverBadge variant="outline">210,000,000 TOTAL SUPPLY</SilverBadge>
<SilverBadge variant="outline">100% MINED</SilverBadge>
<SilverBadge variant="outline">BTC-ONLY ECONOMY</SilverBadge>
</div>
<div className="flex flex-wrap items-center justify-center gap-3 pt-2">
@ -404,7 +365,7 @@ export default function Token() {
<div className="flex flex-col gap-2">
<div className="flex items-center gap-4">
<h2 className="font-display text-xl font-bold text-fg whitespace-nowrap tracking-tight">
$ORAMA / USD
$ORAMA / BTC
</h2>
<div className="flex-1 border-t border-dashed" style={{ borderColor: SILVER.border }} />
</div>
@ -420,7 +381,6 @@ export default function Token() {
</div>
</div>
{/* Price stats bar */}
<div
className="grid grid-cols-2 sm:grid-cols-4 gap-4 p-4 rounded-sm"
style={{
@ -428,10 +388,10 @@ export default function Token() {
background: SILVER.bg,
}}
>
<SilverMetric label="Price" value={<Redacted />} />
<SilverMetric label="24h Change" value={<Redacted />} />
<SilverMetric label="Market Cap" value={<Redacted />} />
<SilverMetric label="24h Volume" value={<Redacted />} />
<SilverMetric label="Price (BTC)" value="—" />
<SilverMetric label="24h Change" value="—" />
<SilverMetric label="Circulating Supply" value="—" />
<SilverMetric label="24h Volume" value="—" />
</div>
<ComingSoonOverlay>
@ -451,7 +411,7 @@ export default function Token() {
<div className="flex flex-col gap-8">
<SectionHeader
title="Token Utility"
subtitle="$ORAMA powers every layer of the network — from staking and governance to payments and node operations."
subtitle="$ORAMA powers every layer of the network — staking, governance, gas, and node operations."
/>
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-0">
{UTILITY_CARDS.map((card) => (
@ -471,76 +431,144 @@ export default function Token() {
<CrosshairDivider />
</Section>
{/* ── Tokenomics — Allocation Chart ────────────────────── */}
{/* ── Emission Schedule (replaces allocation pie chart + vesting) ── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader
title="Tokenomics"
subtitle={<>
<Redacted /> $ORAMA fixed supply, no inflation.
</>}
title="Emission Schedule"
subtitle="210,000,000 $ORAMA — 100% mined. Bitcoin-style halving every 2 years."
/>
<ComingSoonOverlay>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8 items-center">
{/* Donut chart */}
<div className="flex justify-center">
<div className="relative w-64 h-64 sm:w-72 sm:h-72">
<div
className="absolute inset-0 rounded-full"
style={{ background: buildConicGradient() }}
/>
<div className="absolute inset-[25%] rounded-full bg-bg flex items-center justify-center">
<div className="text-center">
<span
className="font-display text-2xl font-bold block"
style={{
background: SILVER.gradient,
WebkitBackgroundClip: "text",
WebkitTextFillColor: "transparent",
}}
>
<Redacted />
</span>
<span className="font-mono text-xs text-zinc-500">
Total Supply
</span>
</div>
</div>
<DashedPanel withCorners withBackground>
<div className="p-4">
<div className="overflow-x-auto">
<table className="w-full text-left">
<thead>
<tr className="border-b border-dashed border-border">
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4">Era</th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4">Years</th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4">Block Reward</th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4">Annual Emission</th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3">Cumulative</th>
</tr>
</thead>
<tbody>
{[
{ era: "1", years: "1-2", reward: "100 $ORAMA", annual: "~52.5M", cumulative: "~105M (50%)" },
{ era: "2", years: "3-4", reward: "50 $ORAMA", annual: "~26.25M", cumulative: "~157.5M (75%)" },
{ era: "3", years: "5-6", reward: "25 $ORAMA", annual: "~13.1M", cumulative: "~183.7M (87.5%)" },
{ era: "4", years: "7-8", reward: "12.5 $ORAMA", annual: "~6.6M", cumulative: "~196.9M (93.8%)" },
{ era: "5", years: "9-10", reward: "6.25 $ORAMA", annual: "~3.3M", cumulative: "~203.5M (96.9%)" },
{ era: "6+", years: "11+", reward: "Halving continues", annual: "Decreasing", cumulative: "Approaches 210M" },
].map((row) => (
<tr key={row.era} className="border-b border-border/50">
<td className="text-sm text-fg py-3 pr-4 font-mono font-bold">{row.era}</td>
<td className="text-sm text-muted py-3 pr-4">{row.years}</td>
<td className="text-sm text-fg py-3 pr-4 font-mono">{row.reward}</td>
<td className="text-sm text-muted py-3 pr-4 font-mono">{row.annual}</td>
<td className="text-sm text-fg py-3 font-mono">{row.cumulative}</td>
</tr>
))}
</tbody>
</table>
</div>
<p className="text-xs text-muted mt-4 leading-relaxed">
Block reward split: 80% to block proposer, 20% to protocol bonding curve (capped at 21M tokens).
Once the curve has 21M tokens, miners receive 100%. 1 $ORAMA = 1,000,000 rays.
</p>
</div>
</DashedPanel>
</div>
</AnimateIn>
</Section>
<Section padding="none">
<CrosshairDivider />
</Section>
{/* ── Fee Schedule ── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader
title="Fee Schedule"
subtitle="All fees in $ORAMA (rays). Base fee burned. Priority fee to block proposer."
/>
<DashedPanel withCorners withBackground>
<div className="p-4">
<div className="overflow-x-auto">
<table className="w-full text-left">
<thead>
<tr className="border-b border-dashed border-border">
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3 pr-4">Operation</th>
<th className="text-xs font-mono text-muted tracking-wider uppercase py-3">Cost</th>
</tr>
</thead>
<tbody>
{[
{ op: "$ORAMA / BTC transfer", cost: "1,000 rays (0.001 $ORAMA)" },
{ op: "WASM contract execution", cost: "1,000 rays per 1M instructions" },
{ op: "SQL query", cost: "500 rays" },
{ op: "IPFS storage", cost: "10,000 rays per MB" },
{ op: "KV store read/write", cost: "200 rays" },
{ op: "Private transaction (zk-SNARK)", cost: "4x the public equivalent" },
{ op: "DEX order book trade", cost: "1,000 rays" },
].map((row) => (
<tr key={row.op} className="border-b border-border/50">
<td className="text-sm text-fg py-3 pr-4">{row.op}</td>
<td className="text-sm text-muted py-3 font-mono">{row.cost}</td>
</tr>
))}
</tbody>
</table>
</div>
<p className="text-xs text-muted mt-4 leading-relaxed">
Congestion multiplier: EIP-1559 style. 1x at 50% block capacity (~500 tx), up to 10x at full capacity (1,000 tx).
Fee schedule is governance-adjustable to keep the network affordable as $ORAMA appreciates.
</p>
</div>
</DashedPanel>
</div>
</AnimateIn>
</Section>
<Section padding="none">
<CrosshairDivider />
</Section>
{/* ── Effective Power Formula ── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader
title="Effective Power"
subtitle="A node's power is more than just stake. Real work matters."
/>
<DashedPanel withCorners withBackground>
<div className="p-4 flex flex-col gap-6">
<code className="text-lg text-fg font-mono block text-center py-4">
Effective Power = Staked $ORAMA x (1 + Contribution Score) x Infrastructure Multiplier
</code>
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4">
<div className="flex flex-col gap-2 p-3" style={{ border: `1px dashed ${SILVER.border}` }}>
<span className="text-xs font-mono text-muted tracking-wider uppercase">Proof of Stake</span>
<p className="text-sm text-muted">Classic staking for economic security. Min 1,000 $ORAMA at mainnet.</p>
</div>
<div className="flex flex-col gap-2 p-3" style={{ border: `1px dashed ${SILVER.border}` }}>
<span className="text-xs font-mono text-muted tracking-wider uppercase">Proof of Contribution</span>
<p className="text-sm text-muted">Real work measured on-chain every epoch. Uptime 40%, bandwidth 30%, compute 20%, reliability 10%.</p>
</div>
<div className="flex flex-col gap-2 p-3" style={{ border: `1px dashed ${SILVER.border}` }}>
<span className="text-xs font-mono text-muted tracking-wider uppercase">Proof of Infrastructure</span>
<p className="text-sm text-muted">OramaOS = 1.5x multiplier (TPM-verified). Without OramaOS = 1.0x. No faking allowed.</p>
</div>
</div>
{/* Allocation legend */}
<div className="flex flex-col gap-0">
{ALLOCATIONS.map((alloc) => (
<div
key={alloc.label}
className="p-4"
style={{
border: `1px dashed ${SILVER.border}`,
}}
>
<div className="flex items-center justify-between">
<div className="flex items-center gap-3">
<div
className="w-3 h-3 rounded-sm shrink-0"
style={{ backgroundColor: alloc.color }}
/>
<span className="text-sm text-fg">{alloc.label}</span>
</div>
<span
className="font-mono text-sm font-semibold"
style={{ color: SILVER.light }}
>
<Redacted />
</span>
</div>
</div>
))}
</div>
</div>
</ComingSoonOverlay>
</DashedPanel>
</div>
</AnimateIn>
</Section>
@ -549,38 +577,21 @@ export default function Token() {
<CrosshairDivider />
</Section>
{/* ── Vesting Schedule ─────────────────────────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader
title="Vesting Schedule"
subtitle="All allocations vest over time to align long-term incentives."
/>
<SpecTable rows={VESTING_ROWS} />
</div>
</AnimateIn>
</Section>
<Section padding="none">
<CrosshairDivider />
</Section>
{/* ── Blockchain ───────────────────────────────────────── */}
{/* ── Blockchain Specs ───────────────────────────────────── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader
title="Orama L1 Blockchain"
subtitle="Purpose-built for decentralized cloud coordination."
subtitle="Hybrid PoS + PoC + PoI consensus. Purpose-built for decentralized cloud."
/>
<div className="grid grid-cols-2 sm:grid-cols-4 gap-4">
{[
{ label: "Consensus", value: "PoS" },
{ label: "Block Time", value: "~2s" },
{ label: "Finality", value: "Instant" },
{ label: "Validators", value: "100+" },
{ label: "Consensus", value: "Hybrid PoS+PoC+PoI" },
{ label: "Block Time", value: "6 seconds" },
{ label: "Finality", value: "1-hour BFT" },
{ label: "Genesis Validators", value: "300+" },
].map((m) => (
<div
key={m.label}
@ -597,13 +608,12 @@ export default function Token() {
<DashedPanel withCorners withBackground>
<p className="text-muted leading-relaxed text-sm">
The Orama L1 is a Proof-of-Stake blockchain optimized for
infrastructure coordination. It handles staking, governance
votes, service-level agreements, and payment settlement. Every
node operator runs a validator, and every transaction is
finalized in seconds with near-zero fees. The chain is not a
general-purpose smart contract platform it is built
specifically to coordinate decentralized cloud resources.
The Orama L1 is a standalone blockchain combining the security and scarcity
of Bitcoin with a full decentralized cloud. It handles staking, BTC bridging,
native order book trading, WASM smart contracts, distributed SQL, KV store,
IPFS, serverless compute, and per-transaction privacy via PLONK zk-SNARKs.
Every node operator runs a validator. BFT checkpoints finalize each epoch
with two-thirds of Effective Power.
</p>
</DashedPanel>
</div>
@ -620,7 +630,7 @@ export default function Token() {
<div className="flex flex-col gap-8">
<SectionHeader
title="Trade on Orama DEX"
subtitle="Swap tokens directly on the Orama L1 chain with zero intermediaries and near-zero fees."
subtitle="Protocol-native order book. One pair: $ORAMA/BTC. No AMM — pure price discovery."
/>
<DashedPanel withCorners withBackground>
@ -636,13 +646,12 @@ export default function Token() {
<span className="font-display font-semibold text-fg text-lg">
Orama DEX
</span>
<SilverBadge variant="status">LIVE</SilverBadge>
<SilverBadge variant="outline">ORDER BOOK</SilverBadge>
</div>
<p className="text-sm text-muted leading-relaxed">
The native decentralized exchange on Orama L1. Trade $ORAMA
and bridged assets with instant settlement. No
order books, no custodians just on-chain swaps powered by
automated market making.
The native order book on Orama L1. Place limit orders, market orders,
or cancel anytime. The bonding curve provides a guaranteed liquidity backstop.
Custom tokens trade against $ORAMA via permissionless WASM DEX contracts.
</p>
</div>
<Link to="/dex">
@ -664,7 +673,7 @@ export default function Token() {
<div className="flex flex-col gap-8">
<SectionHeader
title="Launch on Orama"
subtitle="Deploy your own token on Orama L1 with built-in liquidity and instant trading."
subtitle="Deploy your own token as a WASM smart contract. Trades against $ORAMA."
/>
<DashedPanel withCorners withBackground>
@ -680,12 +689,12 @@ export default function Token() {
<span className="font-display font-semibold text-fg text-lg">
Orama Launchpad
</span>
<SilverBadge variant="outline">NEW</SilverBadge>
<SilverBadge variant="outline">WASM</SilverBadge>
</div>
<p className="text-sm text-muted leading-relaxed">
Launch your own L2 token on Orama with a single transaction.
Bonding curve pricing, automatic liquidity bootstrapping,
and instant DEX listing no VCs, no gatekeepers.
Launch your own token on Orama as a WASM smart contract. Bonding curve pricing,
automatic liquidity bootstrapping, and trading against $ORAMA.
No VCs, no gatekeepers. Cost in $ORAMA (rays).
</p>
</div>
<Link to="/launchpad">
@ -701,16 +710,16 @@ export default function Token() {
<CrosshairDivider />
</Section>
{/* ── DEX Links ────────────────────────────────────────── */}
{/* ── Trade $ORAMA (single link — native DEX only) ──── */}
<Section>
<AnimateIn>
<div className="flex flex-col gap-8">
<SectionHeader
title="Trade $ORAMA"
subtitle="Available on decentralized exchanges."
subtitle="Available on the protocol-native order book."
/>
<div className="grid grid-cols-1 sm:grid-cols-3 gap-4">
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<Link to="/dex">
<DashedPanel
withCorners
@ -722,11 +731,11 @@ export default function Token() {
<span className="font-display font-semibold text-fg text-lg">
Orama DEX
</span>
<SilverBadge variant="status">LIVE</SilverBadge>
<SilverBadge variant="outline">NATIVE</SilverBadge>
</div>
<p className="text-sm text-muted">
Swap any token for $ORAMA directly on the Orama L1 chain.
Zero intermediaries.
Trade $ORAMA/BTC on the protocol-native order book.
No intermediaries, no AMM. Pure price discovery.
</p>
<span
className="inline-flex items-center gap-1.5 text-xs font-mono"
@ -739,69 +748,30 @@ export default function Token() {
</DashedPanel>
</Link>
<a
href="https://aerodrome.finance"
target="_blank"
rel="noopener noreferrer"
<DashedPanel
withCorners
withBackground
>
<DashedPanel
withCorners
withBackground
className="hover:border-fg/30 transition-colors"
>
<div className="flex flex-col gap-3">
<div className="flex items-center justify-between">
<span className="font-display font-semibold text-fg text-lg">
Aerodrome
</span>
<SilverBadge variant="status">LIVE</SilverBadge>
</div>
<p className="text-sm text-muted">
Trade $ORAMA on Base via Aerodrome Finance, the leading
DEX on the Base network.
</p>
<span
className="inline-flex items-center gap-1.5 text-xs font-mono"
style={{ color: SILVER.light }}
>
Trade on Aerodrome
<ExternalLink className="w-3.5 h-3.5" />
<div className="flex flex-col gap-3">
<div className="flex items-center justify-between">
<span className="font-display font-semibold text-fg text-lg">
Bonding Curve
</span>
<SilverBadge variant="outline">PROTOCOL</SilverBadge>
</div>
</DashedPanel>
</a>
<a
href="https://app.uniswap.org"
target="_blank"
rel="noopener noreferrer"
>
<DashedPanel
withCorners
withBackground
className="hover:border-fg/30 transition-colors"
>
<div className="flex flex-col gap-3">
<div className="flex items-center justify-between">
<span className="font-display font-semibold text-fg text-lg">
Uniswap
</span>
<SilverBadge variant="status">LIVE</SilverBadge>
</div>
<p className="text-sm text-muted">
Swap $ORAMA on Ethereum mainnet via Uniswap, the most
widely used decentralized exchange.
</p>
<span
className="inline-flex items-center gap-1.5 text-xs font-mono"
style={{ color: SILVER.light }}
>
Trade on Uniswap
<ExternalLink className="w-3.5 h-3.5" />
</span>
</div>
</DashedPanel>
</a>
<p className="text-sm text-muted">
The protocol bonding curve is a guaranteed liquidity backstop.
Price = k x sqrt(tokens_sold). Max 21M tokens. BTC flows to protocol reserve.
</p>
<span
className="inline-flex items-center gap-1.5 text-xs font-mono"
style={{ color: SILVER.light }}
>
Coming Soon
<ExternalLink className="w-3.5 h-3.5" />
</span>
</div>
</DashedPanel>
</div>
</div>
</AnimateIn>
@ -821,8 +791,8 @@ export default function Token() {
Start Earning $ORAMA
</h2>
<p className="text-muted max-w-lg leading-relaxed">
Run a node, stake tokens, or start building. The network rewards
everyone who contributes.
Run a node, mine tokens, or start building. 100% of $ORAMA is earned
through mining the only fair way.
</p>
<div className="flex flex-wrap justify-center gap-3">
<Link to="/operators">

View File

@ -12,12 +12,30 @@ import { SplitText } from "../components/ui/split-text";
import { SILVER } from "../components/ui/silver-theme";
const VERSIONS = [
{
version: "v3.0",
title: "The Eternal Decentralized Computer and Financial System",
subtitle: "Standalone Layer-1 Blockchain — 1,000-Year Horizon",
date: "March 2026",
current: true,
file: "/orama-whitepaper-v3.pdf",
highlights: [
"Standalone L1 blockchain with pure WASM smart contracts",
"210M $ORAMA hard cap — zero pre-mine, 100% mined",
"BTC-only economy with native trust-minimized bridge",
"PLONK zk-SNARKs for per-transaction public/private toggle",
"Hybrid PoS + Proof of Contribution + Proof of Infrastructure consensus",
"AI Marketplace with autonomous Angels (AI agents on-chain)",
"OramaOS — hardened node OS with TPM attestation and 1.5x multiplier",
"300-node genesis requirement — mainnet when verified",
],
},
{
version: "v2.0",
title: "Infrastructure Whitepaper",
subtitle: "Decentralized Cloud Infrastructure & Governance",
date: "2025",
current: true,
current: false,
file: "/orama-whitepaper-v2.pdf",
highlights: [
"On-chain governance model",
@ -70,7 +88,7 @@ export default function Whitepaper() {
<Button asChild size="lg">
<a href={VERSIONS[0].file} target="_blank" rel="noopener noreferrer">
<Download className="w-4 h-4 mr-2" />
Download Latest (v2.0)
Download Latest (v3.0)
</a>
</Button>
</div>

View File

@ -0,0 +1,71 @@
# Appendix A: Emission Curve & Halving Schedule
## Parameters
- **Total supply:** 210,000,000 $ORAMA (hard cap)
- **Block time:** 6 seconds
- **Blocks per day:** 14,400
- **Blocks per year:** 5,256,000
- **Block reward split:** 80% to block proposer, 20% to bonding curve inventory (capped at 21M total to curve)
- **Halving interval:** Every 2 years (~10,512,000 blocks)
## Detailed Emission Table
| Era | Years | Block Reward | Blocks in Era | Era Emission | To Miners (80%) | To Curve (20%) | Cumulative Supply | % of Total |
|-----|-------|-------------|---------------|-------------|-----------------|----------------|-------------------|-----------|
| 1 | 12 | 100 $ORAMA | 10,512,000 | 105,120,000 | 84,096,000 | 21,024,000 | 105,120,000 | 50.03% |
| 2 | 34 | 50 $ORAMA | 10,512,000 | 52,560,000 | 42,048,000 | 10,512,000 | 157,680,000 | 75.04% |
| 3 | 56 | 25 $ORAMA | 10,512,000 | 26,280,000 | 21,024,000 | 5,256,000 | 183,960,000 | 87.52% |
| 4 | 78 | 12.5 $ORAMA | 10,512,000 | 13,140,000 | 10,512,000 | 2,628,000 | 197,100,000 | 93.76% |
| 5 | 910 | 6.25 $ORAMA | 10,512,000 | 6,570,000 | 5,256,000 | 1,314,000 | 203,670,000 | 96.88% |
| 6 | 1112 | 3.125 $ORAMA | 10,512,000 | 3,285,000 | 2,628,000 | 657,000 | 206,955,000 | 98.44% |
| 7 | 1314 | 1.5625 $ORAMA | 10,512,000 | 1,642,500 | 1,314,000 | 328,500 | 208,597,500 | 99.22% |
| 8 | 1516 | 0.78125 $ORAMA | 10,512,000 | 821,250 | 657,000 | 164,250 | 209,418,750 | 99.61% |
| 9 | 1718 | 0.390625 $ORAMA | 10,512,000 | 410,625 | 328,500 | 82,125 | 209,829,375 | 99.81% |
| 10 | 1920 | 0.195313 $ORAMA | 10,512,000 | 205,313 | 164,250 | 41,063 | 210,034,688 | 99.90% |
*Emission continues halving indefinitely. When the remaining emittable supply is less than the block reward, the block reward equals the remaining supply — ensuring the 210,000,000 hard cap is never exceeded.*
## Cumulative Supply Over Time
```
Year 1: 52,560,000 $ORAMA (25.0%)
Year 2: 105,120,000 $ORAMA (50.0%) ← First halving
Year 4: 157,680,000 $ORAMA (75.0%) ← Second halving
Year 6: 183,960,000 $ORAMA (87.5%)
Year 8: 197,100,000 $ORAMA (93.8%)
Year 10: 203,670,000 $ORAMA (96.9%)
Year 20: ~210,000,000 $ORAMA (99.9%)
```
## Daily Emission by Era
| Era | Daily Total Emission | Daily to Miners | Daily to Curve |
|-----|---------------------|----------------|----------------|
| 1 | 1,440,000 $ORAMA | 1,152,000 | 288,000 |
| 2 | 720,000 $ORAMA | 576,000 | 144,000 |
| 3 | 360,000 $ORAMA | 288,000 | 72,000 |
| 4 | 180,000 $ORAMA | 144,000 | 36,000 |
| 5 | 90,000 $ORAMA | 72,000 | 18,000 |
## Per-Node Earnings Estimates (Era 1)
Assumes equal Effective Power across all nodes (simplified):
| Total Nodes | Daily per Node | Monthly per Node |
|-------------|---------------|-----------------|
| 300 | 3,840 $ORAMA | 115,200 $ORAMA |
| 500 | 2,304 $ORAMA | 69,120 $ORAMA |
| 1,000 | 1,152 $ORAMA | 34,560 $ORAMA |
| 5,000 | 230 $ORAMA | 6,912 $ORAMA |
| 10,000 | 115 $ORAMA | 3,456 $ORAMA |
*Actual earnings vary by Effective Power (stake × contribution × infrastructure multiplier).*
## Key Properties
1. **50% emitted in first 2 years** — rewards early risk-takers who secure the network when it's most vulnerable.
2. **75% emitted by year 4** — strong incentive to join early.
3. **96.9% emitted by year 10** — after a decade, the network runs primarily on transaction fee revenue.
4. **Never reaches 210M exactly** — the halving creates an asymptotic approach, just like Bitcoin's 21 million.
5. **Predictable at every block** — anyone can calculate the exact circulating supply at any block height with simple arithmetic.

View File

@ -0,0 +1,58 @@
# Appendix B: Orama One Hardware Specs
## Design Principles
Orama One is designed so that anyone, anywhere, can afford to run a node. The hardware requirements are intentionally modest — the protocol is optimized for accessibility, not raw performance. Scaling is achieved through more nodes, not bigger nodes.
## Orama One — Standard Node
**Form factor:** 3D-printed compact enclosure, fanless, suitable for home use.
**Open-source:** Enclosure design files, bill of materials, and assembly guide will be published so anyone can build their own.
### Minimum Specifications
| Component | Specification | Purpose |
|-----------|--------------|---------|
| **CPU** | 4+ cores, 2.0+ GHz (ARM or x86) | Block validation, WASM execution, consensus |
| **RAM** | 8 GB | Distributed cache, state management |
| **Storage** | 256 GB NVMe SSD | Blockchain state, IPFS storage, SQL database |
| **Network** | 1 Gbps Ethernet | Encrypted mesh, block propagation, data serving |
| **TPM** | TPM 2.0 module | Infrastructure attestation for OramaOS multiplier |
| **Power** | Low power draw (target: under 25W) | Continuous operation at minimal energy cost |
### Recommended Specifications
| Component | Specification |
|-----------|--------------|
| **CPU** | 6+ cores, 2.4+ GHz |
| **RAM** | 16 GB |
| **Storage** | 512 GB NVMe SSD |
| **Network** | 2.5 Gbps Ethernet |
## Cloud Node — Minimum Specs
For operators who prefer cloud hosting over physical hardware.
| Component | Specification |
|-----------|--------------|
| **vCPUs** | 2+ cores |
| **RAM** | 4 GB |
| **Storage** | 80 GB SSD |
| **Bandwidth** | 1 TB/month |
| **OS** | OramaOS image |
Cloud nodes receive the OramaOS multiplier (1.5×) the same as any other node running OramaOS. The multiplier is based on the operating system, not the hardware.
## Compute Provider Node — Additional Specs
For operators who want to participate in the AI Marketplace (optional).
| Component | Specification | Purpose |
|-----------|--------------|---------|
| **Accelerator** | High-performance GPU or AI accelerator | AI model inference |
| **Accelerator memory** | 24 GB+ | Model loading |
| **RAM** | 32 GB+ | Data preprocessing |
| **Storage** | 1 TB+ NVMe SSD | Model storage |
| **Network** | High-throughput connection recommended | API serving |
Compute provider nodes must also meet standard node specs. Compute capacity is registered separately on the AI Marketplace. Compute providers earn standard block rewards from their base node plus marketplace revenue from AI API calls.

View File

@ -0,0 +1,91 @@
# Appendix C: Bonding Curve Price Table & BTC Reserve Projections
## Curve Formula
$$
\text{Price (BTC)} = k \times \sqrt{n}
$$
Where:
- `k = 0.0000000006 BTC` (genesis constant)
- `n` = total number of $ORAMA tokens sold from the curve
## Total Cost Formula
The cumulative BTC required to purchase the first N tokens from the curve:
$$
\text{Total BTC} = k \times \frac{2}{3} \times n^{3/2}
$$
## Detailed Price Table
| Tokens Sold (n) | Price per $ORAMA (BTC) | Price (USD at $100K BTC) | Cumulative BTC Spent | Cumulative USD Spent |
|---|---|---|---|---|
| 1 | 0.0000000006 | $0.00006 | 0.0000000004 | $0.00004 |
| 100 | 0.000000006 | $0.0006 | 0.0000004 | $0.04 |
| 1,000 | 0.000000019 | $0.0019 | 0.000012 | $1.27 |
| 10,000 | 0.00000006 | $0.006 | 0.0004 | $40 |
| 50,000 | 0.000000134 | $0.0134 | 0.00447 | $447 |
| 100,000 | 0.00000019 | $0.019 | 0.0127 | $1,265 |
| 500,000 | 0.000000424 | $0.0424 | 0.141 | $14,142 |
| 1,000,000 | 0.0000006 | $0.06 | 0.4 | $40,000 |
| 2,000,000 | 0.000000849 | $0.0849 | 1.131 | $113,137 |
| 5,000,000 | 0.00000134 | $0.134 | 4.47 | $447,214 |
| 10,000,000 | 0.0000019 | $0.19 | 12.65 | $1,264,911 |
| 15,000,000 | 0.00000232 | $0.232 | 23.24 | $2,323,790 |
| 21,000,000 | 0.00000275 | $0.275 | 38.49 | $3,849,002 |
## BTC Protocol Reserve Accumulation
As tokens are purchased from the curve, BTC accumulates in the protocol reserve:
| Milestone | BTC in Reserve | USD Value | What This Backs |
|---|---|---|---|
| First 100K tokens sold | 0.013 BTC | $1,265 | Minimal — early days |
| First 1M tokens sold | 0.4 BTC | $40K | Small but growing reserve |
| First 5M tokens sold | 4.47 BTC | $447K | Meaningful bridge backing |
| First 10M tokens sold | 12.65 BTC | $1.27M | Substantial reserve |
| Full curve (21M sold) | **38.49 BTC** | **$3.85M** | Full reserve capacity |
## Curve Inventory Supply
The curve's sell-side inventory comes from 20% of block rewards, **capped at 21,000,000 $ORAMA total**. Once the curve has accumulated 21M tokens (whether sold or unsold), the 20% share redirects to the block proposer.
| Era | Daily Curve Inventory Added | Monthly | Era Total (2 years) |
|---|---|---|---|
| 1 (Years 12) | 288,000 $ORAMA | 8,640,000 | 21,024,000 |
| 2 (Years 34)* | 144,000 $ORAMA | 4,320,000 | 10,512,000 |
*The 21M cap will likely be reached during Era 1. Once reached, no further tokens flow to the curve regardless of era.*
## Curve vs Order Book Interaction
The curve and the order book coexist. The real market price is determined by organic supply and demand on the order book:
**Scenario: Curve price > Order book price (typical early on)**
- Miners sell on the order book at prices below the curve
- Buyers purchase from the order book (cheaper)
- The curve sits unused, accumulating inventory
- This is normal — miners have surplus tokens and need to sell
**Scenario: Order book price > Curve price (as demand grows)**
- Order book is more expensive than the curve
- Buyers purchase from the curve instead
- BTC flows into the protocol reserve
- The curve provides a price ceiling in this scenario
**Scenario: After sunset**
- Curve stops receiving new inventory
- All trading happens on the order book
- The curve may still have leftover inventory available at its last price point
- Pure free market
## Sunset Conditions
The curve's 20% share of block rewards drops to 0% when:
1. Average daily order book volume exceeds the governance-defined threshold
2. This threshold is maintained for 30 consecutive days
3. The change is automatic — no vote required
After sunset, the 20% that previously went to the curve flows directly to block proposers (miners receive 100% of block rewards).

View File

@ -0,0 +1,98 @@
# Appendix D: PLONK Trusted Setup Ceremony Specification
## Overview
Orama's privacy features (public/private transaction toggle) use PLONK-based zk-SNARKs. PLONK requires a one-time **universal trusted setup** that generates a Structured Reference String (SRS). This SRS is used by all provers and verifiers on the network.
The setup ceremony is performed once during testnet (Q1 2027) and the resulting SRS is embedded in the genesis block at mainnet launch.
## Why PLONK Over Groth16
| Property | Groth16 | PLONK |
|---|---|---|
| Trusted setup | Per-circuit (new ceremony for every change) | Universal (one ceremony, valid for all circuits) |
| Proof size | ~200 bytes | ~500 bytes |
| Verification time | ~3ms | ~5ms |
| Upgradeability | Requires new ceremony | Same SRS works for new circuits |
| Security assumption | 1-of-N honest participants | 1-of-N honest participants |
PLONK's universal setup means Orama can add new privacy features (new transaction types, private smart contract calls, private DEX orders) without ever running another ceremony.
## Ceremony Design
### Multi-Party Computation (MPC)
The setup uses a sequential MPC protocol where each participant:
1. Receives the output of the previous participant
2. Mixes in their own randomness (called "toxic waste")
3. Destroys their randomness
4. Passes the result to the next participant
**Security guarantee:** As long as **one** participant honestly destroys their randomness, the SRS is secure. An attacker would need to compromise every single participant — a practical impossibility with hundreds of participants.
### Participation Requirements
- **Minimum participants:** 200 (target: 500+)
- **Open to anyone:** Any person in the world can participate. No KYC, no approval needed.
- **Diverse hardware:** Participants should use different hardware, operating systems, and entropy sources to prevent correlated failures.
- **Verifiable:** Each participant's contribution is publicly verifiable on-chain after the ceremony.
### Ceremony Phases
**Phase 1: Powers of Tau (universal)**
Generates the universal SRS that works for any PLONK circuit up to a maximum size.
1. Coordinator publishes initial parameters
2. Each participant downloads current state (~1 GB)
3. Participant runs the contribution software (530 minutes depending on hardware)
4. Participant uploads their contribution
5. Contribution is verified automatically
6. Next participant begins
**Phase 2: Circuit-Specific Finalization**
Takes the universal SRS and finalizes it for Orama's specific circuits (private transfers, private contract calls).
### Entropy Sources
Participants are encouraged to use creative and unpredictable entropy sources:
- Hardware random number generators
- Atmospheric noise sensors
- Radioactive decay measurements
- Keystroke timing
- Any source that is physically impossible for an attacker to predict or reproduce
### Timeline
| Step | Date | Duration |
|---|---|---|
| Ceremony software published and audited | Q4 2026 | — |
| Public registration opens | Q1 2027 | 2 weeks |
| Phase 1: Powers of Tau | Q1 2027 | 46 weeks |
| Phase 2: Circuit finalization | Q2 2027 | 2 weeks |
| Final SRS published and verified | Q2 2027 | — |
| SRS embedded in testnet | Q2 2027 | — |
| SRS embedded in mainnet genesis block | Q4 2028 | — |
## Verification
After the ceremony:
1. The final SRS is published on IPFS (permanently available)
2. A hash of the SRS is committed to the Orama genesis block
3. Every participant can verify their contribution was included
4. Anyone can verify the mathematical validity of the final SRS
5. The verification software is open-source
## What If the Setup Is Compromised?
If all participants collude (practically impossible with 200+ independent participants), an attacker could:
- Create fake private transactions (forge proofs)
- This would NOT affect public transactions, the supply cap, or the BTC bridge
The scope of damage is limited to the privacy feature. In the extremely unlikely event of compromise, governance can vote to:
1. Disable private transactions temporarily
2. Run a new ceremony with more participants
3. Re-enable with the new SRS
This is a Tier 1 emergency action (24-hour response by DeBros Team NFT holders).

View File

@ -0,0 +1,226 @@
# Appendix E: Sample WASM Contract
## Example: Private BTC Transfer Contract (Rust)
This example shows a WASM smart contract written in Rust that accepts BTC deposits and allows private withdrawals using Orama's privacy toggle.
```rust
use orama_sdk::prelude::*;
/// A simple vault contract that accepts BTC deposits (public)
/// and allows private withdrawals to any address.
#[orama_contract]
pub struct PrivateVault {
/// Maps depositor address to their BTC balance (in satoshis)
balances: StorageMap<Address, u64>,
}
#[orama_contract]
impl PrivateVault {
/// Initialize the contract
#[init]
pub fn new() -> Self {
Self {
balances: StorageMap::new("balances"),
}
}
/// Deposit BTC into the vault (public transaction)
#[payable(BTC)]
pub fn deposit(&mut self, ctx: &Context) -> Result<()> {
let sender = ctx.caller();
let amount = ctx.btc_value(); // Amount of BTC sent with this call
let current = self.balances.get(&sender).unwrap_or(0);
self.balances.set(&sender, current + amount);
emit!(Deposit {
from: sender,
amount: amount,
});
Ok(())
}
/// Withdraw BTC privately — sender, receiver, and amount are shielded
#[private] // This annotation enables the zk-SNARK privacy toggle
pub fn withdraw(&mut self, ctx: &Context, to: Address, amount: u64) -> Result<()> {
let sender = ctx.caller();
let balance = self.balances.get(&sender).ok_or(Error::InsufficientBalance)?;
if balance < amount {
return Err(Error::InsufficientBalance);
}
self.balances.set(&sender, balance - amount);
// Transfer BTC to recipient — this transfer is private
ctx.transfer_btc(to, amount)?;
Ok(())
}
/// Check your own balance (public, read-only)
#[view]
pub fn balance_of(&self, address: Address) -> u64 {
self.balances.get(&address).unwrap_or(0)
}
}
```
## How It Works
1. **Deposit (public):** User calls `deposit()` and sends BTC. The deposit is visible on-chain — everyone can see who deposited and how much.
2. **Withdraw (private):** User calls `withdraw()` with the `#[private]` annotation. The Orama runtime automatically generates a PLONK zk-SNARK proof that:
- The caller has sufficient balance
- The withdrawal amount is valid
- The recipient address is valid
But the proof reveals **none** of these details to observers. The transaction appears on-chain but the sender, recipient, and amount are shielded.
3. **Gas:** The private withdrawal costs 4x the gas of a public withdrawal (covers ZK proof generation).
## Example: AI Angel Contract (Rust)
This example shows an Angel (AI agent) that monitors BTC bridge activity and automatically places buy orders.
```rust
use orama_sdk::prelude::*;
use orama_sdk::dex::OrderBook;
/// An Angel that watches bridge deposits and places DEX buy orders
#[orama_contract]
pub struct BridgeWatcherAngel {
/// The Angel's own $ORAMA balance for placing orders
wallet: TokenBalance,
/// Minimum bridge deposit size to trigger a buy (in satoshis)
min_trigger: u64,
/// Percentage of bridge amount to buy in $ORAMA
buy_percentage: u8,
}
#[orama_contract]
impl BridgeWatcherAngel {
#[init]
pub fn new(min_trigger: u64, buy_percentage: u8) -> Self {
Self {
wallet: TokenBalance::new(),
min_trigger,
buy_percentage,
}
}
/// Called automatically by the Angel runtime when a bridge deposit event occurs
#[on_event(BridgeDeposit)]
pub fn on_bridge_deposit(&mut self, ctx: &Context, event: BridgeDepositEvent) -> Result<()> {
if event.amount < self.min_trigger {
return Ok(()); // Ignore small deposits
}
let buy_amount = (event.amount as u128 * self.buy_percentage as u128 / 100) as u64;
// Place a market buy order on the native DEX
let order = OrderBook::market_order(
Pair::ORAMA_BTC,
Side::Buy,
buy_amount,
)?;
emit!(AngelAction {
action: "buy_triggered",
trigger_amount: event.amount,
order_id: order.id,
});
Ok(())
}
/// Owner can deposit $ORAMA for the Angel to use
#[payable(ORAMA)]
pub fn fund(&mut self, ctx: &Context) -> Result<()> {
self.wallet.add(ctx.orama_value());
Ok(())
}
/// Owner can withdraw unused funds
pub fn withdraw_funds(&mut self, ctx: &Context, amount: u64) -> Result<()> {
ctx.require_owner()?;
self.wallet.subtract(amount)?;
ctx.transfer_orama(ctx.caller(), amount)?;
Ok(())
}
}
```
## Example: SQL Database Query from WASM
```rust
use orama_sdk::prelude::*;
use orama_sdk::sql::Database;
#[orama_contract]
impl MyApp {
/// Store user data in Orama's distributed SQL database
pub fn create_user(&mut self, ctx: &Context, name: String, email: String) -> Result<u64> {
let db = Database::connect("myapp")?;
let user_id = db.execute(
"INSERT INTO users (name, email, created_at) VALUES (?, ?, ?)",
&[&name, &email, &ctx.block_timestamp().to_string()],
)?;
Ok(user_id)
}
/// Query users from the distributed SQL database
#[view]
pub fn get_user(&self, user_id: u64) -> Result<User> {
let db = Database::connect("myapp")?;
let row = db.query_one(
"SELECT id, name, email FROM users WHERE id = ?",
&[&user_id.to_string()],
)?;
Ok(User {
id: row.get("id")?,
name: row.get("name")?,
email: row.get("email")?,
})
}
}
```
## Compiling and Deploying
```bash
# Install the Orama SDK
cargo install orama-cli
# Create a new contract project
orama new my-contract
cd my-contract
# Build to WASM
orama build --release
# Deploy to Orama network (costs gas in $ORAMA)
orama deploy --network mainnet ./target/wasm/my_contract.wasm
# Call a contract function
orama call <contract-address> deposit --value 0.01btc
orama call <contract-address> withdraw --private --to <address> --amount 0.005btc
```
## Supported Languages
While these examples are in Rust, any language that compiles to WebAssembly can be used:
- **Rust** (recommended — best tooling and performance)
- **Go** (via TinyGo)
- **TypeScript** (via AssemblyScript)
- **C/C++** (via Emscripten)
- **Python** (experimental)
The Orama SDK provides bindings for all supported languages, giving access to the full set of on-chain primitives (SQL, KV store, IPFS, BTC bridge, DEX, AI Marketplace). As new languages gain WebAssembly compilation support, they become available for Orama contract development automatically.

View File

@ -0,0 +1,171 @@
# Appendix F: Effective Power & Slashing Math
## Effective Power Formula
$$
\text{EP}_i = S_i \times (1 + C_i) \times M_i
$$
Where for node $i$:
- $S_i$ = Staked $ORAMA (minimum 1,000 at mainnet)
- $C_i$ = Contribution Score (0.0 to 1.0, recalculated every epoch)
- $M_i$ = Infrastructure Multiplier (1.0 or 1.5)
## Contribution Score Calculation
The Contribution Score is a weighted average of four metrics, measured every epoch (1 hour = 600 blocks):
$$
C_i = 0.4 \times U_i + 0.3 \times B_i + 0.2 \times W_i + 0.1 \times R_i
$$
Where:
- $U_i$ = Uptime ratio (blocks produced / blocks expected), range [0, 1]
- $B_i$ = Bandwidth ratio (bytes served / network average), normalized to [0, 1]
- $W_i$ = Work ratio (compute + storage + SQL queries served / network average), normalized to [0, 1]
- $R_i$ = Reliability ratio (successful responses / total requests), range [0, 1]
### Normalization
Bandwidth and work metrics are normalized relative to the network average:
$$
B_i = \min\left(\frac{b_i}{\bar{b}}, 1.0\right)
$$
Where $b_i$ is node $i$'s bandwidth served and $\bar{b}$ is the network average. Capped at 1.0 to prevent nodes from gaming the score by self-generating traffic.
### Score Examples
| Scenario | Uptime | Bandwidth | Work | Reliability | Score |
|---|---|---|---|---|---|
| Perfect node | 1.0 | 1.0 | 1.0 | 1.0 | **1.0** |
| Good node (some downtime) | 0.95 | 0.8 | 0.7 | 0.98 | **0.85** |
| Average node | 0.9 | 0.5 | 0.5 | 0.95 | **0.71** |
| Poor node | 0.7 | 0.3 | 0.2 | 0.8 | **0.49** |
| Minimal node (just online) | 0.8 | 0.1 | 0.05 | 0.9 | **0.44** |
## Infrastructure Multiplier
| Configuration | Multiplier ($M_i$) |
|---|---|
| Any node without OramaOS | 1.0× |
| Any node running OramaOS | **1.5×** |
The multiplier is based solely on running OramaOS, verified via TPM attestation. Orama One ships pre-loaded with OramaOS and thus receives the 1.5× multiplier out of the box, but any hardware running OramaOS receives the same bonus.
## Block Reward Distribution
Each block reward ($R$ = 100 $ORAMA in Era 1) is distributed:
$$
\text{Miner share} = 0.8 \times R = 80 \text{ \$ORAMA}
$$
$$
\text{Curve share} = 0.2 \times R = 20 \text{ \$ORAMA}
$$
The block proposer is selected proportionally to Effective Power:
$$
P(\text{node } i \text{ proposes block}) = \frac{\text{EP}_i}{\sum_{j=1}^{N} \text{EP}_j}
$$
## Effective Power Comparison Examples
### Scenario 1: Whale vs Active Small Node Runner
| | Whale | Small Runner |
|---|---|---|
| Stake | 100,000 $ORAMA | 2,000 $ORAMA |
| Contribution Score | 0.3 (minimal work) | 0.9 (active node) |
| Infrastructure | No OramaOS (1.0×) | OramaOS (1.5×) |
| **Effective Power** | 100,000 × 1.3 × 1.0 = **130,000** | 2,000 × 1.9 × 1.5 = **5,700** |
| **Ratio** | 22.8× more power | — |
The whale has 50× more stake but only 22.8× more Effective Power. Contribution and OramaOS close the gap significantly.
### Scenario 2: Two Equal-Stake Nodes
| | Without OramaOS | With OramaOS |
|---|---|---|
| Stake | 5,000 $ORAMA | 5,000 $ORAMA |
| Contribution Score | 0.7 | 0.7 |
| Infrastructure | 1.0× | 1.5× |
| **Effective Power** | 5,000 × 1.7 × 1.0 = **8,500** | 5,000 × 1.7 × 1.5 = **12,750** |
| **Ratio** | — | **1.5× more power** |
Same stake, same contribution, but OramaOS earns 50% more block rewards.
### Scenario 3: Active Small Node vs Lazy Whale
| | Lazy Whale | Active Small Node |
|---|---|---|
| Stake | 500,000 $ORAMA | 1,000 $ORAMA |
| Contribution Score | 0.1 (barely online) | 1.0 (perfect) |
| Infrastructure | No OramaOS (1.0×) | OramaOS (1.5×) |
| **Effective Power** | 500,000 × 1.1 × 1.0 = **550,000** | 1,000 × 2.0 × 1.5 = **3,000** |
The whale still dominates in raw Effective Power — but they have 500× more stake and only 183× more power. The contribution score and OramaOS multiplier reduce the whale's advantage by 63%. The small node runner is earning proportionally more per token staked.
## Slashing Rules
### Slashing Schedule
| Offense | Slash Amount | Scope | Recovery |
|---|---|---|---|
| Double-signing / equivocation | **100%** of stake | Stake + contribution score reset to 0 | Permanent ban from validation |
| Downtime > 20% in epoch | **530%** progressive | Stake only | Can resume after restaking |
| Downtime 2040% | 5% | Stake | — |
| Downtime 4060% | 10% | Stake | — |
| Downtime 6080% | 20% | Stake | — |
| Downtime > 80% | 30% | Stake | — |
| False hardware/OS attestation | **50%** of stake | Stake + permanent flag | Infrastructure Multiplier permanently revoked |
### Progressive Downtime Slashing Formula
$$
\text{Slash \%} = \begin{cases}
0\% & \text{if downtime} \leq 20\% \\
5\% + 25\% \times \frac{\text{downtime} - 0.2}{0.6} & \text{if } 20\% < \text{downtime} \leq 80\% \\
30\% & \text{if downtime} > 80\%
\end{cases}
$$
### Slashing Examples
**Example 1: Node goes offline for 45 minutes in an epoch (75% uptime, 25% downtime)**
$$
\text{Slash} = 5\% + 25\% \times \frac{0.25 - 0.2}{0.6} = 5\% + 2.08\% = 7.08\%
$$
On a 10,000 $ORAMA stake: 708 $ORAMA slashed.
**Example 2: Node has 50% downtime**
$$
\text{Slash} = 5\% + 25\% \times \frac{0.5 - 0.2}{0.6} = 5\% + 12.5\% = 17.5\%
$$
On a 10,000 $ORAMA stake: 1,750 $ORAMA slashed.
**Example 3: Double-signing**
100% slash. On a 10,000 $ORAMA stake: all 10,000 $ORAMA slashed. Contribution score reset to 0. Node is permanently banned from validation.
### Where Slashed Tokens Go
All slashed $ORAMA is **burned** (permanently removed from circulating supply). Slashing is deflationary — bad actors make the token more scarce for everyone else.
## Epoch Transition
At the end of each epoch (every 600 blocks / 1 hour):
1. Contribution scores are recalculated for all active validators
2. Infrastructure attestations are verified
3. Effective Power is updated for all validators
4. Slashing conditions are evaluated
5. Block proposer selection probabilities are updated for the next epoch
6. Bridge fees are distributed to validators and NFT holders

573
whitepaper/WHITEPAPER.md Normal file
View File

@ -0,0 +1,573 @@
# Orama Network: The Eternal Decentralized Computer and Financial System
**Whitepaper Version 3.0**
**Date:** March 2026
**Author:** DeBros
## 1. Abstract
Orama Network is a standalone Layer-1 blockchain designed to serve as humanity's eternal decentralized computer and financial system. It combines the security and scarcity of Bitcoin with the full power of a global, censorship-resistant cloud infrastructure — all in one protocol.
Built from first principles for a 1,000-year horizon, Orama delivers:
- **Native BTC compatibility** from genesis (deposit, use, and withdraw BTC with Bitcoin-level security).
- **Pure WASM smart contracts** so developers can write in any language they want (Rust, Go, TypeScript, C++, and any language that compiles to WebAssembly).
- **Per-transaction public/private toggle** using PLONK zk-SNARKs for optional privacy.
- **Hybrid consensus** (Proof-of-Stake + Proof of Contribution + Proof of Infrastructure) that gives real power to ordinary people running nodes with OramaOS.
- **210 million $ORAMA** hard-capped supply with zero pre-mine — 100% of tokens are earned through mining, just like Bitcoin.
Orama is not an upgrade to existing chains. It is the base layer that millions of people and billions of devices will rely on for compute, storage, payments, and data ownership for centuries to come.
## 2. Introduction & Problem Statement
Centralized cloud providers control the internet's infrastructure. They can censor, surveil, or shut down services at will. At the same time, Bitcoin remains the most secure digital money ever created, yet it lacks a native programmable computer.
Existing Layer-1 blockchains force developers into rigid languages, expensive gas models, or centralized validator sets. Most projects also suffer from unfair token launches, infinite inflation, or governance capture.
Orama solves both problems at once:
- It is the **decentralized world computer** — distributed SQL, KV store, IPFS, serverless functions, and compute — all running on a global mesh of real hardware.
- It is the **Bitcoin-grade financial system** — BTC-only economy, native BTC bridge, scarce $ORAMA token, and per-transaction privacy.
## 3. Orama Network Solution & High-Level Architecture
Orama is a single Layer-1 chain with two tightly integrated layers that can never be separated:
1. **Immutable Financial Core** (BTC + $ORAMA economics) — designed to be unchangeable for 1,000 years.
2. **Modular Decentralized Compute Layer** (WASM execution + primitives) — upgradable via governance but never able to break the money layer.
All nodes run on real hardware with OramaOS, creating true "power to the people" instead of stake-weighted whales.
## 4. Consensus Mechanism
Orama uses a **Hybrid PoS + Proof of Contribution + Proof of Infrastructure** model.
### Effective Power Formula
$$
\text{Effective Power} = \text{Staked \$ORAMA} \times (1 + \text{Contribution Score}) \times \text{Infrastructure Multiplier}
$$
- **Proof-of-Stake**: Classic staking for economic security.
- **Proof of Contribution**: Real work performed (measured on-chain every epoch).
- **Proof of Infrastructure**: Nodes running OramaOS receive a multiplier, rewarding operators who run the hardened, secure operating system.
### Infrastructure Multiplier
- Running official OramaOS = **1.5× multiplier**
- Running without OramaOS = **1.0× (no bonus)**
A node runner with modest stake but perfect uptime, real contribution, and OramaOS can earn significantly more than a whale who only stakes large amounts of $ORAMA with no real infrastructure.
### Contribution Score (weighted every 1-hour epoch)
- Uptime: 40%
- Bandwidth served: 30%
- Compute/storage/SQL queries served: 20%
- Low latency & reliability: 10%
**Block time**: 6 seconds (14,400 blocks per day)
**Block capacity**: 1,000 transactions per block
**Epoch length**: 1 hour (600 blocks per epoch)
**Minimum stake to validate**: 1,000 $ORAMA (mainnet only — see bootstrap below)
**Slashing**:
- Double-signing or cheating → 100% slash
- Downtime > 20% → progressive slash (530%)
- False infrastructure attestation → 50% slash
OramaOS attestation uses TPM-based remote attestation — cryptographically verified on-chain.
### Finality
Orama achieves finality through **BFT checkpointing**: at the end of each epoch, validators holding at least two-thirds of total Effective Power sign a checkpoint. Once a checkpoint is signed, all transactions within that epoch are irreversible. This provides 1-hour finality with cryptographic guarantees — no epoch can be reorganized once checkpointed.
### Staking Bootstrap
During testnet, **no staking is required** to run a node. Any node operator can participate and earn $ORAMA block rewards with zero stake. Testnet tokens carry over to mainnet — there is no reset. The tokens earned during testnet are real $ORAMA on the real chain.
At mainnet launch, the 1,000 $ORAMA minimum stake activates. By then, every testnet node runner will have earned more than enough to stake.
For new node runners joining after mainnet: acquire BTC, bridge it onto Orama, purchase $ORAMA on the native order book or bonding curve, stake, and begin earning.
## 5. Network Primitives & Execution Environment
**Execution VM**: Pure WebAssembly (WASM) from genesis.
Developers can write smart contracts in **any language** that compiles to WebAssembly. No EVM, no Solidity required.
First-class on-chain primitives (callable directly from WASM contracts):
- Distributed SQL database
- Key-Value + IPFS storage
- Serverless compute functions
- Native BTC bridge
- AI Marketplace (see below)
Gas is always paid in $ORAMA. Base fee is burned. All primitives integrate seamlessly with the public/private toggle.
### AI Marketplace & Angels
Orama has a native **AI Marketplace** — a protocol-level primitive for hosting and consuming AI models and AI agents (called **Angels**).
**For compute providers:**
- Register compute capacity on the network and host AI models or Angels (autonomous AI agents).
- Get paid per API call in $ORAMA — pricing is set by the provider and visible to all callers.
- Compute providers do **not** receive extra block rewards. Their revenue comes entirely from marketplace demand.
**For developers and users:**
- Call any hosted AI model or Angel from WASM contracts or via RPC.
- Pay per use in $ORAMA — transparent pricing, competitive marketplace.
**For Angel builders:**
- Deploy autonomous AI agents that can interact with Orama's on-chain primitives (SQL, storage, cache, BTC bridge, DEX).
- Angels can hold $ORAMA, execute transactions, manage data, and interact with other Angels.
- Revenue model: builders set per-request or subscription pricing in $ORAMA.
**Compute provider economics:**
- Compute providers run standard Orama nodes (earning normal block rewards) plus optional AI capacity.
- AI revenue is purely market-driven — if demand is high, providers earn well. If demand is low, they still earn normal mining rewards from their standard node.
- The protocol caps compute-provider nodes at **10% of total network nodes** to prevent disproportionate influence.
- A provider with expensive hardware earns the same block rewards as any other node — plus whatever the marketplace pays them. The market decides if the investment is worth it.
## 6. Privacy Model
Every transaction has a simple **public/private toggle**:
- **Public** (default): Fully transparent, lowest cost.
- **Private**: Uses PLONK-based zk-SNARKs to shield sender, receiver, and amount. Only the participants know the details.
### Why PLONK
Zero-knowledge proofs require a cryptographic setup. Older systems (Groth16) need a new trusted setup ceremony for every circuit change — if any participant in the ceremony is dishonest, the system can be compromised. PLONK uses a **universal trusted setup**: performed once at genesis with hundreds of public participants, and valid for all future circuit upgrades. As long as one participant was honest and destroyed their contribution, the system is secure forever.
This means Orama can upgrade its privacy features (new transaction types, improved circuits) without ever needing another ceremony.
### Privacy Mechanics
- Gas cost for private mode = **4×** public mode (covers ZK proving).
- Smart contracts can enforce "private-only" mode for sensitive applications.
- Private transactions hide sender, receiver, and amount — but the transaction's existence is still visible on-chain.
- No network-level onion routing — privacy is pure cryptography, not traffic obfuscation.
## 7. Native BTC Integration & Bridge
### BTC-Only Economy
Orama has exactly two assets: **BTC** and **$ORAMA**. No stablecoins. No wrapped altcoins. No fiat pegs. Nothing else.
To acquire $ORAMA, you must use BTC. This is a deliberate design choice:
- **Zero counterparty risk** beyond Bitcoin itself — no exposure to stablecoin depegs, altcoin crashes, or centralized token issuers.
- **No dependence on external exchanges** — Orama's economy is self-contained.
- **Hard money priced in hard money** — $ORAMA's value is always denominated in BTC, the most battle-tested digital asset in existence.
If someone wants to buy $ORAMA, they acquire BTC (anywhere in the world), bridge it onto Orama, and trade on the native order book. If they want to exit, they sell $ORAMA for BTC and bridge it back to Bitcoin mainnet.
### Trust-Minimized BTC Bridge
Orama has a **trust-minimized BTC bridge built into the protocol from genesis**.
- Deposit BTC → receive native BTC on Orama (1:1).
- Use BTC to buy $ORAMA, pay for services, or use in smart contracts.
- Withdraw back to Bitcoin mainnet with Bitcoin-level security.
- Security model: Bitcoin light-client + zk-proofs + BitVM-style fraud proofs (1-of-N honest assumption).
The bridge is further backed by a **protocol reserve** — BTC accumulated from bonding curve sales (see Section 9). This reserve provides additional collateral beyond the 1:1 deposits, ensuring the bridge remains solvent even under extreme conditions.
### Bridge Fee
**Fee: 0.25%** of every bridge transaction (deposit or withdrawal).
| Share | Recipient | Mechanism |
|---|---|---|
| 50% | Validators | Paid directly in BTC, distributed by Effective Power |
| 50% | DeBros Team NFT holders | Auto-swapped to $ORAMA on the native order book, sent to holders' RootWallet |
The NFT holder share creates a perpetual buy engine for $ORAMA: every bridge transaction automatically purchases $ORAMA on the open market, creating constant buy pressure that grows with network usage.
Minimum bridge amount: 0.001 BTC. No maximum.
## 8. Tokenomics & Economic Model
**Token**: $ORAMA
**Total Supply**: **210,000,000** (hard cap forever).
### Zero Pre-mine. Zero Airdrop. 100% Mined.
Every single $ORAMA token is earned by running a node — no exceptions. There is no team allocation, no investor round, no foundation reserve, no airdrop, and no pre-mine. The creators earn tokens the same way as everyone else: by running nodes.
This is the only truly fair model. Nobody starts with an advantage. Nobody dumps on you.
### Block Reward Distribution
Each block reward is split:
- **80%** → directly to the block proposer (the node runner who produced the block, weighted by Effective Power)
- **20%** → into the protocol bonding curve inventory (see Section 9: Native DEX), capped at 21,000,000 $ORAMA total. Once the curve has accumulated 21M tokens, the 20% share redirects to the block proposer (miners receive 100%).
### Emission Schedule
$ORAMA uses a fixed block reward with a Bitcoin-style halving:
| Era | Years | Block Reward | Approx. Annual Emission | Cumulative Supply |
|-----|-------|-------------|------------------------|-------------------|
| 1 | 12 | 100 $ORAMA | ~52.5M | ~105M |
| 2 | 34 | 50 $ORAMA | ~26.25M | ~157.5M |
| 3 | 56 | 25 $ORAMA | ~13.1M | ~183.7M |
| 4 | 78 | 12.5 $ORAMA | ~6.6M | ~196.9M |
| 5 | 910 | 6.25 $ORAMA | ~3.3M | ~203.5M |
| 6+ | 11+ | Continues halving | Asymptotically approaches 210M | 210M cap |
50% of the total supply is emitted in the first 2 years — rewarding the earliest node runners who take the biggest risk. The halving creates predictable, decreasing issuance that anyone can verify at any block height. When the remaining emittable supply is less than the block reward, the block reward equals the remaining supply — ensuring the 210M cap is never exceeded.
### Transaction Fees
**Smallest unit:** 1 $ORAMA = **1,000,000 rays**. All fees are denominated in rays.
**Genesis fee schedule:**
| Operation | Cost |
|---|---|
| $ORAMA / BTC transfer | 1,000 rays (0.001 $ORAMA) |
| WASM contract execution | 1,000 rays per 1M instructions |
| SQL query | 500 rays |
| IPFS storage | 10,000 rays per MB |
| KV store read/write | 200 rays |
| Private transaction (zk-SNARK) | 4× the public equivalent |
| DEX order book trade | 1,000 rays |
**Congestion multiplier:** Fees adjust dynamically based on block fullness (EIP-1559 model). When blocks are at 50% capacity (~500 transactions), the multiplier is 1×. As blocks fill toward the 1,000 transaction limit, the multiplier rises (up to 10×). When blocks are under half full, it drops below 1×. This prevents spam during peak demand and keeps fees low during normal usage.
**Fee distribution:**
- **Base fee** → burned. The more the network is used, the more $ORAMA is permanently removed from supply.
- **Priority fee** → 100% to block proposer (weighted by Effective Power).
- **BTC bridge fee** (0.25%) → 50% to validators, 50% auto-swapped to $ORAMA for DeBros Team NFT holders (see Section 10).
**Governance-adjustable:** The fee schedule is a compute layer parameter, not part of the immutable financial core. Governance can vote to adjust fee amounts to ensure the network remains affordable as $ORAMA appreciates in value. The community has a strong incentive to keep fees low — expensive fees drive users away, hurting the network and the token.
As usage grows and emissions shrink, $ORAMA becomes increasingly deflationary — a self-reinforcing flywheel for centuries.
## 9. Native DEX & Liquidity
Orama does not rely on external exchanges. The chain has its own **protocol-native exchange** built in as a first-class primitive, the same way it has native SQL, IPFS, and compute.
### The Bootstrap Problem
At genesis, supply is near zero. Node runners are earning $ORAMA for the first time. Buyers who bridge BTC onto Orama need a way to purchase $ORAMA. The protocol solves this with two mechanisms that work together:
### Protocol Bonding Curve
The protocol itself acts as the first market maker — not a person, not a DAO, but pure math.
20% of every block reward flows into the bonding curve's sell-side inventory (capped at 21,000,000 $ORAMA total). Anyone can buy $ORAMA from the curve by sending BTC (bridged onto Orama). The price follows a square root function:
$$
\text{Price} = k \times \sqrt{\text{total\_sold\_from\_curve}}
$$
Where `k = 0.0000000006 BTC` — calibrated at genesis so the curve starts cheap (rewarding early risk-takers) and rises aggressively as demand grows.
**Curve price schedule:**
| Tokens Sold from Curve | Price per $ORAMA | Cumulative BTC Spent |
|---|---|---|
| 10,000 | 0.00000006 BTC | 0.0004 BTC |
| 100,000 | 0.00000019 BTC | 0.013 BTC |
| 1,000,000 | 0.0000006 BTC | 0.4 BTC |
| 5,000,000 | 0.00000134 BTC | 4.5 BTC |
| 10,000,000 | 0.0000019 BTC | 12.7 BTC |
| 21,000,000 (max) | 0.00000275 BTC | ~38.5 BTC |
Total BTC to fill the entire curve: **~38.5 BTC**. This BTC flows into the protocol reserve, directly backing the BTC bridge.
**Properties:**
- Always available — the curve always has a price and always has inventory (as long as blocks are being produced and the 21M cap hasn't been reached).
- Cheap early, expensive later — the first tokens cost fractions of a cent, rewarding those who take the earliest risk.
- The curve is a **guaranteed liquidity backstop** — when the order book is thin, buyers can always purchase from the curve. The free market (order book) determines the real price.
- Self-reinforcing: more people buy $ORAMA → more BTC in the protocol reserve → stronger bridge → more confidence → more demand.
**Sunset mechanism:** When the native order book achieves sufficient organic liquidity (average daily volume exceeds a governance-defined threshold for 30 consecutive days), the curve's share of block rewards drops to 0%. All rewards flow directly to node runners. The curve keeps its remaining inventory and stays available, but stops being refilled. The free market takes over entirely.
### Protocol-Native Order Book
The primary trading venue is a **native order book** — a chain primitive, not a smart contract.
Any holder of $ORAMA can place sell orders. Any holder of BTC (bridged onto Orama) can place buy orders. The protocol matches orders when prices cross. No intermediary. No privileged LP class. Pure price discovery. One pair: **$ORAMA/BTC**.
**Standard interface (callable from WASM contracts and external RPC):**
- `place_order(pair, side, amount, price)` — place a limit order
- `market_order(pair, side, amount)` — execute at best available price
- `cancel_order(order_id)` — cancel an open order
- `get_orderbook(pair)` → current bids and asks
- `quote(pair, side, amount)` → expected fill price and size
**Third-party integration:** Any wallet, aggregator, or exchange in the world can integrate by calling these functions over Orama's RPC. No permission required. No listing fees. No gatekeepers.
### Why an Order Book, Not an AMM
| | AMM | Order Book |
|---|---|---|
| Bootstrap | Needs liquidity providers with both assets — chicken-and-egg | Just needs sellers and buyers — works from block 1 |
| Fairness | LPs earn special yield (creates a privileged class) | No special roles — everyone is a trader |
| Capital efficiency | Liquidity spread across entire price curve | Concentrated at actual price levels |
| Philosophy | Complex, opaque | Simple, transparent, free |
### Permissionless WASM DEX Contracts
The protocol-native order book handles the core pair: **$ORAMA/BTC**. For tokens created on Orama via WASM contracts, anyone can deploy AMMs or order books as WASM smart contracts. Custom tokens trade against $ORAMA — creating a clear asset hierarchy:
```
BTC (bridged from Bitcoin mainnet)
↕ protocol-native order book
$ORAMA (gas token, earned through mining)
↕ permissionless WASM DEX contracts
Custom tokens (created on Orama)
```
The protocol defines a standard swap interface that all DEX contracts can implement, enabling aggregation and composability across the ecosystem.
## 10. DeBros NFT Collections
### DeBros Team NFTs (100) — The Founding Collection
**100 DeBros Team NFTs** — the founding collection of the Orama Network. These NFTs were originally minted on Solana and will be migrated to Orama at mainnet launch via snapshot.
**Supply:** 100 (fixed forever — no more will ever be minted).
**Revenue:** 50% of all BTC bridge fees, auto-swapped to $ORAMA and distributed to holders every epoch.
**Governance:** 40% of total voting power (5 votes per NFT). See Section 12.
**Tradeable:** Yes, freely on Orama's native marketplace. Anyone can buy one and receive their share of bridge revenue and governance power.
### DeBros NFTs (700) — The Community Collection
**700 DeBros NFTs** — the broader community collection. Migrated from Solana to Orama at mainnet via snapshot, alongside the Team collection.
**Supply:** 700 (fixed forever).
**Governance:** 35% of total voting power (1 vote per NFT). See Section 12.
**Tradeable:** Yes, freely on Orama's native marketplace.
These NFTs represent the wider community that supported the network in its earliest days. They carry significant governance weight — together with the Team NFTs, NFT holders control 75% of all voting power.
### Migration from Solana
At mainnet launch, a snapshot of all DeBros NFT holders (both collections) on Solana will be taken. Equivalent NFTs are minted natively on Orama and linked to holders' RootWallet addresses. The Solana originals remain as historical artifacts — the Orama versions are the ones connected to revenue and governance.
### Why These Exist
These NFTs honor the community that believed in and built the Orama Network before the blockchain existed. They took the earliest risk. The bridge fee share and governance power are their reward — not a privilege granted in secret, but open, transparent, and tradeable instruments that anyone can participate in by purchasing an NFT on the open market.
### Revenue Flywheel
```
More bridge usage → more BTC fees collected
→ more $ORAMA auto-bought on order book → buy pressure on $ORAMA
→ NFT holders receive more $ORAMA → NFTs become more valuable
→ more attention on Orama → more users → more bridge usage
```
## 11. Fungible Tokens & Native L2 Scaling
- **NFTs**: Native WASM standards with privacy support. Metadata stored on Orama IPFS/KV. Anyone can mint and trade NFTs on Orama.
- **Fungible tokens**: Issued via WASM smart contracts. $ORAMA remains the only gas token.
- **L2 Scaling**: Native support for optimistic and zk-rollups. L2 tokens settle finality on Orama L1. Gas on L2 can be paid in L2 token or $ORAMA.
## 12. Governance
Orama governance is fully on-chain — no off-chain snapshots, no forum polls, no "the foundation decided." Every proposal, every vote, and every result is recorded on-chain and verifiable by anyone.
### Voting Power Distribution
Total voting power is split by category, not by individual token math. NFT holders always control 75% of governance — no whale can ever outweigh them.
| Group | Voting Power | Per Unit | Total Units |
|---|---|---|---|
| DeBros Team NFTs (100) | **40%** | 5 votes per NFT | 500 votes within pool |
| DeBros NFTs (700) | **35%** | 1 vote per NFT | 700 votes within pool |
| $ORAMA token holders | **25%** | Quadratic: √(tokens held) | Proportional within pool |
Within each group, voting power is distributed proportionally. A whale who buys all circulating $ORAMA still only controls 25% of total governance — they can never override NFT holders.
### Testnet Governance
During testnet (before NFT migration), governance operates through the DeBros team directly. This is the only period where governance is not fully on-chain. At mainnet launch, when NFTs are migrated and the governance contracts are live, all decision-making transitions to the on-chain system permanently.
### Three Tiers of Decisions
Not all decisions need the same process. Governance is split by urgency and impact:
#### Tier 1: Emergency Actions (24 hours)
*Security patches, active exploit response, critical network fixes.*
**Who decides:** DeBros Team NFT holders only (40% pool).
**Threshold:** 60% of Team NFT votes cast within 24 hours.
**Safeguard:** All Tier 1 actions are logged on-chain and can be reversed by a Tier 2 vote within 7 days. The Team can act fast, but the community can override them.
Emergency is strictly defined: security vulnerabilities, active exploits, and network-critical bugs. The Team cannot use Tier 1 for non-emergency changes.
#### Tier 2: Protocol Upgrades (3 days)
*Fee schedule changes, new primitives, compute layer upgrades, merging significant core changes.*
**Who decides:** All three groups vote.
**Threshold:** 66% approval over a 3-day voting period.
#### Tier 3: Constitutional Changes (14 days)
*Changes to governance structure, bridge fee percentages, bonding curve parameters.*
**Who decides:** All three groups vote.
**Threshold:** 90% approval over a 14-day voting period.
**Truly immutable (no tier can change these):**
- 210 million $ORAMA supply cap
- Emission schedule and halving
- BTC-only economy
- 100% mining distribution (zero pre-mine)
- BTC bridge core security model
### How Voting Works
```
1. Any wallet with voting power submits a proposal (with tier classification)
2. Proposal enters voting period (24h / 3 days / 14 days)
3. Holders vote from their RootWallet
4. Votes are weighted by group allocation (40% / 35% / 25%)
5. If threshold is met, change executes automatically on-chain
6. All votes and results are permanently recorded
```
### Why This Model
Most blockchains have governance captured by whales or controlled by a handful of insiders pretending to be decentralized. Orama's model ensures:
- **No whale capture** — token holders are capped at 25% voting power regardless of holdings.
- **Fast emergency response** — Team NFT holders can act within hours, not days.
- **Community check** — 700 DeBros NFT holders can block the Team (35% vs 40% — Team can't pass Tier 2 alone).
- **Public voice** — token holders have meaningful input but can never overpower the community that built the network.
- **Open participation** — all NFTs are freely tradeable. Anyone can buy voting power on the open market.
## 13. Security Model & Attack Resistance
### Consensus Attacks
- **51% attack**: Requires controlling a majority of Effective Power — which means real uptime, real contribution, and real stake. An attacker can't just buy tokens; they need physical infrastructure and months of contribution history. This makes attacks orders of magnitude more expensive than pure PoS chains.
- **Nothing-at-stake**: Prevented by double-slashing — validators who sign conflicting blocks lose both their stake and their accumulated contribution score. The contribution score takes months to build, making it a meaningful deterrent.
- **Long-range attacks**: BFT checkpoints are finalized every epoch (1 hour) by two-thirds of Effective Power. Reorganizing beyond the last checkpoint is impossible.
- **Sybil attacks**: OramaOS attestation is verified via TPM — an attacker can't fake infrastructure multipliers without the real hardware and software.
### BTC Bridge Security
- **Bridge deposits**: Verified via Bitcoin light-client embedded in the Orama protocol. The chain validates Bitcoin block headers and Merkle proofs natively.
- **Bridge withdrawals**: Protected by zk-proofs + BitVM-style fraud proofs with a 1-of-N honest assumption — if even one validator is honest, fraudulent withdrawals are caught and reverted.
- **Protocol reserve**: BTC accumulated from bonding curve sales provides additional collateral beyond 1:1 deposits.
- **Bridge halt**: If anomalous withdrawal patterns are detected (e.g., more than 10% of bridged BTC withdrawn in a single epoch), the bridge automatically pauses and requires a Tier 1 governance vote to resume.
### DEX & Order Book Security
- **Front-running prevention**: Order book transactions within the same block are processed in a randomized order, not by gas price. This eliminates MEV (Miner Extractable Value) — block proposers cannot reorder transactions to front-run traders.
- **Price manipulation**: The bonding curve provides a reference price that cannot be manipulated by wash trading on the order book.
### Network Security
- **Encrypted mesh**: All inter-node communication is encrypted via VPN tunnel. Internal services are never exposed on public IPs.
- **OramaOS hardening**: No SSH, read-only rootfs, service sandboxing — the attack surface per node is minimal (see Section 14).
- **Forged attestation**: Nodes submitting fake infrastructure proofs are slashed 50% and permanently flagged.
### Code Security
- All critical protocol components are open-source.
- Formal verification applied to consensus, bridge, and token contract logic where possible.
- Bug bounty program from testnet launch.
## 14. OramaOS & Orama One
### OramaOS — The Hardened Node Operating System
OramaOS is a custom minimal operating system purpose-built for Orama nodes. Running OramaOS provides the **1.5× Infrastructure Multiplier**.
**Security architecture:**
- **No remote shell access** — operators cannot access the filesystem. There is zero attack surface for remote exploitation.
- **Read-only root filesystem** — the OS cannot be tampered with, even by the node operator.
- **Full-disk encryption** with Shamir secret sharing for key distribution across the network.
- **Atomic updates** with automatic rollback if a new version fails. Every update is cryptographically signed and verified before applying.
- **Single root process** (orama-agent) — manages boot, encrypted mesh connectivity, and all service lifecycle. No other process runs as root.
- **Process isolation** — each service is sandboxed and isolated from every other.
**Runs anywhere:** OramaOS can be installed on any modest cloud server or on dedicated hardware. The same image runs on a cloud instance and on Orama One.
Most blockchain nodes run on stock operating systems with full remote access and services running as root. OramaOS is hardened like a hardware wallet operating system — because the node IS a financial system.
### Orama One — The People's Hardware Node
Orama One is a purpose-built, 3D-printed hardware node designed for the Orama Network. It ships pre-loaded with OramaOS.
**Design philosophy:** Anyone should be able to own and run a node. Not a mining rig. Not a server rack. A quiet, low-power device that sits on your desk and earns $ORAMA.
**Key features:**
- Pre-loaded with OramaOS — plug in power, connect to internet, it joins the network automatically.
- Open-source hardware — the enclosure design and bill of materials will be published so anyone can build their own.
- Low power consumption — designed to run continuously without significant energy costs.
- Compact and silent — suitable for home use.
Minimum hardware specifications are published in [Appendix B](APPENDIX_B_HARDWARE_SPECS.md).
### Infrastructure Attestation
The network must verify that a node is genuinely running OramaOS — not faking the multiplier. Attestation uses **TPM-based remote attestation**:
1. The node's TPM chip generates a cryptographic measurement of the boot chain and running software.
2. This measurement is submitted on-chain every epoch.
3. The protocol verifies the measurement against known-good OramaOS signatures.
4. Nodes that fail attestation lose their Infrastructure Multiplier immediately.
5. Nodes that submit forged attestations are slashed 50%.
This is cryptographic proof, not trust — the network doesn't take the node's word for it.
## 15. Genesis, Bootstrap & Launch Mechanics
### 300-Node Genesis Requirement
Orama does not launch mainnet until a minimum of **300 independent nodes** are running and verified. This is a hard requirement — no shortcuts, no exceptions. Most L1 blockchains launch with a handful of validators controlled by insiders. Orama launches with 300 real nodes operated by real people on real hardware, making it one of the most decentralized networks from block one.
### Timeline
- **Testnet**: Existing Orama network nodes upgrade and begin earning $ORAMA block rewards immediately. No staking required. New node operators join during testnet to reach the 300-node threshold. Testnet tokens are real — they carry over to mainnet.
- **Mainnet**: Full production launch with BTC bridge and native DEX live. Staking activated (1,000 $ORAMA minimum). DeBros NFT migration from Solana. On-chain governance begins. Every token in existence was earned through mining — no snapshots, no discretion, no privilege.
## 16. Roadmap & Implementation Plan
| Phase | Milestones |
|---|---|
| **Testnet** | Network launch, no staking required, node runners begin earning $ORAMA, PLONK trusted setup ceremony, bug bounty program |
| **Testnet Expansion** | AI Marketplace beta, Angels framework, compute provider registration, Orama One pre-orders |
| **Testnet Maturity** | 300-node threshold target, DeBros NFT migration preparation, bonding curve live on testnet, native order book testing |
| **Mainnet** | Full production launch, BTC bridge live, native DEX live, staking activated, DeBros NFT bridge revenue begins, on-chain governance live |
| **Post-Launch** | L2 rollup support, AI Marketplace expansion, post-quantum signature upgrade, Orama One general availability |
| **Long-Term** | Governance-driven improvements, bonding curve sunset when organic liquidity is sufficient, financial core remains immutable forever |
## 17. Risks, Mitigations & Eternal Safeguards
| Risk | Severity | Mitigation |
|---|---|---|
| **51% attack** | High | Proof of Infrastructure requires real uptime + contribution, not just stake. TPM attestation prevents fake nodes. |
| **BTC bridge exploit** | Critical | Bitcoin light-client verification, zk-proofs, BitVM fraud proofs, automatic bridge halt on anomalous withdrawals, protocol reserve as additional collateral. |
| **Governance capture** | High | NFT holders control 75% of voting power. Quadratic voting for token holders prevents whale dominance. Immutable financial core cannot be changed by any vote. |
| **Quantum computing** | Medium | Post-quantum signature upgrade on roadmap. PLONK proof system can be upgraded to quantum-resistant circuits via universal setup. |
| **Regulatory risk** | Medium | Fully decentralized, no single legal entity. OramaOS nodes have no remote access — even the operator can't be compelled to modify the software. |
| **AI Marketplace abuse** | Medium | Compute nodes capped at 10% of network. Marketplace is purely opt-in. Malicious models can be flagged via governance. |
| **Bonding curve manipulation** | Low | Curve price is mathematical (√n) — cannot be manipulated. Order book has randomized transaction ordering to prevent front-running. |
The protocol is designed to outlive any single person, company, or government.
## 18. Conclusion & Call to Build
Orama Network is not another blockchain experiment. It is the base layer for the next thousand years of human digital life — a true decentralized computer that anyone with modest hardware can help secure, and a financial system as scarce and sovereign as Bitcoin.
We invite every node runner, developer, and user to join at mainnet launch. No tokens to buy beforehand. No presale to miss. Just run a node, earn $ORAMA, and be part of the only blockchain where everyone starts equal. The code is open-source. The rules are set in stone. The power belongs to the people.
**rootwallet.io** will be the official wallet from day one.
Together we build the eternal system.
— DeBros
---
- [Appendix A: Emission Curve & Halving Schedule](APPENDIX_A_EMISSION_CURVE.md)
- [Appendix B: Orama One Hardware Specs](APPENDIX_B_HARDWARE_SPECS.md)
- [Appendix C: Bonding Curve Price Table & BTC Reserve Projections](APPENDIX_C_BONDING_CURVE.md)
- [Appendix D: PLONK Trusted Setup Ceremony Specification](APPENDIX_D_PLONK_SETUP.md)
- [Appendix E: Sample WASM Contract](APPENDIX_E_SAMPLE_CONTRACT.md)
- [Appendix F: Effective Power & Slashing Math](APPENDIX_F_MATH_PROOFS.md)