From 474db04d636913e58ffadd2596b62a3f09b7553d Mon Sep 17 00:00:00 2001 From: ais Date: Mon, 16 Mar 2026 17:16:57 +0100 Subject: [PATCH 01/12] docs revamp network --- docs/co-circom/co-circom.md | 6 +- docs/contact.md | 0 docs/design/known-issues.md | 0 docs/design/roadmap.md | 0 docs/index.mdx | 195 ++++++++++++------ docs/resources/circom.md | 3 - docs/services/overview.mdx | 182 +++++++++++++++++ docs/taceo-network/index.mdx | 92 +++++++++ docs/taceo-network/network.mdx | 213 ++++++++++++++++++++ docs/taceo-proof/dev/bestpractice.mdx | 8 +- docs/taceo-proof/ops/onboarding.mdx | 6 +- docs/taceo-proof/overview.mdx | 23 ++- docusaurus.config.ts | 50 ++--- package-lock.json | 80 ++++++-- package.json | 1 + sidebars.ts | 264 +++++++++++++------------ src/pages/index.module.css | 271 ++++++++++++++++++++++---- src/pages/index.tsx | 161 +++++++++------ 18 files changed, 1207 insertions(+), 348 deletions(-) delete mode 100644 docs/contact.md delete mode 100644 docs/design/known-issues.md delete mode 100644 docs/design/roadmap.md delete mode 100644 docs/resources/circom.md create mode 100644 docs/services/overview.mdx create mode 100644 docs/taceo-network/index.mdx create mode 100644 docs/taceo-network/network.mdx diff --git a/docs/co-circom/co-circom.md b/docs/co-circom/co-circom.md index f0ea14b..354a808 100644 --- a/docs/co-circom/co-circom.md +++ b/docs/co-circom/co-circom.md @@ -1,7 +1,7 @@ # coCircom -coCircom enables us perform [circom](../resources/circom)'s witness extension and proof generation with MPC. circom and coCircom and their artifacts may be used interchangeably, e.g. a proof generated by coCircom verifies using circom and vice-versa. coCircom also relies on artifacts generated by circom, e.g. the R1CS file, the zkey, and the vkey. +coCircom enables us perform [circom](https://docs.circom.io/)'s witness extension and proof generation with MPC. circom and coCircom and their artifacts may be used interchangeably, e.g. a proof generated by coCircom verifies using circom and vice-versa. coCircom also relies on artifacts generated by circom, e.g. the R1CS file, the zkey, and the vkey. -To get started with the coCircom workflow, we require some circuit alongside an input. Based on these files we can create a proof according the workflow depicted below. For more details the Circom setup have a look at the circom docs [extending the witness](https://docs.circom.io/getting-started/computing-the-witness/) and [generating a proof](https://docs.circom.io/getting-started/proving-circuits/). +To get started with the coCircom workflow, we require some circuit alongside an input. Based on these files we can create a proof according the workflow depicted below. For more details the Circom setup have a look at the circom docs [extending the witness](https://docs.circom.io/getting-started/computing-the-witness/) and [generating a proof](https://docs.circom.io/getting-started/proving-circuits/). -overview drawing \ No newline at end of file +overview drawing diff --git a/docs/contact.md b/docs/contact.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/design/known-issues.md b/docs/design/known-issues.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/design/roadmap.md b/docs/design/roadmap.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/index.mdx b/docs/index.mdx index cffb879..0c36d67 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -2,100 +2,183 @@ id: index title: Welcome to TACEO slug: / -sidebar_position: 1 +description: Start here to understand TACEO Network, privacy services, and developer tooling --- import Link from '@docusaurus/Link'; -# Welcome to TACEO Documentation +# Welcome to TACEO -TACEO is building the future of privacy-preserving computation through collaborative zero-knowledge proofs and Multi-Party Computation (MPC). +TACEO provides private execution infrastructure for applications that need to compute on sensitive data without exposing inputs. -## Choose Your Path +This documentation is organized around three areas: the **TACEO Network**, **production privacy services** such as TACEO:Proof and TACEO:OPRF, and **developer tooling** for collaborative zero-knowledge workflows. -
+If you are new, start by choosing the path that best matches your goal. This page is designed to help you get oriented quickly and then move into the right part of the documentation. -
+ +
+ +🌐 **Understand how TACEO Network works** + -### πŸ”§ CoSNARKs Development +
-**Build collaborative zero-knowledge circuits** +**Best for:** Researchers, partners, and technical stakeholders -Learn how to create circuits where multiple parties can jointly generate zero-knowledge proofs without revealing their private inputs to each other. +**Start here:** +1. **[Read Network Overview](/docs/taceo-network/)** - Understand the motivation and system model +2. **[Review Architecture](/docs/taceo-network/network#how-the-network-works)** - See how the network operates +3. **[See Real Applications](/docs/taceo-network/network#the-missing-layer)** - Understand where this is used in practice -**Perfect for:** -- Building privacy-preserving applications -- Multi-party computation workflows -- Collaborative proof generation +**Next steps:** Explore the [Security Model](/docs/taceo-network/network#security-model) and [Network Governance](/docs/taceo-network/network#network-governance) - - Explore CoSNARKs Docs - +
+
+ +
+ +⚑ **Add privacy services to my application** + + +
+ +**Best for:** Application developers, product teams, and technical founders + +**Start here:** +1. **[Choose Your Service](/docs/services/overview)** - Compare TACEO:Proof and TACEO:OPRF +2. **[Review TACEO:Proof](/docs/taceo-proof/overview)** - Understand private proof delegation +3. **[Review TACEO:OPRF](/docs/taceo-oprf/overview)** - Understand privacy-preserving function workflows + +**Next steps:** [Email us for production access](mailto:hello@taceo.io) and [join Discord](https://taceo.io/discord) for technical support
+
-
+ +πŸ”§ **Experiment with collaborative SNARKs** + -### ⚑ TACEO:Proof Network +
-**Offload proof generation to our network** +**Best for:** Crypto developers, researchers, and privacy-tech experimenters -Use our production-ready MPC network to generate Groth16 proofs without revealing witness data. Scale beyond client-side limitations. +**Start here:** +1. **[CoSNARKs Overview](/docs/overview)** - Understand collaborative zero-knowledge proofs +2. **[Install Tools](/docs/getting-started/install)** - Set up coCircom or coNoir locally +3. **[Run an Example](/docs/getting-started/quick-start-co-circom)** - Try your first collaborative circuit -**Perfect for:** -- Mobile and web applications -- Scalable proof generation -- Production deployments +**Next steps:** Explore [examples](/docs/examples/) and [network configuration](/docs/network-config/) - - Explore TACEO:Proof Docs - +**Note:** These tools are currently for experimentation and development. They require running your own MPC environment and are not the same as using TACEO’s managed services.
+
-## New to Zero-Knowledge Proofs? +## What is available today + +- **TACEO Network documentation** explains the system architecture, security model, and application context +- **TACEO:Proof** and **TACEO:OPRF** are the main service entry points for teams integrating privacy features today +- **Developer tooling** is available for teams exploring collaborative circuits and MPC-based proving workflows + +This means some parts of the docs describe production-oriented services, while others describe lower-level or experimental developer workflows. If you are evaluating TACEO for an application, the services section is usually the right place to begin. + +## Learning Resources -
+New to privacy-preserving computation? Start here: -Start with our primers to understand the fundamentals: +
-- **[MPC Primer](primer/mpc-primer.md)** - Understanding Multi-Party Computation -- **[Collaborative SNARKs Primer](primer/collabSNARKs-primer.md)** - How coSNARKs work +
+**πŸŽ“ Understand the Basics** +
+Secure Multiparty Computation +
+Collaborative SNARKs Primer +
+ +
+**πŸ’‘ See Use Cases** +
+DeFi Applications +
+AI & Machine Learning +
+Gaming & NFTs +
-Or watch our introductory videos: -- **[Overview of TACEO](https://www.youtube.com/watch?v=tlVFbr3_eEU)** - High-level introduction -- **[MPC-Enabled Proof Markets](https://www.youtube.com/watch?v=4-W5nnsf9-A)** - Technical deep dive +
+**πŸ“Ί Watch Videos** +
+TACEO Overview +
+MPC-Enabled Proof Markets +
-## Need Help? +## Get In Touch + +
+ +**Questions? We're here to help.** + +
+ + πŸ’¬ Join Discord + + + πŸ“§ Email Us + +
-- πŸ’¬ Join our [Discord community](https://taceo.io/discord) for real-time support -- πŸ“§ [Contact us](contact.md) for enterprise inquiries -- πŸ› Report issues on our GitHub repositories +
--- -*Ready to start building privacy-preserving applications? Choose your path above!* +**Ready to dive deeper?** Use the sidebar to explore the TACEO Network, Services, and Developer Tools sections. \ No newline at end of file diff --git a/docs/resources/circom.md b/docs/resources/circom.md deleted file mode 100644 index 8d680ec..0000000 --- a/docs/resources/circom.md +++ /dev/null @@ -1,3 +0,0 @@ -# Circom - -We refer to the [circom documentation](https://docs.circom.io/). diff --git a/docs/services/overview.mdx b/docs/services/overview.mdx new file mode 100644 index 0000000..3514c69 --- /dev/null +++ b/docs/services/overview.mdx @@ -0,0 +1,182 @@ +--- +title: Privacy Services Overview +description: Choose the right privacy service for your application +--- + +import Link from '@docusaurus/Link'; + +# Privacy Services on TACEO Network + +The TACEO Network provides production-ready privacy services that your application can integrate today. Each service handles different privacy-preserving computation needs. + +## Which Service Do I Need? + +
+ +
+ +### **TACEO:Proof** +*Private Zero-Knowledge Proof Generation* + +**Use when you need:** +- Generate ZK proofs without revealing witness data +- Scale proof generation beyond client devices +- Mobile/web app proof generation +- Production-ready Groth16 proofs + +**Perfect for:** +- DeFi applications with private transactions +- Identity systems requiring proof of credentials +- Gaming with hidden state verification +- Any app needing scalable ZK proofs + + + Learn More + + +
+ +
+ +### **TACEO:OPRF** +*Oblivious Pseudorandom Function* + +**Use when you need:** +- Privacy-preserving uniqueness checks +- Generate nullifiers without revealing identity +- Private set membership +- Threshold signatures + +**Perfect for:** +- Biometric identity verification +- Anonymous credential systems +- Privacy-preserving voting +- Anti-fraud without KYC data + + + Learn More + + +
+ +
+ +## Coming Soon + +
+ +
+ +### **TACEO:OMap** +*Confidential Shared State* + +**Coming Q2 2026** + +Private data structures and confidential shared state management across multiple parties. + +
+ +
+ +### **TACEO:Match** +*Distributed Biometric Verification* + +**Coming Q3 2026** + +Privacy-preserving biometric matching and verification without centralized biometric storage. + +
+ +
+ +## Integration Patterns + +### **Direct API Integration** +Most applications integrate TACEO services through REST APIs: +- Submit encrypted requests +- Receive cryptographic proofs or results +- Verify outputs using provided verification data + +### **SDK Integration** +Use our SDKs for easier integration with proper key management: +- JavaScript/TypeScript SDK +- Python SDK +- Go SDK (coming soon) + +### **Smart Contract Integration** +Verify results directly in your smart contracts: +- On-chain proof verification +- Integrate with existing DeFi protocols +- composable with other privacy tools + +## Getting Started + +
+ +### πŸš€ **Ready to integrate?** + +1. **Choose your service** from the options above +2. **Read the service documentation** for technical details +3. **Try the quickstart** to see it in action +4. **Contact us** for production access and support + +
+ + Get Production Access + + + Join Discord Community + +
+ +
+ +## Production Applications + +The TACEO Network already powers privacy infrastructure for: + +- **World** - Biometric identity verification at global scale +- **zkPassport** - Privacy-preserving identity verification +- And growing ecosystem of privacy-focused applications + +--- + +Need help choosing the right service? [Join our Discord](https://taceo.io/discord) or [email our team](mailto:hello@taceo.io). \ No newline at end of file diff --git a/docs/taceo-network/index.mdx b/docs/taceo-network/index.mdx new file mode 100644 index 0000000..f5827ea --- /dev/null +++ b/docs/taceo-network/index.mdx @@ -0,0 +1,92 @@ +--- +title: TACEO Network Overview +description: Understand what the TACEO Network is, who this section is for, and where to go next +slug: /taceo-network/ +--- + +import Link from '@docusaurus/Link'; + +# TACEO Network + +The TACEO Network is the coordination and execution layer that enables private computation across independent infrastructure providers. + +It is designed for applications that need to compute on sensitive data without exposing the underlying inputs to any single operator. Instead of relying on a centralized trusted party, the network uses threshold cryptographic protocols and distributed execution across committees of nodes. + +This section explains how the network is structured, what security assumptions it relies on, and how it relates to TACEO services and developer tooling. + +## Who this section is for + +This section is most useful for: + +- teams evaluating TACEO as infrastructure for privacy-preserving applications +- researchers and technical stakeholders who want to understand the network model +- partners who need a high-level explanation of how private execution is coordinated +- developers who want context before integrating services built on top of the network + +If your primary goal is to integrate a production service, you may want to start in [TACEO Services](/docs/services/overview) and then return here for architectural context. + +## What this section covers + +### Network architecture + +How applications interact with privacy services, how service instances are organized, and how committees of MPC nodes execute confidential computations. + +### Security model + +What the network assumes about node operators, how threshold security works, and why no single operator can access the underlying private data. + +### Governance and coordination + +How the network is currently coordinated, how upgrades are handled, and how operators and applications participate in operational decisions. + +### Real-world application context + +Why the TACEO Network exists, what kinds of systems it is intended to support, and how it relates to services such as TACEO:Proof and TACEO:OPRF. + +## TACEO Network vs TACEO Services vs Developer Tooling + +These parts of the documentation are related, but they serve different purposes: + +- **TACEO Network** explains the infrastructure and trust model +- **TACEO Services** explains the managed privacy-preserving services that applications integrate today +- **Developer Tooling** explains lower-level tools for collaborative zero-knowledge workflows and experimentation + +If you are evaluating TACEO for a product, the usual flow is: + +1. understand the TACEO Network at a high level +2. choose the service that matches your use case +3. dive into detailed service or implementation docs + +## Start here + +
+ +
+**Understand the system** +
+How the Network Works +
+Interacting with the Network +
+ +
+**Review trust and safety** +
+Security Model +
+Network Governance +
+ +
+**See how it connects to products** +
+TACEO Services Overview +
+Privacy Services on the Network +
+ +
+ +--- + +Ready to continue? Start with the full [TACEO Network reference](/docs/taceo-network/network). \ No newline at end of file diff --git a/docs/taceo-network/network.mdx b/docs/taceo-network/network.mdx new file mode 100644 index 0000000..4c8e1e9 --- /dev/null +++ b/docs/taceo-network/network.mdx @@ -0,0 +1,213 @@ +# TACEO Network: How It Works + +The TACEO Network is a private execution layer for digital infrastructure. + +It encrypts and distributes sensitive computation across independent node operators so that no single party controls the data, the keys, or the outcome. + +The network has already been running production workloads for months, including biometric identity uniqueness verification at global scale through **World**, securing over 18 million users. + +Applications integrate privacy services through APIs. Under the hood, those services route confidential requests to MPC node committees that compute over encrypted shares and return verifiable outputs. + +## The Missing Layer + +Digital systems increasingly depend on shared infrastructure, but sensitive execution is still often centralized. + +Consensus layers and settlement rails exist. What is usually missing is an execution layer that can coordinate on private data without introducing a single trusted intermediary. + +The TACEO Network introduces this missing layer through **private shared state**. + +In practice, this means applications can ask narrowly scoped questions over sensitive data and receive verifiable answers without seeing the underlying raw inputs. + +Examples include: + +- checking eligibility or policy conditions without disclosing full identity records +- verifying uniqueness without exposing biometric templates +- evaluating private risk or account conditions without revealing complete user data + +Only the requested result is revealed. The underlying inputs remain confidential throughout execution. + +## How the Network Works + +The TACEO Network executes requests through privacy services running on committees of independent MPC nodes. + +Each request follows the same high-level flow: + +1. **Application request** + An application sends a request through a TACEO service API, for example proof generation, private verification, or private state updates. + +2. **Service instance routing** + The request is routed to a specific service instance. Each instance has its own cryptographic keys, committee configuration, and operational policy. + +3. **Distributed MPC execution** + The selected committee executes the protocol over encrypted or secret-shared inputs. No single node can reconstruct the full private input by itself. + +4. **Threshold completion** + Once the required threshold of nodes completes the protocol, partial outputs are combined into a final result. + +5. **Verifiable response** + The service returns the result to the application, optionally including cryptographic artifacts that allow downstream verification. + +A simplified architecture is shown below. + +``` +Application + ↓ +Service API + ↓ +Service Instance + ↓ +MPC Node Committee + ↓ +Result (+ optional proof material) +``` + +This model allows many applications to share the same privacy infrastructure while keeping execution isolated at the service-instance level. + +## Interacting with the Network + +Applications integrate with TACEO services through APIs. + +From an integration perspective, each request has three parts: input preparation, service execution, and result handling. + +### 1) Input preparation + +Applications prepare service-specific inputs before submission. Depending on the service, this can include: + +- encrypted payloads +- blinded identifiers +- proof generation parameters +- confidential state transition requests + +Inputs are scoped to the service instance the application is configured to use. + +### 2) Service execution + +After request validation, the service instance routes the job to its assigned MPC committee. + +Nodes execute the protocol over encrypted or secret-shared data and produce partial outputs. A final output is produced only when the configured threshold is met. + +Applications do not need to orchestrate node-level communication themselves; this is handled by the service and protocol stack. + +### 3) Result handling + +The application receives a service response that may include: + +- a verification decision or policy outcome +- a derived private identifier +- an updated private-state commitment +- proof or verification artifacts, where applicable + +Integrators should treat service outputs as narrowly scoped answers to the submitted request, and should verify returned artifacts wherever verification is available. + +## Privacy Services + +The TACEO Network grows through purpose-built privacy services. + +Each service provides a specific cryptographic capability that applications can integrate directly through TACEO APIs and SDKs. + +### TACEO:Proof + +Generates verifiable zero-knowledge proofs for applications and protocols that need outsourced proving. + +**Status:** Live in production. + +### TACEO:OPRF + +Enables private credential and uniqueness verification using oblivious pseudorandom function protocols. + +**Status:** Live in production. + +### TACEO:OMap + +Enables verifiable private storage and retrieval for shared confidential state, supporting use cases such as private ledgers and registries. + +**Status:** Deployed and onboarding initial applications. + +### TACEO:Match + +Distributes identity matching across MPC node committees so no single party holds complete raw biometric data. + +**Status:** In active integration. + +Multiple applications can run separate service instances with isolated keys, policies, and committee configurations. + +## Node Operators + +The network is operated by independent node operators running MPC infrastructure. + +For each service instance, computation is assigned to a committee of nodes rather than a single operator. + +This committee model is what enforces distributed trust: + +- no single operator can unilaterally access full private inputs +- no single operator can produce a valid result alone +- threshold participation is required for successful execution + +Node operators are currently permissioned and curated for operational reliability and security. + +As the network expands, node participation is expected to broaden while preserving threshold-based security guarantees. + +## Security Model + +The TACEO Network is built on threshold MPC protocols designed to protect data during computation. + +At a high level, the security model assumes: + +- fewer than the configured threshold of nodes collude in a given committee +- node operators run approved protocol implementations correctly +- service and governance controls are operated according to network policy + +Under these assumptions, private inputs remain confidential and outputs are produced through protocol-level distributed execution. + +In practical terms, security combines cryptographic guarantees with operational controls, including committee diversity, controlled service rollout, and active infrastructure monitoring. + +## Network Governance + +The TACEO Network is currently operationally coordinated by TACEO. + +This launch-phase governance model prioritizes safety and reliability for privacy-critical production workloads. + +Current governance responsibilities include: + +- approving services and circuit deployments +- managing node participation and infrastructure requirements +- coordinating protocol and software upgrades +- managing incident response and operational continuity + +### Application participation + +Applications using the network are involved in upgrade coordination for the services they depend on. + +Major changes are coordinated through an off-chain process with production integrators so service evolution is aligned with real workload requirements. + +### Node participation + +The network is operated by a set of independent node operators. + +Node operators are currently curated to ensure reliability and security. Organizations with privacy-critical workloads may also participate as operators where appropriate. + +### Evolution + +Governance is expected to broaden as service adoption and operator participation grow. + +Future iterations may introduce additional shared-control mechanisms for service approvals, registry management, and network standards. + +## Roadmap + +The TACEO Network is evolving toward a more distributed and scalable infrastructure for confidential computation. + +Key areas of development include: + +**Expansion of Node Operators** + +Increasing the number and diversity of independent infrastructure operators participating in the network. + +**Hardware-based attestation** + +Exploring the use of confidential computing technologies such as AMD SEV-SNP and Intel TDX to provide additional assurances that nodes execute approved software. + +**Improved developer integrations** + +Expanding APIs, SDKs, and tooling to simplify integration of privacy services into applications. + +These developments aim to make confidential computation infrastructure more robust, accessible, and scalable for real-world applications. \ No newline at end of file diff --git a/docs/taceo-proof/dev/bestpractice.mdx b/docs/taceo-proof/dev/bestpractice.mdx index f09311a..df2ee05 100644 --- a/docs/taceo-proof/dev/bestpractice.mdx +++ b/docs/taceo-proof/dev/bestpractice.mdx @@ -63,19 +63,19 @@ The choice depends on your use case. Here’s what to consider: ### Handling proof latencies & fallbacks When scheduling a coSNARK execution, there are a few practical steps and strategies to help reduce latency and improve robustness in case of failures. - - You can **cache** the used **Node Providers** temporarily if you're planning to submit additional proofs soon after. Just be aware that **Node Providers can go offline** β€” if a cached key is stale, your request will fail at scheduling time. + - You can **cache** the used **node operators** temporarily if you're planning to submit additional proofs soon after. Just be aware that **node operators can go offline** β€” if a cached key is stale, your request will fail at scheduling time. This reduces them amount of API calls to schedule a coSNARK job to just 1! - After encrypting your input shares for the selected providers, you include the corresponding Node Provider IDs and submit the job. -If one or more of the selected Node Providers is offline or unresponsive, the call may fail. In that case, you’ll need to: +If one or more of the selected node operators is offline or unresponsive, the call may fail. In that case, you’ll need to: - 1) Fetch a new set of Node Providers. + 1) Fetch a new set of node operators. 2) Encrypt the shares again using the new keys. 3) Retry scheduling the job. ### Redundancy & resilience strategies To improve reliability or reduce tail latency, you can **schedule multiple coSNARK executions in parallel** and accept the one that completes first. This is especially useful in latency-sensitive applications. -> ⚠️ Important: If you schedule redundant jobs, you **must perform secret-sharing separately for each**. Even if some Node Providers overlap across jobs, this prevents any leakage and maintains security. If you are using our client libraries, this is done for you. +> ⚠️ Important: If you schedule redundant jobs, you **must perform secret-sharing separately for each**. Even if some node operators overlap across jobs, this prevents any leakage and maintains security. If you are using our client libraries, this is done for you. At the moment, redundancy handling needs to be implemented at the **call site**. We're exploring the possibility of **native support for redundant job scheduling** in the future. diff --git a/docs/taceo-proof/ops/onboarding.mdx b/docs/taceo-proof/ops/onboarding.mdx index 10c6af8..c7fe18c 100644 --- a/docs/taceo-proof/ops/onboarding.mdx +++ b/docs/taceo-proof/ops/onboarding.mdx @@ -1,10 +1,10 @@ # Onboarding as a Node Provider for TACEO:Proof -TACEO:Proof is currently in the early stages of decentralization. At this time, we operate a permissioned network with a vetted set of Node Providers. However, we're actively expanding, and if you're interested in joining as a Node Provider, we’d love to hear from youβ€”reach [out here](mailto:office@taceo.io). +TACEO:Proof is currently in the early stages of decentralization. At this time, we operate a permissioned network with a vetted set of node operators. However, we're actively expanding, and if you're interested in joining as a Node Provider, we’d love to hear from youβ€”reach [out here](mailto:office@taceo.io). ## Hardware & Network Prerequisites -To ensure reliable performance, we expect Node Providers to be able to run **multiple CSEs** in parallel. Running only a single CSE introduces bottlenecks: all jobs assigned to your node would have to queue behind that one instance, slowing down the entire network. +To ensure reliable performance, we expect node operators to be able to run **multiple CSEs** in parallel. Running only a single CSE introduces bottlenecks: all jobs assigned to your node would have to queue behind that one instance, slowing down the entire network. -Since we’re still using a permissioned set of node providers, we can’t tackle throughput by sheer amount of online nodes. That’s why your setup should support **horizontal scaling**β€”multiple CSEs running simultaneously. +Since we’re still using a permissioned set of node operators, we can’t tackle throughput by sheer amount of online nodes. That’s why your setup should support **horizontal scaling**β€”multiple CSEs running simultaneously. ### Performance Requirements Each CSE should be able to execute our [Groth16 prover](https://github.com/TaceoLabs/co-snarks/tree/main/co-circom/co-groth16) for a circuit of size $2^{16}$ **in under one second**. This is our current baseline for acceptable latency and throughput. diff --git a/docs/taceo-proof/overview.mdx b/docs/taceo-proof/overview.mdx index b600bf1..39ac462 100644 --- a/docs/taceo-proof/overview.mdx +++ b/docs/taceo-proof/overview.mdx @@ -8,7 +8,7 @@ Clients submit encrypted input shares and a short-lived voucher, and receive bac ### Key terminology - **CCL (Cryptographic Coordination Layer):** Orchestrates jobs, manages vouchers and blueprints, dispatches work via gRPC and collects proofs. -- **Node Provider:** Provides computation power to the network by running CSEs. For every coSNARK a randomly selected collection of Node Providers computes the coSNARK. +- **Node Provider:** Provides computation power to the network by running CSEs. For every coSNARK a randomly selected collection of node operators computes the coSNARK. - **CSE (coSNARK Engine):** Dockerised binary that connects peer-to-peer over TCP, executes the MPC + SNARK circuit, and produces proof shares. A single Node Provider can host multiple CSEs for scalability. - **Blueprint:** A circuit definition plus proving/verification keys. - **Voucher:** A permit generated by the CCL on behalf of a blueprint creater, that authorises a specific blueprint and usage limits. @@ -18,7 +18,7 @@ Clients submit encrypted input shares and a short-lived voucher, and receive bac ### High-level architecture 1. Client packages inputs (with or without local witness extension), encrypts shares under the selected Node Provider's public keys, and calls the CCL. -2. CCL verifies the voucher, writes a job record, and notifies the Node Providers. +2. CCL verifies the voucher, writes a job record, and notifies the node operators. 3. CSEs receive the job via gRPC, form an MPC group over TCP, run the full SNARK circuit inside MPC, assemble the Groth16 proof, and hand it back to the CCL. 5. CCL gathers the final proof, verifies node signatures, stores the result, and returns it to the client. @@ -35,19 +35,19 @@ Clients submit encrypted input shares and a short-lived voucher, and receive bac ### How it works -1) **Request set of Node Providers** +1) **Request set of Node operators** - The client gives you the ability to request a set of 3 distinct Node Providers of **TACEO:Proof**. - You receive the Node Providers with their ids, encryption keys and verification keys. - You should request a new set of Node Providers for each coSNARK job to decrease waiting times. - We do not recommend to use the same Node Providers over a longer period of time. - But you may **cache** them temporarily if you're planning to submit additional proofs soon after. Just be aware that **Node Providers can go offline** β€” if a cached key is stale, your request will fail at scheduling time. - > πŸ’‘ If you're submitting multiple proofs at once, you can reuse the same set of Node Providers across jobs. This reduces the number of HTTP calls and enables you to encrypt in parallel. + The client gives you the ability to request a set of 3 distinct node operators of **TACEO:Proof**. + You receive the node operators with their ids, encryption keys and verification keys. + You should request a new set of node operators for each coSNARK job to decrease waiting times. + We do not recommend to use the same node operators over a longer period of time. + But you may **cache** them temporarily if you're planning to submit additional proofs soon after. Just be aware that **node operators can go offline** β€” if a cached key is stale, your request will fail at scheduling time. + > πŸ’‘ If you're submitting multiple proofs at once, you can reuse the same set of node operators across jobs. This reduces the number of HTTP calls and enables you to encrypt in parallel. 2) **Schedule a coSNARK Job on the TACEO:Proof Network** To schedule a job you must provide the unique identifier of the blueprint that you want to use. - In the client, the private inputs (Extended Witness or Inputs to Witness Extension, depends on the job type) get secret-shared and encrypted using the Node Providers' public keys (encryption keys). + In the client, the private inputs (Extended Witness or Inputs to Witness Extension, depends on the job type) get secret-shared and encrypted using the node operators' public keys (encryption keys). The client then schedules the coSNARK job and uploads the encrypted shares to **TACEO:Proof** where the job gets send to nodes that compute the proof with Multi-Party Computation (MPC). In response you receive a unique identifier for this job. All of this is handled by the client libraries, you just need to call the provided functions. @@ -56,7 +56,7 @@ Clients submit encrypted input shares and a short-lived voucher, and receive bac Using the received unique identifier, you can subscribe to receive the results of a coSNARK job via a WebSocket connection. By calling the provided functions you can wait for the results without needed to do any manual polling. - The returned results include the proofs which are signed by the Node Providers. + The returned results include the proofs which are signed by the node operators. You can use the initially received verification keys to verify the signatures. --- @@ -64,4 +64,3 @@ Clients submit encrypted input shares and a short-lived voucher, and receive bac **Next:** - [For Application Developers](../dev/quick-start-co-circom) -- [For Node Providers](../ops/onboarding) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 017e1b6..07132fe 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -35,7 +35,21 @@ const config: Config = { } ], - plugins: [require.resolve('docusaurus-lunr-search')], + plugins: [ + require.resolve('docusaurus-lunr-search'), + [ + require.resolve("@docusaurus/plugin-client-redirects"), + { + redirects: [ + { from: "/docs/quick-start", to: "/docs/" }, + { from: "/docs/resources/circom", to: "/docs/co-circom/" }, + { from: "/docs/design/known-issues", to: "/docs/" }, + { from: "/docs/design/roadmap", to: "/docs/" }, + { from: "/docs/contact", to: "/docs/" }, + ], + }, + ], + ], // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you @@ -83,21 +97,9 @@ const config: Config = { items: [ { type: "docSidebar", - sidebarId: "coSnarkSidebar", - position: "left", - label: "CoSNARKs", - }, - { - type: "docSidebar", - sidebarId: "proofSidebar", + sidebarId: "mainSidebar", position: "left", - label: "TACEO:Proof", - }, - { - type: "docSidebar", - sidebarId: "oprfSidebar", - position: "left", - label: "TACEO:OPRF", + label: "Documentation", }, { type: "search", @@ -119,19 +121,23 @@ const config: Config = { style: "dark", links: [ { - title: "Docs", + title: "Docs", items: [ { - label: "Collaborative SNARKs", - to: "/docs/overview", + label: "TACEO Network", + to: "/docs/taceo-network/network", + }, + { + label: "Privacy Services", + to: "/docs/services/overview", }, { - label: "TACEO:Proof", - to: "/docs/taceo-proof/overview", + label: "Developer Tools", + to: "/docs/overview", }, { - label: "TACEO:OPRF", - to: "/docs/taceo-oprf/overview", + label: "Infrastructure", + to: "/docs/taceo-proof/ops/onboarding", }, ], }, diff --git a/package-lock.json b/package-lock.json index e5a35e0..469df3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@algolia/autocomplete-shared": "^1.19.2", "@algolia/client-search": "^5.34.1", "@docusaurus/core": "3.8.1", + "@docusaurus/plugin-client-redirects": "^3.8.1", "@docusaurus/preset-classic": "3.8.1", "@mdx-js/react": "^3.1.0", "algoliasearch": "^5.34.1", @@ -3513,6 +3514,30 @@ "react-dom": "*" } }, + "node_modules/@docusaurus/plugin-client-redirects": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.8.1.tgz", + "integrity": "sha512-F+86R7PBn6VNgy/Ux8w3ZRypJGJEzksbejQKlbTC8u6uhBUhfdXWkDp6qdOisIoW0buY5nLqucvZt1zNJzhJhA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, "node_modules/@docusaurus/plugin-content-blog": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", @@ -4646,15 +4671,15 @@ } }, "node_modules/@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { @@ -7988,39 +8013,39 @@ } }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -8066,6 +8091,21 @@ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "license": "MIT" }, + "node_modules/express/node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", diff --git a/package.json b/package.json index ff95d0e..db8bde2 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@algolia/autocomplete-shared": "^1.19.2", "@algolia/client-search": "^5.34.1", "@docusaurus/core": "3.8.1", + "@docusaurus/plugin-client-redirects": "^3.8.1", "@docusaurus/preset-classic": "3.8.1", "@mdx-js/react": "^3.1.0", "algoliasearch": "^5.34.1", diff --git a/sidebars.ts b/sidebars.ts index 5b12429..aa433a3 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -11,176 +11,200 @@ import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; Create as many sidebars as you want. */ const sidebars: SidebarsConfig = { - // By default, Docusaurus generates a sidebar from the docs folder structure - // tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - coSnarkSidebar: [ - "overview", - "primer/mpc-primer", - "primer/collabSNARKs-primer", + // Unified sidebar structure for all documentation + mainSidebar: [ + "index", { type: "category", - label: "Getting Started", + label: "TACEO Network", + link: { type: "doc", id: "taceo-network/index" }, items: [ - "getting-started/quick-start-co-circom", - "getting-started/quick-start-co-noir", - "getting-started/install", - "getting-started/usage", + "taceo-network/network", ], }, { - type: "category", - label: "coCircom", - link: { type: "doc", id: "co-circom/co-circom" }, + type: "category", + label: "TACEO Services", + link: { type: "doc", id: "services/overview" }, items: [ { type: "category", - label: "Command-Line Interface", - link: { type: "doc", id: "co-circom/cli/cli" }, + label: "TACEO:Proof", + link: { type: "doc", id: "taceo-proof/overview" }, items: [ - "co-circom/cli/split-input", - "co-circom/cli/merge-input-shares", - "co-circom/cli/split-witness", - "co-circom/cli/generate-witness", - "co-circom/cli/translate-witness", - "co-circom/cli/generate-proof", - "co-circom/cli/verify", + { + type: "category", + label: "Getting Started", + items: [ + "taceo-proof/dev/quick-start-co-circom", + "taceo-proof/dev/quick-start-co-noir", + ], + }, + "taceo-proof/dev/blueprints", + "taceo-proof/dev/bestpractice", ], }, { type: "category", - label: "Rust Library", - link: { type: "doc", id: "co-circom/lib/lib" }, - items: ["co-circom/lib/example"], + label: "TACEO:OPRF", + link: { type: "doc", id: "taceo-oprf/overview" }, + items: [ + "taceo-oprf/concepts", + "taceo-oprf/use-cases", + "taceo-oprf/authorization", + { + type: "category", + label: "Getting Started", + items: [ + "taceo-oprf/quickstart", + "taceo-oprf/quicklocal", + ], + }, + { + type: "category", + label: "Development", + items: [ + "taceo-oprf/beta-oprf", + ], + }, + "taceo-oprf/api", + ], }, ], }, { type: "category", - label: "coNoir", - link: { type: "doc", id: "co-noir/co-noir" }, + label: "Developer Tools", + link: { type: "doc", id: "overview" }, items: [ + "network-config", // Network Configuration { type: "category", - label: "Command-Line Interface", - link: { type: "doc", id: "co-noir/cli/cli" }, + label: "Getting Started", items: [ - "co-noir/cli/split-input", - "co-noir/cli/merge-input-shares", - "co-noir/cli/split-witness", - "co-noir/cli/generate-witness", - "co-noir/cli/translate-witness", - "co-noir/cli/build-proving-key", - "co-noir/cli/split-proving-key", - "co-noir/cli/translate-proving-key", - "co-noir/cli/generate-proof", - "co-noir/cli/build-and-generate-proof", - "co-noir/cli/create-vk", - "co-noir/cli/verify", - "co-noir/cli/download-crs", + "getting-started/install", + "getting-started/quick-start-co-circom", + "getting-started/quick-start-co-noir", + "getting-started/usage", ], }, { type: "category", - label: "Rust Library", - link: { type: "doc", id: "co-noir/lib/lib" }, - items: ["co-noir/lib/example"], + label: "Examples", + link: { type: "doc", id: "examples/examples" }, + items: [ + "examples/poseidon", + "examples/poseidon_noir", + "examples/kyc", + "examples/multiplier2", + ], + }, + { + type: "category", + label: "coCircom", + link: { type: "doc", id: "co-circom/co-circom" }, + items: [ + { + type: "category", + label: "Command-Line Interface", + link: { type: "doc", id: "co-circom/cli/cli" }, + items: [ + "co-circom/cli/split-input", + "co-circom/cli/merge-input-shares", + "co-circom/cli/split-witness", + "co-circom/cli/generate-witness", + "co-circom/cli/translate-witness", + "co-circom/cli/generate-proof", + "co-circom/cli/verify", + ], + }, + { + type: "category", + label: "Rust Library", + link: { type: "doc", id: "co-circom/lib/lib" }, + items: ["co-circom/lib/example"], + }, + ], + }, + { + type: "category", + label: "coNoir", + link: { type: "doc", id: "co-noir/co-noir" }, + items: [ + { + type: "category", + label: "Command-Line Interface", + link: { type: "doc", id: "co-noir/cli/cli" }, + items: [ + "co-noir/cli/split-input", + "co-noir/cli/merge-input-shares", + "co-noir/cli/split-witness", + "co-noir/cli/generate-witness", + "co-noir/cli/translate-witness", + "co-noir/cli/build-proving-key", + "co-noir/cli/split-proving-key", + "co-noir/cli/translate-proving-key", + "co-noir/cli/generate-proof", + "co-noir/cli/build-and-generate-proof", + "co-noir/cli/create-vk", + "co-noir/cli/verify", + "co-noir/cli/download-crs", + ], + }, + { + type: "category", + label: "Rust Library", + link: { type: "doc", id: "co-noir/lib/lib" }, + items: ["co-noir/lib/example"], + }, + ], }, ], }, - "network-config", - { - type: "category", - label: "Examples", - link: { type: "doc", id: "examples/examples" }, - items: [ - "examples/poseidon", - "examples/poseidon_noir", - "examples/kyc", - "examples/multiplier2", - ], - }, - { - type: "category", - label: "Releases", - items: ["releases/co-snarks-april", "releases/co-noir-feb", "releases/co-noir-nov"], - }, // { // type: "category", - // label: "Design", - // items: ["design/mpc-vm", "design/known-issues", "design/roadmap"], + // label: "Running Infrastructure", + // items: [ + // "taceo-proof/ops/onboarding", // Running a Node + // "taceo-proof/ops/ops-scaling", // Node Requirements + // "taceo-proof/ops/security", // Node Operations + // ], // }, { type: "category", - label: "Background Material", + label: "Learning Resources", items: [ - "resources/circom", + "primer/collabSNARKs-primer", "resources/mpc", "resources/zkp", - "resources/collsnarks", - ], - }, - { - type: "category", - label: "Use Cases", - items: [ - "use-cases/defi", - "use-cases/ai", - "use-cases/data-ownership", - "use-cases/gaming", - ], - }, - ], - proofSidebar: [ - "taceo-proof/overview", - { - type: "category", - label: "Building Applications", - items: [ + { + type: "doc", + id: "resources/collsnarks", + label: "coSNARKs Further Reading", + }, { type: "category", - label: "Getting Started", + label: "Use Cases", items: [ - "taceo-proof/dev/quick-start-co-circom", - "taceo-proof/dev/quick-start-co-noir", + "use-cases/defi", + "use-cases/ai", + "use-cases/data-ownership", + "use-cases/gaming", ], }, - "taceo-proof/dev/blueprints", - "taceo-proof/dev/bestpractice", - ], - }, - { - type: "category", - label: "Running Nodes", - items: [ - "taceo-proof/ops/onboarding", - "taceo-proof/ops/ops-scaling", - "taceo-proof/ops/security", ], }, - ], - oprfSidebar: [ - "taceo-oprf/overview", - "taceo-oprf/concepts", - "taceo-oprf/use-cases", - "taceo-oprf/authorization", { type: "category", - label: "Getting Started", - items: [ - "taceo-oprf/quickstart", - "taceo-oprf/quicklocal", - ], - }, - { - type: "category", - label: "Development", + label: "Releases", items: [ - "taceo-oprf/beta-oprf", + { + type: "category", + label: "Releases", + items: ["releases/co-snarks-april", "releases/co-noir-feb", "releases/co-noir-nov"], + }, ], }, - "taceo-oprf/api", ], }; diff --git a/src/pages/index.module.css b/src/pages/index.module.css index cbba649..13a731a 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -3,7 +3,204 @@ * and scoped locally. */ -/* Network Section - Based on website's Network component */ +/* ─── Page wrapper ─────────────────────────────────────────────────────────── */ + +.page { + padding: 4rem 0 6rem; +} + +/* ─── Hero ──────────────────────────────────────────────────────────────────── */ + +.hero { + text-align: center; + margin-bottom: 4rem; + padding-bottom: 3rem; + border-bottom: 0.5px solid var(--ifm-color-emphasis-300); +} + +.heroTitle { + font-size: 3.5rem !important; + font-weight: 100 !important; + line-height: 1.15 !important; + margin-bottom: 1.2rem !important; + letter-spacing: -0.01em; +} + +.heroSubtitle { + font-size: 1.3rem !important; + font-weight: 300 !important; + color: var(--ifm-color-emphasis-700) !important; + margin-bottom: 0.6rem !important; + line-height: 1.5 !important; +} + +.heroTagline { + font-size: 1rem !important; + font-weight: 400 !important; + color: var(--ifm-color-emphasis-600) !important; + margin-bottom: 2.5rem !important; + line-height: 1.6 !important; +} + +.heroLinks { + display: flex; + gap: 2.5rem; + justify-content: center; + flex-wrap: wrap; +} + +.heroLink { + position: relative; + font-size: 1.1rem !important; + font-weight: 400 !important; + text-decoration: none !important; + padding: 0.4rem 0; + display: inline-block; + color: inherit !important; +} + +.heroLink::after { + content: ''; + position: absolute; + width: 100%; + height: 0.5px; + bottom: 0; + left: 0; + background-color: currentColor; + transition: height 0.2s ease; +} + +.heroLink:hover { + text-decoration: none !important; +} + +.heroLink:hover::after { + height: 1.5px; +} + +.heroLinkPrimary { + color: #52ffc5 !important; +} + +.heroLinkPrimary::after { + background-color: #52ffc5; +} + +/* ─── Section titles ────────────────────────────────────────────────────────── */ + +.sectionTitle { + font-size: 1.8rem !important; + font-weight: 100 !important; + text-align: center; + margin-bottom: 2.5rem !important; + letter-spacing: -0.01em; +} + +/* ─── Journey cards ─────────────────────────────────────────────────────────── */ + +.journeyGrid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; + max-width: 1100px; + margin: 0 auto 4rem; +} + +.journeyCard { + border: 0.5px solid var(--ifm-color-emphasis-400); + padding: 2rem 1.8rem; + display: flex; + flex-direction: column; + justify-content: space-between; + transition: border-color 0.2s ease; +} + +.journeyCard:hover { + border-color: var(--ifm-color-emphasis-700); +} + +.journeyStatus { + font-size: 0.9rem !important; + color: #52ffc5 !important; + font-weight: 400; + margin-bottom: 0.8rem; + letter-spacing: 0.03em; + text-transform: uppercase; +} + +.journeyCardTitle { + font-size: 1.3rem !important; + font-weight: 300 !important; + line-height: 1.4 !important; + margin-bottom: 1rem !important; +} + +.journeyCardDesc { + font-size: 0.95rem !important; + font-weight: 400 !important; + line-height: 1.6 !important; + color: var(--ifm-color-emphasis-700) !important; + margin-bottom: 1.5rem !important; +} + +/* ─── Quick links ────────────────────────────────────────────────────────────── */ + +.quickLinksSection { + padding-bottom: 3rem; + border-bottom: 0.5px solid var(--ifm-color-emphasis-300); + margin-bottom: 3rem; +} + +.quickLinksGrid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; + max-width: 800px; + margin: 0 auto; +} + +.quickLinkCard { + border: 0.5px solid var(--ifm-color-emphasis-400); + padding: 1.5rem 1.2rem; + text-align: center; +} + +.quickLinkTitle { + font-size: 0.85rem !important; + font-weight: 400 !important; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--ifm-color-emphasis-600) !important; + margin-bottom: 1rem !important; +} + +.quickLinkList { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +/* ─── CTA ────────────────────────────────────────────────────────────────────── */ + +.cta { + text-align: center; +} + +.ctaTitle { + font-size: 1.5rem !important; + font-weight: 100 !important; + margin-bottom: 2rem !important; + letter-spacing: -0.01em; +} + +.ctaLinks { + display: flex; + gap: 3rem; + justify-content: center; + flex-wrap: wrap; +} + +/* ─── Network card section (legacy classes kept for reference) ──────────────── */ .network { position: relative; z-index: 1; @@ -117,11 +314,11 @@ .networkLink { position: relative; - color: var(--taceo-background) !important; + color: inherit !important; font-weight: 400 !important; - font-size: 1.1rem !important; + font-size: 1rem !important; text-decoration: none !important; - padding: 0.5rem 0; + padding: 0.4rem 0; display: inline-block; } @@ -132,8 +329,8 @@ height: 0.5px; bottom: 0; left: 0; - background-color: #000000; - transition: all 0.2s ease; + background-color: currentColor; + transition: height 0.2s ease; } .networkLink:hover { @@ -141,8 +338,7 @@ } .networkLink:hover::after { - background-color: #000000; - height: 1px; + height: 1.5px; } /* Dark mode overrides */ @@ -187,34 +383,17 @@ font-size: 2.8rem !important; line-height: 3.2rem !important; } - - .networkGrid { - grid-template-columns: 1fr; - gap: 2rem; - padding: 0 1rem; - } -} -@media screen and (max-width: 996px) and (min-width: 769px) { - .networkCardInner { - grid-template-columns: auto 1fr; - gap: 1rem; + .heroTitle { + font-size: 2.6rem !important; } - - .networkIcon { - grid-column: 1; - display: flex; - align-items: flex-start; - padding-top: 1rem; - width: 3rem; - } - - .networkContent { - grid-column: 2; - display: flex; - flex-direction: column; - justify-content: space-between; - height: 100%; + + .networkGrid, + .journeyGrid, + .quickLinksGrid { + grid-template-columns: 1fr !important; + gap: 1.5rem; + padding: 0 1rem; } } @@ -223,19 +402,31 @@ font-size: 2.2rem !important; line-height: 2.6rem !important; } - - .networkGrid { + + .heroTitle { + font-size: 2rem !important; + } + + .heroLinks, + .ctaLinks { gap: 1.5rem; - padding: 0 1rem; } - + + .networkGrid, + .journeyGrid, + .quickLinksGrid { + grid-template-columns: 1fr !important; + gap: 1.2rem; + padding: 0; + } + .networkCardInner { grid-template-columns: auto 1fr; text-align: left; padding: 1.2rem 1rem; gap: 1rem; } - + .networkIcon { grid-column: 1; display: flex; @@ -243,7 +434,7 @@ padding-top: 1rem; width: 3rem; } - + .networkContent { grid-column: 2; display: flex; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 2fcb50d..9e26e2f 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -4,75 +4,106 @@ import Layout from '@theme/Layout'; import styles from './index.module.css'; -function NetworkTools() { - const tools = [ - { - title: "CoSNARKs
for Circom and Noir", - status: "Status: coCircom feature complete, coNoir in active development", - description: "Developer tooling to run circom and Noir circuits in an MPC environment.", - link: "/docs/overview", - linkText: "Get started", - highlight: true, - }, - { - title: "TACEO:Proof
Private Proof Network", - status: "Status: Live in production and ready for use", - description: "CoSNARK network to outsource proof generation while maintaining privacy.", - link: "/docs/taceo-proof/overview", - linkText: "Learn more", - highlight: true, - }, - { - title: "TACEO:OPRF
Oblivious Pseudorandom Function", - status: "Status: In beta", - description: "Privacy-preserving pseudorandom function for nullifiers and more.", - link: "/docs/taceo-oprf/overview", - linkText: "Explore", - highlight: true, - }, - ]; - +function GuidanceSection() { return ( -
+
-

- Documentation & Tools -

-

- We're building an encrypted compute layer for private shared state via the TACEO Network.
- Here you'll find documentation pertaining to the tools and services currently available. -

-
- {tools.map((tool, idx) => ( -
-
-
-
-
-
-

-
- {tool.status} -
-
- {tool.description} -
-
- - {tool.linkText} - -
-

+ {/* ── Hero ── */} +
+

TACEO Network

+

Private execution layer for digital rails.

+

+ The TACEO Network and services enable computation over sensitive data without exposing inputs. +

+
+ + Browse Documentation + +
+
+ + {/* ── Journey cards ── */} +

What do you want to accomplish?

+ +
+
+
+
Learn the fundamentals
+

I want to understand TACEO Network

+

+ Understand how distributed privacy-preserving computation works and why it matters. +

+
+ Explore Network +
+ +
+
+
Production ready
+

I want to add privacy services to my app

+

+ Integrate TACEO:Proof for private proof delegation or TACEO:OPRF for privacy-preserving functions. +

+
+ Browse Services +
+ +
+
+
Developer tools
+

I want to experiment with CoSNARKs

+

+ Build collaborative zero-knowledge circuits using Co-Circom and Co-Noir tooling. +

+
+ Start Building +
+
+ + {/* ── Quick Links ── */} +
+

Quick Links

+
+
+

New to Privacy Tech?

+
+ Secure Multiparty Computation + CoSNARKs Primer +
+
+
+

Real Applications

+
+ DeFi + AI + Gaming
- ))} +
+

Get In Touch

+
+ Discord + hello@taceo.io +
+
+
+
+ + {/* ── CTA ── */} +
+

Ready to get started?

+
+ + Browse Documentation + + + Browse Services + + + Ask Questions + +
@@ -87,7 +118,7 @@ export default function Home(): JSX.Element { description="Privacy-preserving computation with collaborative SNARKs and secure multi-party computation" wrapperClassName="homepage-layout">
- +
); From f6817effcd3b6b17703f06f20f913416a2a3da5b Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 10:34:22 +0100 Subject: [PATCH 02/12] reorder categories --- sidebars.ts | 77 +++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/sidebars.ts b/sidebars.ts index aa433a3..0e209e9 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -18,73 +18,65 @@ const sidebars: SidebarsConfig = { type: "category", label: "TACEO Network", link: { type: "doc", id: "taceo-network/index" }, - items: [ - "taceo-network/network", - ], + items: ["taceo-network/network"], }, { - type: "category", + type: "category", label: "TACEO Services", link: { type: "doc", id: "services/overview" }, items: [ { type: "category", - label: "TACEO:Proof", - link: { type: "doc", id: "taceo-proof/overview" }, + label: "TACEO:OPRF", + link: { type: "doc", id: "taceo-oprf/overview" }, items: [ + "taceo-oprf/concepts", + "taceo-oprf/use-cases", + "taceo-oprf/authorization", { type: "category", label: "Getting Started", - items: [ - "taceo-proof/dev/quick-start-co-circom", - "taceo-proof/dev/quick-start-co-noir", - ], + items: ["taceo-oprf/quickstart", "taceo-oprf/quicklocal"], }, - "taceo-proof/dev/blueprints", - "taceo-proof/dev/bestpractice", + { + type: "category", + label: "Development", + items: ["taceo-oprf/beta-oprf"], + }, + "taceo-oprf/api", ], }, { type: "category", - label: "TACEO:OPRF", - link: { type: "doc", id: "taceo-oprf/overview" }, + label: "TACEO:Proof", + link: { type: "doc", id: "taceo-proof/overview" }, items: [ - "taceo-oprf/concepts", - "taceo-oprf/use-cases", - "taceo-oprf/authorization", { type: "category", - label: "Getting Started", - items: [ - "taceo-oprf/quickstart", - "taceo-oprf/quicklocal", - ], - }, - { - type: "category", - label: "Development", + label: "Getting Started", items: [ - "taceo-oprf/beta-oprf", + "taceo-proof/dev/quick-start-co-circom", + "taceo-proof/dev/quick-start-co-noir", ], }, - "taceo-oprf/api", + "taceo-proof/dev/blueprints", + "taceo-proof/dev/bestpractice", ], }, ], }, { type: "category", - label: "Developer Tools", + label: "Developer Tools", link: { type: "doc", id: "overview" }, items: [ - "network-config", // Network Configuration { type: "category", label: "Getting Started", items: [ "getting-started/install", "getting-started/quick-start-co-circom", - "getting-started/quick-start-co-noir", + "getting-started/quick-start-co-noir", "getting-started/usage", ], }, @@ -93,12 +85,13 @@ const sidebars: SidebarsConfig = { label: "Examples", link: { type: "doc", id: "examples/examples" }, items: [ - "examples/poseidon", + "examples/poseidon", "examples/poseidon_noir", "examples/kyc", "examples/multiplier2", ], }, + "network-config", // Network Configuration { type: "category", label: "coCircom", @@ -114,7 +107,7 @@ const sidebars: SidebarsConfig = { "co-circom/cli/split-witness", "co-circom/cli/generate-witness", "co-circom/cli/translate-witness", - "co-circom/cli/generate-proof", + "co-circom/cli/generate-proof", "co-circom/cli/verify", ], }, @@ -133,7 +126,7 @@ const sidebars: SidebarsConfig = { items: [ { type: "category", - label: "Command-Line Interface", + label: "Command-Line Interface", link: { type: "doc", id: "co-noir/cli/cli" }, items: [ "co-noir/cli/split-input", @@ -146,7 +139,7 @@ const sidebars: SidebarsConfig = { "co-noir/cli/translate-proving-key", "co-noir/cli/generate-proof", "co-noir/cli/build-and-generate-proof", - "co-noir/cli/create-vk", + "co-noir/cli/create-vk", "co-noir/cli/verify", "co-noir/cli/download-crs", ], @@ -166,7 +159,7 @@ const sidebars: SidebarsConfig = { // label: "Running Infrastructure", // items: [ // "taceo-proof/ops/onboarding", // Running a Node - // "taceo-proof/ops/ops-scaling", // Node Requirements + // "taceo-proof/ops/ops-scaling", // Node Requirements // "taceo-proof/ops/security", // Node Operations // ], // }, @@ -184,7 +177,7 @@ const sidebars: SidebarsConfig = { }, { type: "category", - label: "Use Cases", + label: "Use Cases", items: [ "use-cases/defi", "use-cases/ai", @@ -195,13 +188,17 @@ const sidebars: SidebarsConfig = { ], }, { - type: "category", + type: "category", label: "Releases", items: [ { type: "category", - label: "Releases", - items: ["releases/co-snarks-april", "releases/co-noir-feb", "releases/co-noir-nov"], + label: "coSNARK Releases", + items: [ + "releases/co-snarks-april", + "releases/co-noir-feb", + "releases/co-noir-nov", + ], }, ], }, From f534971a9cd20e42dd8b6394f78d814a74c79dac Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 10:53:02 +0100 Subject: [PATCH 03/12] fix: borders with fractional px height --- src/pages/index.module.css | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 13a731a..866166e 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -60,7 +60,7 @@ } .heroLink::after { - content: ''; + content: ""; position: absolute; width: 100%; height: 0.5px; @@ -323,10 +323,10 @@ } .networkLink::after { - content: ''; + content: ""; position: absolute; width: 100%; - height: 0.5px; + height: 1px; bottom: 0; left: 0; background-color: currentColor; @@ -338,35 +338,35 @@ } .networkLink:hover::after { - height: 1.5px; + height: 2px; } /* Dark mode overrides */ -[data-theme='dark'] .network { +[data-theme="dark"] .network { background-color: var(--ifm-background-color); } -[data-theme='dark'] .networkCardInner { +[data-theme="dark"] .networkCardInner { border: 1px solid #f1f0ec; } -[data-theme='dark'] .networkTitle, -[data-theme='dark'] .networkDescription, -[data-theme='dark'] .networkCardTitle, -[data-theme='dark'] .networkCardDescription, -[data-theme='dark'] .networkLink { +[data-theme="dark"] .networkTitle, +[data-theme="dark"] .networkDescription, +[data-theme="dark"] .networkCardTitle, +[data-theme="dark"] .networkCardDescription, +[data-theme="dark"] .networkLink { color: #f1f0ec !important; } -[data-theme='dark'] .networkStatus { +[data-theme="dark"] .networkStatus { color: var(--ifm-color-primary) !important; } -[data-theme='dark'] .networkLink::after { +[data-theme="dark"] .networkLink::after { background-color: #f1f0ec; } -[data-theme='dark'] .networkLink:hover::after { +[data-theme="dark"] .networkLink:hover::after { background-color: #f1f0ec; } @@ -442,4 +442,4 @@ justify-content: space-between; height: 100%; } -} \ No newline at end of file +} From 0d259428c6ebb804376cc444c61976db5cf903d9 Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 10:56:38 +0100 Subject: [PATCH 04/12] fix: colors in landing page --- src/pages/index.module.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 866166e..0091ea8 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -121,12 +121,15 @@ .journeyStatus { font-size: 0.9rem !important; - color: #52ffc5 !important; + color: #05525a !important; font-weight: 400; margin-bottom: 0.8rem; letter-spacing: 0.03em; text-transform: uppercase; } +[data-theme="dark"] .journeyStatus { + color: #52ffc5 !important; +} .journeyCardTitle { font-size: 1.3rem !important; From 2339ecb31fec25bf5df58ddb3536ca0bfefefa0e Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 10:58:19 +0100 Subject: [PATCH 05/12] fix: headers for toc --- docs/taceo-network/network.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/taceo-network/network.mdx b/docs/taceo-network/network.mdx index 4c8e1e9..895f9fb 100644 --- a/docs/taceo-network/network.mdx +++ b/docs/taceo-network/network.mdx @@ -105,25 +105,25 @@ The TACEO Network grows through purpose-built privacy services. Each service provides a specific cryptographic capability that applications can integrate directly through TACEO APIs and SDKs. -### TACEO:Proof +### TACEO\:Proof Generates verifiable zero-knowledge proofs for applications and protocols that need outsourced proving. **Status:** Live in production. -### TACEO:OPRF +### TACEO\:OPRF Enables private credential and uniqueness verification using oblivious pseudorandom function protocols. **Status:** Live in production. -### TACEO:OMap +### TACEO\:OMap Enables verifiable private storage and retrieval for shared confidential state, supporting use cases such as private ledgers and registries. **Status:** Deployed and onboarding initial applications. -### TACEO:Match +### TACEO\:Match Distributes identity matching across MPC node committees so no single party holds complete raw biometric data. @@ -210,4 +210,4 @@ Exploring the use of confidential computing technologies such as AMD SEV-SNP and Expanding APIs, SDKs, and tooling to simplify integration of privacy services into applications. -These developments aim to make confidential computation infrastructure more robust, accessible, and scalable for real-world applications. \ No newline at end of file +These developments aim to make confidential computation infrastructure more robust, accessible, and scalable for real-world applications. From 5576c4c82d15ec877b74050eec602b7ebb8243cb Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 10:58:50 +0100 Subject: [PATCH 06/12] reorder services --- docs/taceo-network/network.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/taceo-network/network.mdx b/docs/taceo-network/network.mdx index 895f9fb..88c83dd 100644 --- a/docs/taceo-network/network.mdx +++ b/docs/taceo-network/network.mdx @@ -105,15 +105,15 @@ The TACEO Network grows through purpose-built privacy services. Each service provides a specific cryptographic capability that applications can integrate directly through TACEO APIs and SDKs. -### TACEO\:Proof +### TACEO\:OPRF -Generates verifiable zero-knowledge proofs for applications and protocols that need outsourced proving. +Enables private credential and uniqueness verification using oblivious pseudorandom function protocols. **Status:** Live in production. -### TACEO\:OPRF +### TACEO\:Proof -Enables private credential and uniqueness verification using oblivious pseudorandom function protocols. +Generates verifiable zero-knowledge proofs for applications and protocols that need outsourced proving. **Status:** Live in production. From 34266a82bb2c127e0b0803714ddfaa396bd14cee Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:07:11 +0100 Subject: [PATCH 07/12] fix: background colors of details cards in network page --- docs/index.mdx | 21 +++------------------ src/css/custom.css | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 0c36d67..ded24f3 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -33,12 +33,7 @@ Experiment with coCircom and coNoir to run collaborative zero-knowledge workflow
-
+
🌐 **Understand how TACEO Network works** @@ -57,12 +52,7 @@ Experiment with coCircom and coNoir to run collaborative zero-knowledge workflow
-
+
⚑ **Add privacy services to my application** @@ -81,12 +71,7 @@ Experiment with coCircom and coNoir to run collaborative zero-knowledge workflow
-
+
πŸ”§ **Experiment with collaborative SNARKs** diff --git a/src/css/custom.css b/src/css/custom.css index 916eb1f..0688334 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -178,6 +178,40 @@ html:not([data-theme="dark"]) .main-wrapper { border-top-color: var(--ifm-color-emphasis-200); } +/* Path cards on index page - theme-aware tinted backgrounds */ +.path-card-network { + padding: 1rem; + border: 1px solid var(--ifm-color-primary); + border-radius: 8px; + background-color: rgba(5, 82, 90, 0.13); +} + +[data-theme="dark"] .path-card-network { + background-color: rgba(26, 172, 152, 0.25); +} + +.path-card-services { + padding: 1rem; + border: 1px solid var(--ifm-color-success); + border-radius: 8px; + background-color: rgba(40, 167, 69, 0.13); +} + +[data-theme="dark"] .path-card-services { + background-color: rgba(40, 167, 69, 0.28); +} + +.path-card-tools { + padding: 1rem; + border: 1px solid var(--ifm-color-warning); + border-radius: 8px; + background-color: rgba(255, 193, 7, 0.13); +} + +[data-theme="dark"] .path-card-tools { + background-color: rgba(255, 193, 7, 0.25); +} + /* External link arrows in navbar */ .navbar__item .navbar__link[href^="http"]:not([href*="docs.taceo.io"]) { position: relative; From c460708b0dfb3bb37ab75432a8667528cbb08743 Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:11:23 +0100 Subject: [PATCH 08/12] fix: info box lists --- docs/index.mdx | 42 +++++++++++++++++++++++++----------------- src/css/custom.css | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 17 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index ded24f3..45a113b 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -108,30 +108,38 @@ New to privacy-preserving computation? Start here:
-
+
+ **πŸŽ“ Understand the Basics** -
-Secure Multiparty Computation -
-Collaborative SNARKs Primer + +
    +
  • Secure Multiparty Computation
  • +
  • Collaborative SNARKs Primer
  • +
+
-
+
+ **πŸ’‘ See Use Cases** -
-DeFi Applications -
-AI & Machine Learning -
-Gaming & NFTs + +
    +
  • DeFi Applications
  • +
  • AI & Machine Learning
  • +
  • Gaming & NFTs
  • +
+
-
+
+ **πŸ“Ί Watch Videos** -
-TACEO Overview -
-MPC-Enabled Proof Markets + +
    +
  • TACEO Overview
  • +
  • MPC-Enabled Proof Markets
  • +
+
diff --git a/src/css/custom.css b/src/css/custom.css index 0688334..63c4623 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -212,6 +212,42 @@ html:not([data-theme="dark"]) .main-wrapper { background-color: rgba(255, 193, 7, 0.25); } +.info-card { + padding: 1rem 1.25rem; + border-radius: 8px; + background-color: rgba(31, 120, 180, 0.10); +} + +[data-theme="dark"] .info-card { + background-color: rgba(31, 120, 180, 0.25); +} + +.info-card p { + margin: 0 0 0.5rem 0; +} + +.info-card ul { + margin: 0; + padding: 0; + list-style: none; +} + +.info-card ul li { + margin: 0.3rem 0; + padding-left: 0.9rem; + position: relative; +} + +.info-card ul li::before { + content: 'β†’'; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + opacity: 0.5; + font-size: 0.85em; +} + /* External link arrows in navbar */ .navbar__item .navbar__link[href^="http"]:not([href*="docs.taceo.io"]) { position: relative; From 2ab8a9930d746d94dc1c48fec4488e9a274c29c3 Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:13:10 +0100 Subject: [PATCH 09/12] fix: get in touch buttons --- docs/index.mdx | 15 +++------------ src/css/custom.css | 6 ++++++ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 45a113b..6e981d6 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -156,18 +156,9 @@ New to privacy-preserving computation? Start here: **Questions? We're here to help.** -
- - πŸ’¬ Join Discord - - - πŸ“§ Email Us - +
+πŸ’¬ Join Discord +πŸ“§ Email Us
diff --git a/src/css/custom.css b/src/css/custom.css index 63c4623..c49e4f8 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -238,6 +238,12 @@ html:not([data-theme="dark"]) .main-wrapper { position: relative; } +.get-in-touch-btn { + display: inline-flex !important; + align-items: center; + gap: 0.4rem; +} + .info-card ul li::before { content: 'β†’'; position: absolute; From 74ae5677999996145f8734ec0d5afe27712da4b5 Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:14:49 +0100 Subject: [PATCH 10/12] fix: info cards in network --- docs/taceo-network/index.mdx | 39 ++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/docs/taceo-network/index.mdx b/docs/taceo-network/index.mdx index f5827ea..3b907a7 100644 --- a/docs/taceo-network/index.mdx +++ b/docs/taceo-network/index.mdx @@ -61,28 +61,37 @@ If you are evaluating TACEO for a product, the usual flow is:
-
+
+ **Understand the system** -
-How the Network Works -
-Interacting with the Network + +
    +
  • How the Network Works
  • +
  • Interacting with the Network
  • +
+
-
+
+ **Review trust and safety** -
-Security Model -
-Network Governance + +
    +
  • Security Model
  • +
  • Network Governance
  • +
+
-
+
+ **See how it connects to products** -
-TACEO Services Overview -
-Privacy Services on the Network + +
    +
  • TACEO Services Overview
  • +
  • Privacy Services on the Network
  • +
+
From 046f9761ff1b161bad264d4e269a7320af127e27 Mon Sep 17 00:00:00 2001 From: Daniel Kales <11509575+dkales@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:26:51 +0100 Subject: [PATCH 11/12] fix: service card colors in services --- docs/index.mdx | 5 +- docs/services/overview.mdx | 103 ++++++++++++++----------------------- src/css/custom.css | 49 ++++++++++++++++++ 3 files changed, 92 insertions(+), 65 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 6e981d6..38d7555 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -156,9 +156,10 @@ New to privacy-preserving computation? Start here: **Questions? We're here to help.** +{/* prettier-ignore */}
-πŸ’¬ Join Discord -πŸ“§ Email Us + πŸ’¬ Join Discord + πŸ“§ Email Us
diff --git a/docs/services/overview.mdx b/docs/services/overview.mdx index 3514c69..5f67a98 100644 --- a/docs/services/overview.mdx +++ b/docs/services/overview.mdx @@ -3,7 +3,7 @@ title: Privacy Services Overview description: Choose the right privacy service for your application --- -import Link from '@docusaurus/Link'; +import Link from "@docusaurus/Link"; # Privacy Services on TACEO Network @@ -13,65 +13,53 @@ The TACEO Network provides production-ready privacy services that your applicati
-
+
+ +### **TACEO\:Proof** -### **TACEO:Proof** -*Private Zero-Knowledge Proof Generation* +_Private Zero-Knowledge Proof Generation_ **Use when you need:** + - Generate ZK proofs without revealing witness data -- Scale proof generation beyond client devices +- Scale proof generation beyond client devices - Mobile/web app proof generation - Production-ready Groth16 proofs **Perfect for:** + - DeFi applications with private transactions - Identity systems requiring proof of credentials - Gaming with hidden state verification - Any app needing scalable ZK proofs - - Learn More - +{/* prettier-ignore */} +Learn More
-
+
+ +### **TACEO\:OPRF** -### **TACEO:OPRF** -*Oblivious Pseudorandom Function* +_Oblivious Pseudorandom Function_ **Use when you need:** + - Privacy-preserving uniqueness checks - Generate nullifiers without revealing identity - Private set membership - Threshold signatures **Perfect for:** + - Biometric identity verification -- Anonymous credential systems +- Anonymous credential systems - Privacy-preserving voting - Anti-fraud without KYC data - - Learn More - +{/* prettier-ignore */} +Learn More
@@ -81,16 +69,11 @@ The TACEO Network provides production-ready privacy services that your applicati
-
+
+ +### **TACEO\:OMap** -### **TACEO:OMap** -*Confidential Shared State* +_Confidential Shared State_ **Coming Q2 2026** @@ -106,8 +89,9 @@ Private data structures and confidential shared state management across multiple opacity: '0.8' }}> -### **TACEO:Match** -*Distributed Biometric Verification* +### **TACEO\:Match** + +_Distributed Biometric Verification_ **Coming Q3 2026** @@ -120,51 +104,44 @@ Privacy-preserving biometric matching and verification without centralized biome ## Integration Patterns ### **Direct API Integration** + Most applications integrate TACEO services through REST APIs: + - Submit encrypted requests - Receive cryptographic proofs or results - Verify outputs using provided verification data -### **SDK Integration** +### **SDK Integration** + Use our SDKs for easier integration with proper key management: + - JavaScript/TypeScript SDK - Python SDK - Go SDK (coming soon) ### **Smart Contract Integration** + Verify results directly in your smart contracts: + - On-chain proof verification - Integrate with existing DeFi protocols - composable with other privacy tools ## Getting Started -
+
### πŸš€ **Ready to integrate?** 1. **Choose your service** from the options above 2. **Read the service documentation** for technical details -3. **Try the quickstart** to see it in action +3. **Try the quickstart** to see it in action 4. **Contact us** for production access and support -
- - Get Production Access - - - Join Discord Community - +{/* prettier-ignore */} +
+ Get Production Access + Join Discord Community
@@ -179,4 +156,4 @@ The TACEO Network already powers privacy infrastructure for: --- -Need help choosing the right service? [Join our Discord](https://taceo.io/discord) or [email our team](mailto:hello@taceo.io). \ No newline at end of file +Need help choosing the right service? [Join our Discord](https://taceo.io/discord) or [email our team](mailto:hello@taceo.io). diff --git a/src/css/custom.css b/src/css/custom.css index c49e4f8..a538160 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -238,6 +238,55 @@ html:not([data-theme="dark"]) .main-wrapper { position: relative; } +/* Service cards on services/overview page */ +.service-card-primary { + padding: 2rem; + border: 2px solid var(--ifm-color-primary); + border-radius: 12px; + background-color: rgba(5, 82, 90, 0.08); +} + +[data-theme="dark"] .service-card-primary { + background-color: rgba(26, 172, 152, 0.18); +} + +.service-card-success { + padding: 2rem; + border: 2px solid var(--ifm-color-success); + border-radius: 12px; + background-color: rgba(40, 167, 69, 0.08); +} + +[data-theme="dark"] .service-card-success { + background-color: rgba(40, 167, 69, 0.20); +} + +.service-card-muted { + padding: 2rem; + border: 1px solid var(--ifm-color-emphasis-400); + border-radius: 12px; + background-color: var(--ifm-color-emphasis-100); + opacity: 0.8; +} + +.getting-started-box { + padding: 2rem; + border-radius: 8px; + margin-top: 2rem; + background-color: rgba(31, 120, 180, 0.10); +} + +[data-theme="dark"] .getting-started-box { + background-color: rgba(31, 120, 180, 0.25); +} + +.getting-started-box .button-row { + margin-top: 1rem; + display: flex; + align-items: center; + gap: 1rem; +} + .get-in-touch-btn { display: inline-flex !important; align-items: center; From 957f97b153c68139cd63aabe3b8380c61d9c43d6 Mon Sep 17 00:00:00 2001 From: ais Date: Wed, 18 Mar 2026 10:26:26 +0100 Subject: [PATCH 12/12] editorial / links pass --- docs/index.mdx | 16 +++---- docs/services/overview.mdx | 76 ++++++++++++++-------------------- docs/taceo-network/index.mdx | 2 +- docs/taceo-network/network.mdx | 8 +++- docusaurus.config.ts | 14 +++---- src/pages/index.tsx | 14 +++---- 6 files changed, 59 insertions(+), 71 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 38d7555..1821736 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -11,7 +11,7 @@ import Link from '@docusaurus/Link'; TACEO provides private execution infrastructure for applications that need to compute on sensitive data without exposing inputs. -This documentation is organized around three areas: the **TACEO Network**, **production privacy services** such as TACEO:Proof and TACEO:OPRF, and **developer tooling** for collaborative zero-knowledge workflows. +This documentation is organized around three areas: the **TACEO Network**, **production privacy services** such as TACEO:OPRF and TACEO:Proof, and **developer tooling** for collaborative zero-knowledge workflows. If you are new, start by choosing the path that best matches your goal. This page is designed to help you get oriented quickly and then move into the right part of the documentation. @@ -23,7 +23,7 @@ Learn how the network enables verifiable collaboration over encrypted data, what ### Integrate privacy services -Use TACEO services when you want production-ready privacy primitives in your application, such as private proof delegation with TACEO:Proof or privacy-preserving functions with TACEO:OPRF. +Use TACEO services when you want production-ready privacy primitives in your application, such as privacy-preserving nullifiers with TACEO:OPRF or private proof delegation with TACEO:Proof. ### Build with developer tooling @@ -35,7 +35,7 @@ Experiment with coCircom and coNoir to run collaborative zero-knowledge workflow
-🌐 **Understand how TACEO Network works** +🌐 **Understand how The TACEO Network works**
@@ -62,9 +62,9 @@ Experiment with coCircom and coNoir to run collaborative zero-knowledge workflow **Best for:** Application developers, product teams, and technical founders **Start here:** -1. **[Choose Your Service](/docs/services/overview)** - Compare TACEO:Proof and TACEO:OPRF -2. **[Review TACEO:Proof](/docs/taceo-proof/overview)** - Understand private proof delegation -3. **[Review TACEO:OPRF](/docs/taceo-oprf/overview)** - Understand privacy-preserving function workflows +1. **[Choose Your Service](/docs/services/overview)** - Compare TACEO:OPRF and TACEO:Proof +2. **[Review TACEO:OPRF](/docs/taceo-oprf/overview)** - Understand privacy-preserving nullifiers +3. **[Review TACEO:Proof](/docs/taceo-proof/overview)** - Understand private proof delegation **Next steps:** [Email us for production access](mailto:hello@taceo.io) and [join Discord](https://taceo.io/discord) for technical support @@ -97,7 +97,7 @@ Experiment with coCircom and coNoir to run collaborative zero-knowledge workflow ## What is available today - **TACEO Network documentation** explains the system architecture, security model, and application context -- **TACEO:Proof** and **TACEO:OPRF** are the main service entry points for teams integrating privacy features today +- **TACEO:OPRF** and **TACEO:Proof** are the main service entry points for teams integrating privacy features today - **Developer tooling** is available for teams exploring collaborative circuits and MPC-based proving workflows This means some parts of the docs describe production-oriented services, while others describe lower-level or experimental developer workflows. If you are evaluating TACEO for an application, the services section is usually the right place to begin. @@ -136,7 +136,7 @@ New to privacy-preserving computation? Start here: **πŸ“Ί Watch Videos**
    -
  • TACEO Overview
  • +
  • CoSNARKs Overview
  • MPC-Enabled Proof Markets
diff --git a/docs/services/overview.mdx b/docs/services/overview.mdx index 5f67a98..c2f8247 100644 --- a/docs/services/overview.mdx +++ b/docs/services/overview.mdx @@ -13,53 +13,53 @@ The TACEO Network provides production-ready privacy services that your applicati
-
+
-### **TACEO\:Proof** +### **TACEO\:OPRF** -_Private Zero-Knowledge Proof Generation_ +_Oblivious Pseudorandom Function_ **Use when you need:** -- Generate ZK proofs without revealing witness data -- Scale proof generation beyond client devices -- Mobile/web app proof generation -- Production-ready Groth16 proofs +- Privacy-preserving uniqueness checks +- Generate nullifiers without revealing identity +- Private set membership checks (e.g. PSI-style protocols) +- Identity-based rate limiting or eligibility checks **Perfect for:** -- DeFi applications with private transactions -- Identity systems requiring proof of credentials -- Gaming with hidden state verification -- Any app needing scalable ZK proofs +- Biometric identity and uniqueness verification +- Anonymous credentials and pseudonymous identities +- Builder codes and private access / eligibility systems +- Identity-based rate limiting {/* prettier-ignore */} -Learn More +Learn More
-
+
-### **TACEO\:OPRF** +### **TACEO\:Proof** -_Oblivious Pseudorandom Function_ +_Private Proof Delegation_ **Use when you need:** -- Privacy-preserving uniqueness checks -- Generate nullifiers without revealing identity -- Private set membership -- Threshold signatures +- Generate ZK proofs without revealing witness data +- Scale proof generation beyond client devices +- Mobile/web app proof generation +- Production-ready Groth16 proofs **Perfect for:** -- Biometric identity verification -- Anonymous credential systems -- Privacy-preserving voting -- Anti-fraud without KYC data +- DeFi applications with private transactions +- Identity systems requiring proof of credentials +- Gaming with hidden state verification +- Any app needing scalable ZK proofs {/* prettier-ignore */} -Learn More +Learn More
@@ -73,9 +73,9 @@ _Oblivious Pseudorandom Function_ ### **TACEO\:OMap** -_Confidential Shared State_ +_Private Reads & Writes_ -**Coming Q2 2026** +**Deployed, onboarding first applications** Private data structures and confidential shared state management across multiple parties. @@ -91,9 +91,9 @@ Private data structures and confidential shared state management across multiple ### **TACEO\:Match** -_Distributed Biometric Verification_ +_Distributed Biometric Uniqueness_ -**Coming Q3 2026** +**In active integration** Privacy-preserving biometric matching and verification without centralized biometric storage. @@ -105,27 +105,11 @@ Privacy-preserving biometric matching and verification without centralized biome ### **Direct API Integration** -Most applications integrate TACEO services through REST APIs: - -- Submit encrypted requests -- Receive cryptographic proofs or results -- Verify outputs using provided verification data - -### **SDK Integration** - -Use our SDKs for easier integration with proper key management: - -- JavaScript/TypeScript SDK -- Python SDK -- Go SDK (coming soon) +TODO ### **Smart Contract Integration** -Verify results directly in your smart contracts: - -- On-chain proof verification -- Integrate with existing DeFi protocols -- composable with other privacy tools +TODO ## Getting Started diff --git a/docs/taceo-network/index.mdx b/docs/taceo-network/index.mdx index 3b907a7..e2485c3 100644 --- a/docs/taceo-network/index.mdx +++ b/docs/taceo-network/index.mdx @@ -41,7 +41,7 @@ How the network is currently coordinated, how upgrades are handled, and how oper ### Real-world application context -Why the TACEO Network exists, what kinds of systems it is intended to support, and how it relates to services such as TACEO:Proof and TACEO:OPRF. +Why the TACEO Network exists, what kinds of systems it is intended to support, and how it relates to services such as TACEO:OPRF and TACEO:Proof. ## TACEO Network vs TACEO Services vs Developer Tooling diff --git a/docs/taceo-network/network.mdx b/docs/taceo-network/network.mdx index 88c83dd..1de336d 100644 --- a/docs/taceo-network/network.mdx +++ b/docs/taceo-network/network.mdx @@ -4,7 +4,7 @@ The TACEO Network is a private execution layer for digital infrastructure. It encrypts and distributes sensitive computation across independent node operators so that no single party controls the data, the keys, or the outcome. -The network has already been running production workloads for months, including biometric identity uniqueness verification at global scale through **World**, securing over 18 million users. +The cryptographic infrastructure behind the network has been deployed in production systems used in World ID, supporting identity verification for more than 18 million users. Applications integrate privacy services through APIs. Under the hood, those services route confidential requests to MPC node committees that compute over encrypted shares and return verifiable outputs. @@ -28,7 +28,11 @@ Only the requested result is revealed. The underlying inputs remain confidential ## How the Network Works -The TACEO Network executes requests through privacy services running on committees of independent MPC nodes. +While developing privacy-preserving MPC protocols for biometric uniqueness, we saw that teams were spending significant effort assembling and operating MPC networks with trusted counterparties. + +The TACEO Network removes this burden by providing shared MPC infrastructure. + +It executes requests through privacy services running on committees of independent MPC nodes. Each request follows the same high-level flow: diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 07132fe..0382dbb 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -135,10 +135,10 @@ const config: Config = { label: "Developer Tools", to: "/docs/overview", }, - { - label: "Infrastructure", - to: "/docs/taceo-proof/ops/onboarding", - }, + // { + // label: "Infrastructure", + // to: "/docs/taceo-proof/ops/onboarding", + // }, ], }, { @@ -149,12 +149,12 @@ const config: Config = { href: "https://taceo.io/discord", }, { - label: "Twitter", + label: "X", href: "https://twitter.com/taceo_io", }, { - label: "Telegram", - href: "https://t.me/collaborativeSNARK", + label: "Linkedin", + href: "https://www.linkedin.com/company/taceoio/", }, ], }, diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 9e26e2f..598d4b1 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -43,7 +43,7 @@ function GuidanceSection() {
Production ready

I want to add privacy services to my app

- Integrate TACEO:Proof for private proof delegation or TACEO:OPRF for privacy-preserving functions. + Integrate TACEO:OPRF for privacy-preserving nullifiers or TACEO:Proof for private proof delegation.

Browse Services @@ -84,7 +84,7 @@ function GuidanceSection() {

Get In Touch

Discord - hello@taceo.io + Email
@@ -92,13 +92,13 @@ function GuidanceSection() { {/* ── CTA ── */}
-

Ready to get started?

+

Looking for something else?

- - Browse Documentation + + Visit Website - - Browse Services + + Read our News Ask Questions