Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: 18 # or the version you prefer
node-version: 20 # or the version you prefer

- name: Install dependencies
run: |
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ Documentation for TEN Protocol, built with [Docusaurus 2](https://docusaurus.io/
### Installation

```
$ yarn
$ npm install
```

### Local Development

```
$ yarn start
$ npm run serve
```

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
Expand Down
2 changes: 1 addition & 1 deletion docs/3-smart-contract-features/1-data-access.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ To achieve this, we had to:
Here, we'll list the platform rules. The examples below will showcase how exactly to use these rules in practice.

- Any contract can be configured to be "transparent" or "private". By default, it is "private", which means the internal storage is not accessible. "Transparent" contracts behave exactly like Ethereum.
- Any RPC call accessing data like: `eth_call`, `eth_estimateGas`, `eth_getTransactionReceipt`, `eth_logs`, must be signed by a [viewing key (VK)](./4-smart-contracts.md). The VK itself must be signed by the main account. (Note that this is behind the scenes.)
- Any RPC call accessing data like: `eth_call`, `eth_estimateGas`, `eth_getTransactionReceipt`, `eth_logs`, must be signed by a [viewing key (VK)](../4-write-ten-dapp/1-high-level-concepts.md#ten-gateway). The VK itself must be signed by the main account. (Note that this is behind the scenes.)
- Event log visibility is configurable. Each event log can be visible to one or multiple of the topics (indexed fields), and the sender of the transaction, only if the topic is the `address` of an "Externally owned Account" (EOA). The event log can also be configured to be "public" - visible to everyone.
- When there is no configuration, the default event log visibility is:
- Rule 1: Event logs that contain EOAs as topics are only visible to those EOAs.
Expand Down
4 changes: 2 additions & 2 deletions docs/4-write-ten-dapp/1-high-level-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Below are the core concepts that make TEN unique while maintaining complete comp

## End-to-End Encryption

All contract execution runs inside TEEs; inputs, state, and (optionally) logs can be private. See the [Overview](../1-overview/overview.md) for architecture and threat model.
All contract execution runs inside TEEs; inputs, state, and (optionally) logs can be private. See the [Overview](../1-overview.md) for architecture and threat model.

Clients establish HTTPS connections that terminate inside TEEs via the TEN Gateway, preventing plaintext exposure on intermediaries; smart contracts then execute entirely within the enclave boundary, and contract state plus sensitive metadata are stored encrypted at rest, with read access enforced through Viewing Keys and policy logic.

Expand All @@ -30,7 +30,7 @@ Web service running in TEEs that provides the secure edge for dApps and user wal
- Manages Session Keys to enable no-click UX under developer-defined policies
- Caches encrypted metadata and frequently accessed data for performance and availability

See [TEN Gateway](./9-testnet.md#ten-gateway) for more information.
See [TEN Gateway](./6-testnet.md#ten-gateway) for more information.

## Personal Data

Expand Down
6 changes: 3 additions & 3 deletions docs/4-write-ten-dapp/2-setup-dev-env.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ To start building on TEN, you first need to set up and configure your wallet wit
2. **Configure MetaMask for TEN**:
- Visit the [TEN Gateway](https://gateway.ten.xyz/) for wallet setup.
- Click on “Connect to TEN Testnet” and follow the on-screen instructions.
- Learn more about the [TEN Gateway](/docs/tools-infrastructure/hosted-gateway).
3. **Acquire Testnet ETH Tokens**: To perform transactions, you'll need testnet ETH tokens. Refer to our [Getting tokens](/docs/getting-started/for-users/get-tokens).
- Learn more about the [TEN Gateway](../4-write-ten-dapp/1-high-level-concepts.md#ten-gateway).
3. **Acquire Testnet ETH Tokens**: To perform transactions, you'll need testnet ETH tokens. Refer to our [Getting tokens](../4-write-ten-dapp/6-testnet.md#requesting-testnet-eth).

### Supported Wallets

Expand All @@ -24,7 +24,7 @@ These wallets are confirmed to work smoothly with the TEN Gateway:

Once your wallet is ready, you can proceed with the development and deployment of your smart contracts.

1. **Choose an IDE**: Use your preferred development environment or Integrated Development Environment (IDE) like Truffle, Remix, Hardhat, or Foundry. Check out IDE compatibility and its features [here](/docs/tools-infrastructure/compatible-tools).
1. **Choose an IDE**: Use your preferred development environment or Integrated Development Environment (IDE) like Truffle, Remix, Hardhat, or Foundry.
2. **Connect IDE to MetaMask**: Ensure your chosen IDE is connected to your MetaMask wallet.

## 3. Docker Configuration
Expand Down
128 changes: 71 additions & 57 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
@@ -1,148 +1,162 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion

require('dotenv').config();
require("dotenv").config()

const {themes} = require('prism-react-renderer');
const lightTheme = themes.github;
const darkTheme = themes.dracula;
const { themes } = require("prism-react-renderer")
const lightTheme = themes.github
const darkTheme = themes.dracula

/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'TEN Documentation',
tagline: 'Encrypting Ethereum',
favicon: 'img/favicon.ico',
title: "TEN Documentation",
tagline: "Encrypting Ethereum",
favicon: "img/favicon.ico",

// Set the production url of your site here
url: 'https://docs.ten.xyz/',
url: "https://docs.ten.xyz/",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
baseUrl: "/",

// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'ten-protocol', // Usually your GitHub org/user name.
projectName: 'ten-documentation', // Usually your repo name.
organizationName: "ten-protocol", // Usually your GitHub org/user name.
projectName: "ten-documentation", // Usually your repo name.

onBrokenLinks: 'warn',
onBrokenMarkdownLinks: 'warn',
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",

// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
defaultLocale: "en",
locales: ["en"],
},

// Add Mendable configuration
customFields: {
mendableAnonKey: process.env.MENDABLE_ANON_KEY || 'YOUR_ANON_KEY',
mendableAnonKey: process.env.MENDABLE_ANON_KEY || "YOUR_ANON_KEY",
},

presets: [
[
'classic',
"classic",
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
sidebarPath: require.resolve("./sidebars.js"),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/ten-protocol/ten-documentation/blob/main',
"https://github.com/ten-protocol/ten-documentation/blob/main",
},
blog: {
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/ten-protocol/ten-documentation/blob/main'
"https://github.com/ten-protocol/ten-documentation/blob/main",
//editUrl:
//'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
//'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
customCss: require.resolve("./src/css/custom.css"),
},
}),
],
],

plugins: [
[
'@signalwire/docusaurus-plugin-llms-txt',
"@signalwire/docusaurus-plugin-llms-txt",
{
siteTitle: 'TEN Documentation',
siteDescription: 'Comprehensive guide to TEN protocol',
siteTitle: "TEN Documentation",
siteDescription: "Comprehensive guide to TEN protocol",
depth: 3,
content: {
includeBlog: false,
includePages: true,
enableLlmsFullTxt: true // Optional: generates llms-full.txt
}
}
]
enableLlmsFullTxt: true, // Optional: generates llms-full.txt
},
},
],
],

