diff --git a/app/page.tsx b/app/page.tsx index 882a6b9..6cc5212 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,8 +1,8 @@ import Link from "next/link" import { Button } from "@/components/ui/button" -import { Card, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" +import { Card, CardDescription, CardHeader, CardTitle, CardContent } from "@/components/ui/card" import { Navigation } from "@/components/navigation" -import { ArrowRight, Database, Shield, Zap } from "lucide-react" +import { ArrowRight, Database, Shield, Zap, Users, TrendingUp, Lock, Coins, CheckCircle2, XCircle } from "lucide-react" import Orb from "@/components/Orb" export default function HomePage() { @@ -59,25 +59,37 @@ export default function HomePage() { - {/* Features Section */} -
+ {/* How It Works Section */} +
-

Why choose OracleNet?

+

How Does Our Protocol Work?

- Enterprise-grade infrastructure for the next generation of decentralized applications + A decentralized oracle network powered by token-weighted consensus and time-decay mechanisms

-
+
+ + +
+ +
+ 1. Token-Weighted Voting + + Participants stake ERC20 tokens to gain voting weight. More tokens = more influence on oracle outcomes. + +
+
+
- +
- Lightning Fast + 2. EWMA Consensus - Sub-second data feeds with 99.9% uptime guarantee for mission-critical applications + Exponentially Weighted Moving Average with configurable half-life ensures recent data has more weight than old data.
@@ -85,11 +97,11 @@ export default function HomePage() {
- +
- Secure & Reliable + 3. Quorum & Locking - Multi-signature validation and cryptographic proofs ensure data integrity + Minimum participation thresholds and time-locked deposits prevent manipulation and ensure security.
@@ -97,38 +109,175 @@ export default function HomePage() {
- +
- Rich Data Sources + 4. Reward Distribution - Connect to thousands of APIs, IoT devices, and real-world data providers + Participants are rewarded based on their contribution and accuracy, incentivizing honest reporting.
+ +
+ + +

The Complete Flow

+
+

+ Step 1: Oracle creators deploy contracts with custom parameters (quorum, reward rate, half-life, etc.) +

+

+ Step 2: Data providers stake tokens and submit price/value data to the oracle +

+

+ Step 3: The protocol aggregates submissions using EWMA, weighted by token stake +

+

+ Step 4: Once quorum is reached, the consensus value is finalized on-chain +

+

+ Step 5: Accurate participants receive rewards from the oracle's reward pool +

+
+
+
+
- {/* Stats Section */} -
+ {/* Why Better Section */} +
-
-
-
1,247
-
Active Oracles
-
-
-
$2.4B
-
Total Value Secured
-
-
-
99.9%
-
Uptime
-
-
-
50+
-
Supported Chains
+
+

Why Is Our Protocol Better?

+

+ Comparing OrbOracle to traditional oracle solutions +

+
+ +
+
+ + + + + OrbOracle Advantages + + + +
+ +
+ Decentralized Governance: Token-weighted voting ensures no single point of control +
+
+
+ +
+ Time-Decay Mechanism: EWMA automatically reduces weight of stale data +
+
+
+ +
+ Configurable Parameters: Each oracle can be customized for specific use cases +
+
+
+ +
+ Economic Security: Locking periods and quorum requirements prevent attacks +
+
+
+ +
+ Multi-Chain Support: Deploy on Ethereum, Base, BSC, Scroll, and more +
+
+
+ +
+ Permissionless: Anyone can create an oracle or participate as a data provider +
+
+
+
+ + + + + + Traditional Oracle Limitations + + + +
+ +
+ Centralized Control: Single entities or small groups control data feeds +
+
+
+ +
+ Static Data: No mechanism to reduce weight of outdated information +
+
+
+ +
+ One-Size-Fits-All: Limited customization options for different use cases +
+
+
+ +
+ Vulnerable to Manipulation: Lack of economic security mechanisms +
+
+
+ +
+ Chain-Specific: Often limited to single blockchain networks +
+
+
+ +
+ Permissioned: Requires approval or whitelisting to participate +
+
+
+
+ + + +

Key Differentiators

+
+
+
EWMA
+

+ Our Exponentially Weighted Moving Average automatically handles time-decay, ensuring recent data has more influence than outdated information. +

+
+
+
Quorum
+

+ Configurable participation thresholds ensure consensus is reached with sufficient stakeholder engagement. +

+
+
+
Flexible
+

+ Every oracle can be customized with its own parameters, making it suitable for any data type or use case. +

+
+
+
+
diff --git a/package-lock.json b/package-lock.json index 0fe3916..a91e970 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1125,6 +1125,7 @@ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", "license": "MIT", + "peer": true, "engines": { "node": "^14.21.3 || >=16" }, @@ -3001,6 +3002,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -3481,6 +3483,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -3913,6 +3916,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -4319,6 +4323,7 @@ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.2.tgz", "integrity": "sha512-CLABiR+h5PYfOWr/z+vWFt5VsOA2ekQeRQBFSKlcoW6Ndx/f8rfyVmq4LbgOM4GG2qtxAxjLYLOpCNTYm4uKzw==", "license": "MIT", + "peer": true, "dependencies": { "@tanstack/query-core": "5.90.2" }, @@ -4437,6 +4442,7 @@ "integrity": "sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4448,6 +4454,7 @@ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -4469,6 +4476,7 @@ "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.17.3.tgz", "integrity": "sha512-jHivr1UPoJTX5Uel4AZSOwrCf4mO42LcdmnhJtUxZaRWhW4FviFbIfs0moAWWld7GOT+2XnuVZjjA/K32uUnMQ==", "license": "MIT", + "peer": true, "dependencies": { "@emotion/hash": "^0.9.0", "@vanilla-extract/private": "^1.0.8", @@ -4581,6 +4589,7 @@ "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.21.2.tgz", "integrity": "sha512-Rp4waam2z0FQUDINkJ91jq38PI5wFUHCv1YBL2LXzAQswaEk1ZY8d6+WG3vYGhFHQ22DXy2AlQ8IWmj+2EG3zQ==", "license": "MIT", + "peer": true, "dependencies": { "eventemitter3": "5.0.1", "mipd": "0.0.7", @@ -5739,6 +5748,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -6005,6 +6015,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001741", @@ -6305,6 +6316,7 @@ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", "license": "MIT", + "peer": true, "dependencies": { "node-fetch": "^2.7.0" } @@ -6683,6 +6695,7 @@ "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.15.tgz", "integrity": "sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==", "license": "MIT", + "peer": true, "dependencies": { "@ecies/ciphers": "^0.2.3", "@noble/ciphers": "^1.3.0", @@ -6705,7 +6718,8 @@ "version": "8.5.1", "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.5.1.tgz", "integrity": "sha512-JUb5+FOHobSiWQ2EJNaueCNT/cQU9L6XWBbWmorWPQT9bkbk+fhsuLr8wWrzXKagO3oWszBO7MSx+GfaRk4E6A==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/embla-carousel-react": { "version": "8.5.1", @@ -7011,7 +7025,8 @@ "version": "6.4.9", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/eventemitter3": { "version": "5.0.1", @@ -7982,6 +7997,7 @@ "resolved": "https://registry.npmjs.org/next/-/next-14.2.16.tgz", "integrity": "sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==", "license": "MIT", + "peer": true, "dependencies": { "@next/env": "14.2.16", "@swc/helpers": "0.5.5", @@ -8466,6 +8482,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -8581,6 +8598,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -8614,6 +8632,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -8627,6 +8646,7 @@ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.63.0.tgz", "integrity": "sha512-ZwueDMvUeucovM2VjkCf7zIHcs1aAlDimZu2Hvel5C5907gUzMpm4xCrQXtRzCvsBqFjonB4m3x4LzCFI1ZKWA==", "license": "MIT", + "peer": true, "engines": { "node": ">=18.0.0" }, @@ -8650,6 +8670,7 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", + "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -8752,6 +8773,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -8814,7 +8836,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/redux-thunk": { "version": "3.1.0", @@ -8961,6 +8984,7 @@ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", + "peer": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -9134,7 +9158,8 @@ "version": "4.1.13", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/tailwindcss-animate": { "version": "1.0.7", @@ -9247,6 +9272,7 @@ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9437,6 +9463,7 @@ "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.13.2.tgz", "integrity": "sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==", "license": "MIT", + "peer": true, "dependencies": { "derive-valtio": "0.1.0", "proxy-compare": "2.6.0", @@ -9513,6 +9540,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -9537,6 +9565,7 @@ "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.17.5.tgz", "integrity": "sha512-Sk2e40gfo68gbJ6lHkpIwCMkH76rO0+toCPjf3PzdQX37rZo9042DdNTYcSg3zhnx8abFJtrk/5vAWfR8APTDw==", "license": "MIT", + "peer": true, "dependencies": { "@wagmi/connectors": "5.11.2", "@wagmi/core": "2.21.2", @@ -9640,6 +9669,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -9729,6 +9759,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz", "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" }