themes: [
[
"@easyops-cn/docusaurus-search-local",
{
hashed: true,
docsRouteBasePath: "/", // adjust if your docs live elsewhere
highlightSearchTermsOnTargetPage: true,
explicitSearchResultPath: true,
},
],
],

themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: 'img/docusaurus-social-card.jpg',
image: "img/docusaurus-social-card.jpg",
navbar: {
logo: {
alt: 'TEN Logo',
src: 'img/logo.svg',
alt: "TEN Logo",
src: "img/logo.svg",
srcDark: "img/logo-white.svg",
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Documentation',
type: "docSidebar",
sidebarId: "tutorialSidebar",
position: "left",
label: "Documentation",
},
{
to: "https://medium.com/obscuro-labs",
label: "Blog",
position: "left",
},
{to: 'https://medium.com/obscuro-labs', label: 'Blog', position: 'left'},
{ type: "search", position: "right" },
],
},
footer: {
style: 'dark',
style: "dark",
links: [
{
title: 'Docs',
title: "Docs",
items: [
{
label: 'Introduction',
to: '/docs/category/introduction',
label: "Introduction",
to: "/docs/overview",
},
],
},
{
title: 'Community',
title: "Community",
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/',
},
{
label: 'Discord',
href: 'https://t.co/UJC0FUAY2T',
label: "Discord",
href: "https://discord.gg/Zgx2ycH7Xw",
},
{
label: 'Twitter',
href: 'https://twitter.com/tenprotocol',
label: "Twitter",
href: "https://twitter.com/tenprotocol",
},
],
},
{
title: 'More',
title: "More",
items: [
{
label: 'Blog',
to: 'https://medium.com/obscuro-labs',
label: "Blog",
to: "https://medium.com/obscuro-labs",
},
{
label: 'GitHub',
href: 'https://github.com/ten-protocol/ten-documentation',
label: "GitHub",
href: "https://github.com/ten-protocol/ten-documentation",
},
],
},
Expand All @@ -154,6 +168,6 @@ const config = {
darkTheme: darkTheme,
},
}),
};
}

module.exports = config;
module.exports = config
Loading