diff --git a/documentation/README.md b/documentation/README.md
index b27ac7733d..7f2421af55 100644
--- a/documentation/README.md
+++ b/documentation/README.md
@@ -66,3 +66,40 @@ As a general approach, licensing is as follows this pattern:
* Nym applications and binaries are [GPL-3.0-only](https://www.gnu.org/licenses/)
* Used libraries and different components are [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.html) or [MIT](https://mit-license.org/)
+
+## SEO & Structured Data
+
+### Frontmatter
+Every `.mdx` page supports frontmatter fields that control meta tags, Open Graph, and JSON-LD schema:
+```yaml
+---
+title: "Page Title for Search Engines"
+description: "Unique meta description for this page."
+schemaType: "TechArticle" # TechArticle (default), HowTo, or FAQPage
+section: "Operators" # Operators, Developers, Network, APIs
+lastUpdated: "2026-02-11" # Feeds dateModified schema
+breadcrumbLabel: "Custom Label" # Optional, overrides URL slug in breadcrumbs
+---
+```
+
+Pages without frontmatter fall back to the default Nym description. See the [full spec](https://docs.google.com/document/d/14Af5brvEQSS0MIX9e_cZ3BktvgQeqA5CnzSGlKb7pYw/edit) for all page blocks.
+
+### Sitemap
+Generated automatically on build. After building:
+```bash
+npx next-sitemap
+```
+Outputs `sitemap.xml` and `robots.txt` to `/public`.
+
+### Environment Variable
+Set in production:
+```
+NEXT_PUBLIC_SITE_URL=https://nymtech.net/docs
+```
+
+### Schema Types
+| Type | Use When |
+|------|----------|
+| TechArticle | Reference docs, config guides, overviews (default) |
+| HowTo | Step-by-step install/setup guides |
+| FAQPage | Question-answer pages |
diff --git a/documentation/docs/components/outputs/command-outputs/node-api-check-help.md b/documentation/docs/components/outputs/command-outputs/node-api-check-help.md
index 875b2921ae..d41e42995c 100644
--- a/documentation/docs/components/outputs/command-outputs/node-api-check-help.md
+++ b/documentation/docs/components/outputs/command-outputs/node-api-check-help.md
@@ -11,7 +11,7 @@ positional arguments:
version_count (v, version)
Sum of nodes in given version(s)
-options:
+optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
```
diff --git a/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md b/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md
index 999f3d4a6f..b96adaebe5 100644
--- a/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md
+++ b/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md
@@ -6,7 +6,7 @@ usage: Nym-node API check query_stats [-h] [--no_routing_history]
positional arguments:
id supply nym-node identity key
-options:
+optional arguments:
-h, --help show this help message and exit
--no_routing_history Display node stats without routing history
--no_verloc_metrics Display node stats without verloc metrics
diff --git a/documentation/docs/next-sitemap.config.js b/documentation/docs/next-sitemap.config.js
new file mode 100644
index 0000000000..c676d09f91
--- /dev/null
+++ b/documentation/docs/next-sitemap.config.js
@@ -0,0 +1,28 @@
+/** @type {import('next-sitemap').IConfig} */
+module.exports = {
+ siteUrl: 'https://nymtech.net/docs',
+ generateRobotsTxt: true,
+ outDir: './public',
+ exclude: ['/api/*', '/docs/_*', '/404'],
+ robotsTxtOptions: {
+ policies: [
+ { userAgent: '*', allow: '/' },
+ { userAgent: '*', disallow: ['/api/', '/_next/'] },
+ ],
+ additionalSitemaps: [
+ 'https://nymtech.net/docs/sitemap-docs.xml',
+ ],
+ },
+ transform: async (config, path) => ({
+ loc: path,
+ changefreq: path.includes('/changelog')
+ ? 'weekly'
+ : path.includes('/docs/operators') || path.includes('/docs/developers')
+ ? 'monthly'
+ : 'yearly',
+ priority: path === '/docs' ? 1.0
+ : path.includes('/operators/nodes') || path.includes('/developers') ? 0.8
+ : 0.6,
+ lastmod: new Date().toISOString(),
+ }),
+}
\ No newline at end of file
diff --git a/documentation/docs/pages/apis/introduction.mdx b/documentation/docs/pages/apis/introduction.mdx
index c2c521ba8c..176ed71489 100644
--- a/documentation/docs/pages/apis/introduction.mdx
+++ b/documentation/docs/pages/apis/introduction.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym API Reference: Network Infrastructure"
+description: "Interactive API documentation for Nym network infrastructure. Query node status, network topology, blockchain state & mixnet performance programmatically."
+schemaType: "TechArticle"
+section: "APIs"
+lastUpdated: "2026-02-01"
+---
+
# Introduction
This site contains interactive APIs generated from the OpenAPI specs of various API endpoints offered by bits of Nym infrastructure run both by Nym and community operators for both Mainnet and the Sandbox testnet.
diff --git a/documentation/docs/pages/developers/chain.md b/documentation/docs/pages/developers/chain.md
index 58eed5ecaf..aa77836f61 100644
--- a/documentation/docs/pages/developers/chain.md
+++ b/documentation/docs/pages/developers/chain.md
@@ -1,3 +1,11 @@
+---
+title: "Nyx Blockchain & Nym Smart Contracts"
+description: "Developer guide for interacting with the Nyx blockchain via Cosmos SDK. Covers CLI wallet setup, Cosmos Registry, Ledger Live, and RPC node deployment."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-11"
+---
+
# Interacting with Nyx Chain and Smart Contracts
There are two options for interacting with the blockchain to send tokens or interact with deployed smart contracts:
diff --git a/documentation/docs/pages/developers/chain/rpc-node.md b/documentation/docs/pages/developers/chain/rpc-node.md
index ddd8afc538..091edcd56e 100644
--- a/documentation/docs/pages/developers/chain/rpc-node.md
+++ b/documentation/docs/pages/developers/chain/rpc-node.md
@@ -1,3 +1,11 @@
+---
+title: "Run a Nyx RPC Node for the Nym Network"
+description: "Set up and run a dedicated RPC node for the Nyx blockchain. Query network state, serve chain data, and interact with Nym smart contracts programmatically."
+schemaType: "HowTo"
+section: "Developers"
+lastUpdated: "2026-02-01"
+---
+
# RPC Nodes
RPC Nodes (which might otherwise be referred to as 'Lite Nodes' or just 'Full Nodes') differ from Validators in that they hold a copy of the Nyx blockchain, but do **not** participate in consensus / block-production.
diff --git a/documentation/docs/pages/developers/index.mdx b/documentation/docs/pages/developers/index.mdx
index f1cdd88680..a6e1d197f1 100644
--- a/documentation/docs/pages/developers/index.mdx
+++ b/documentation/docs/pages/developers/index.mdx
@@ -1,2 +1,10 @@
+---
+title: "Nym Developer Portal: SDKs & Tools"
+description: "Developer documentation for building privacy-enhanced applications on the Nym mixnet. Covers Rust SDK, TypeScript SDK, blockchain interaction & CLI tools."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-01"
+---
+
# Introduction
Nym's developer documentation covering core concepts of integrating with the Mixnet, interacting with the Nyx blockchain, an overview of the avaliable tools, and our SDK docs.
diff --git a/documentation/docs/pages/developers/nymvpncli.mdx b/documentation/docs/pages/developers/nymvpncli.mdx
index b3e915d854..660c7fd8e6 100644
--- a/documentation/docs/pages/developers/nymvpncli.mdx
+++ b/documentation/docs/pages/developers/nymvpncli.mdx
@@ -1,3 +1,11 @@
+---
+title: "NymVPN CLI: Run NymVPN from the Command Line"
+description: "Install and run NymVPN from the terminal on Linux, macOS, and Windows. Requires Rust and Go. Includes mnemonic generation and testnet configuration."
+schemaType: "HowTo"
+section: "Developers"
+lastUpdated: "2026-02-11"
+---
+
import { Callout } from 'nextra/components'
# Nym VPN CLI
diff --git a/documentation/docs/pages/developers/rust.mdx b/documentation/docs/pages/developers/rust.mdx
index d39707bb44..08c93ccc12 100644
--- a/documentation/docs/pages/developers/rust.mdx
+++ b/documentation/docs/pages/developers/rust.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Rust SDK: Privacy Apps for the Mixnet"
+description: "Rust SDK reference for building privacy applications on the Nym mixnet. Covers TcpProxy, Mixnet module, Client Pool, FFI bindings, and code examples."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-01"
+---
+
# Introduction
The Rust SDK allows exposes a few different modules, some more plug and play than others. Each of which handles exposes a Nym Client, which handles finding and using a route for packets through the Mixnet, encryption, and cover traffic, all under the hood.
diff --git a/documentation/docs/pages/developers/rust/mixnet.mdx b/documentation/docs/pages/developers/rust/mixnet.mdx
index 0524619874..2fc45fee11 100644
--- a/documentation/docs/pages/developers/rust/mixnet.mdx
+++ b/documentation/docs/pages/developers/rust/mixnet.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Rust SDK: Mixnet Messaging Module"
+description: "Use the Nym Rust SDK Mixnet module to send messages through the mixnet. Covers builder patterns, custom topologies, SOCKS proxy, and anonymous replies."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-01"
+---
+
# Mixnet Module
import { Callout } from 'nextra/components';
diff --git a/documentation/docs/pages/developers/rust/tcpproxy.mdx b/documentation/docs/pages/developers/rust/tcpproxy.mdx
index d34d4f0a37..e8fb886374 100644
--- a/documentation/docs/pages/developers/rust/tcpproxy.mdx
+++ b/documentation/docs/pages/developers/rust/tcpproxy.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym TcpProxy: Route TCP via the Mixnet"
+description: "Route TCP traffic through the Nym mixnet using the TcpProxy Rust module. Covers architecture, single and multi-connection patterns, and troubleshooting."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-11"
+---
+
# TcpProxy Module
import { Callout } from 'nextra/components';
diff --git a/documentation/docs/pages/developers/tools.mdx b/documentation/docs/pages/developers/tools.mdx
index 9f0299c333..ecfec9bd48 100644
--- a/documentation/docs/pages/developers/tools.mdx
+++ b/documentation/docs/pages/developers/tools.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Developer Tools: CLI, Echo & TcpProxy"
+description: "Overview of Nym developer tools including nym-cli for blockchain interaction, echo server for traffic testing, and standalone TcpProxy binary downloads."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-01"
+---
+
# Tools
There are a few tools available to developers for chain interaction: the `nym-cli` tool, which operates as an easier-to-use wrapper around `nyxd`, to allow operators to script interactions with their infrastructure (and those who prefer CLI tools).
diff --git a/documentation/docs/pages/developers/tools/nym-cli.md b/documentation/docs/pages/developers/tools/nym-cli.md
index e2be8ea3ef..e8f4f56903 100644
--- a/documentation/docs/pages/developers/tools/nym-cli.md
+++ b/documentation/docs/pages/developers/tools/nym-cli.md
@@ -1,3 +1,11 @@
+---
+title: "Nym CLI: Mixnet & Blockchain Commands"
+description: "Use nym-cli to interact with the Nym mixnet and Nyx blockchain. Manage nodes, delegate stake, and query network state from the command line."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-11"
+---
+
# Nym-CLI
This is a CLI tool for interacting with:
diff --git a/documentation/docs/pages/developers/typescript.mdx b/documentation/docs/pages/developers/typescript.mdx
index 3cf683f0f4..18929c5f1b 100644
--- a/documentation/docs/pages/developers/typescript.mdx
+++ b/documentation/docs/pages/developers/typescript.mdx
@@ -1,3 +1,10 @@
+---
+title: "Nym TypeScript SDK: Privacy for Web Apps"
+description: "TypeScript SDK for integrating web apps with the Nym mixnet. Covers mixFetch, Mixnet Client, Smart Contracts, and Cosmos Kit with live playground examples."
+schemaType: "TechArticle"
+section: "Developers"
+lastUpdated: "2026-02-11"
+---
# Introduction
diff --git a/documentation/docs/pages/index.mdx b/documentation/docs/pages/index.mdx
index cac9844c41..f3953b9b63 100644
--- a/documentation/docs/pages/index.mdx
+++ b/documentation/docs/pages/index.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Docs: Guides, SDKs & Architecture"
+description: "Official Nym documentation hub. Build privacy-enhanced applications, run mixnet nodes, and explore the network architecture and protocols powering NymVPN."
+schemaType: "TechArticle"
+section: "Documentation"
+lastUpdated: "2026-02-11"
+---
+
import { LandingPage } from '../components/landing-page.tsx'
diff --git a/documentation/docs/pages/network/index.md b/documentation/docs/pages/network/index.md
index 2fc3a1a583..0cec22555c 100644
--- a/documentation/docs/pages/network/index.md
+++ b/documentation/docs/pages/network/index.md
@@ -1,3 +1,11 @@
+---
+title: "Nym Network Architecture: How the Mixnet Works"
+description: "Deep dive into Nym network architecture, cryptographic systems, and how the mixnet provides network-level privacy against end-to-end attackers."
+schemaType: "TechArticle"
+section: "Network"
+lastUpdated: "2026-02-11"
+---
+
# Introduction
Nym's network documentation covering network architecture, node types, tokenomics, and crypto systems.
diff --git a/documentation/docs/pages/operators/binaries/building-nym.mdx b/documentation/docs/pages/operators/binaries/building-nym.mdx
index f730cfcdd8..8a4da7b3aa 100644
--- a/documentation/docs/pages/operators/binaries/building-nym.mdx
+++ b/documentation/docs/pages/operators/binaries/building-nym.mdx
@@ -1,3 +1,12 @@
+---
+title: "Building Nym from Source: Linux, macOS & Windows"
+description: "How to build Nym platform binaries from source code. Covers dependencies for Debian, Arch, macOS, and Windows. Requires Rust toolchain and Git."
+schemaType: "HowTo"
+section: "Operators"
+lastUpdated: "2026-02-01"
+breadcrumbLabel: "Building from Source"
+---
+
import { Callout } from 'nextra/components';
import { VarInfo } from 'components/variable-info.tsx';
diff --git a/documentation/docs/pages/operators/changelog.mdx b/documentation/docs/pages/operators/changelog.mdx
index 677cdaafc9..a5b5669303 100644
--- a/documentation/docs/pages/operators/changelog.mdx
+++ b/documentation/docs/pages/operators/changelog.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Node Changelog & Release History"
+description: "Complete changelog for Nym node releases, binary updates, SDK changes, and network upgrades. Sorted newest first with links to relevant documentation."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { Tabs } from 'nextra/components';
import { MyTab } from 'components/generic-tabs.tsx';
diff --git a/documentation/docs/pages/operators/community-counsel/legal.mdx b/documentation/docs/pages/operators/community-counsel/legal.mdx
index 6edc156904..341cbb0141 100644
--- a/documentation/docs/pages/operators/community-counsel/legal.mdx
+++ b/documentation/docs/pages/operators/community-counsel/legal.mdx
@@ -1,3 +1,11 @@
+---
+title: "Legal Guide for Nym Exit Gateway Operators"
+description: "Legal considerations for running a Nym exit gateway. Covers ISP communication templates, jurisdiction guidance, and abuse report response strategies."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { Tabs } from 'nextra/components';
import { RunTabs } from 'components/operators/nodes/node-run-command-tabs';
diff --git a/documentation/docs/pages/operators/community-counsel/templates.mdx b/documentation/docs/pages/operators/community-counsel/templates.mdx
index c701f1a003..b27ceabc71 100644
--- a/documentation/docs/pages/operators/community-counsel/templates.mdx
+++ b/documentation/docs/pages/operators/community-counsel/templates.mdx
@@ -1,3 +1,11 @@
+---
+title: "Email & Legal Templates for Nym Node Operators"
+description: "Ready-to-use templates for communicating with VPS providers about running Nym nodes. Includes introduction emails and abuse report response templates."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { Tabs } from 'nextra/components';
import { RunTabs } from 'components/operators/nodes/node-run-command-tabs';
diff --git a/documentation/docs/pages/operators/faq/general-faq.mdx b/documentation/docs/pages/operators/faq/general-faq.mdx
index 400c9c0a56..e2eb502243 100644
--- a/documentation/docs/pages/operators/faq/general-faq.mdx
+++ b/documentation/docs/pages/operators/faq/general-faq.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Node Operator FAQ: Questions Answered"
+description: "Frequently asked questions about running Nym nodes. Covers VPS selection, staking requirements, node configuration, rewards, and community resources."
+schemaType: "FAQPage"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
# General Operators FAQ
## Nym Network
diff --git a/documentation/docs/pages/operators/introduction.mdx b/documentation/docs/pages/operators/introduction.mdx
index 8a564662fe..1af11b5098 100644
--- a/documentation/docs/pages/operators/introduction.mdx
+++ b/documentation/docs/pages/operators/introduction.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Node Operator Guide & Prerequisites"
+description: "Introduction to running Nym nodes. Learn requirements, skill expectations, time commitment, and how to get started operating a node on the Nym mixnet."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-11"
+---
+
import QuickStart from 'components/operators/snippets/quick-start.mdx'
# Introduction
diff --git a/documentation/docs/pages/operators/nodes.mdx b/documentation/docs/pages/operators/nodes.mdx
index 5deb625aea..630aed0838 100644
--- a/documentation/docs/pages/operators/nodes.mdx
+++ b/documentation/docs/pages/operators/nodes.mdx
@@ -1,3 +1,11 @@
+---
+title: "How to Set Up & Run a Nym Node on the Mixnet"
+description: "Step-by-step guide to installing, configuring, and running a nym-node on the Nym mixnet. Covers prerequisites, staking requirements, and CLI setup."
+schemaType: "HowTo"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { Steps } from 'nextra/components';
import { Tabs } from 'nextra/components';
diff --git a/documentation/docs/pages/operators/nodes/nym-node/configuration.mdx b/documentation/docs/pages/operators/nodes/nym-node/configuration.mdx
index d791e7f946..5ea51cd7fa 100644
--- a/documentation/docs/pages/operators/nodes/nym-node/configuration.mdx
+++ b/documentation/docs/pages/operators/nodes/nym-node/configuration.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Node Configuration & Systemd Setup"
+description: "Configure your nym-node with systemd automation, reverse proxy, IPv6, and custom settings. Includes service file templates and maintenance tips."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { Tabs } from 'nextra/components';
import { VarInfo } from 'components/variable-info.tsx';
diff --git a/documentation/docs/pages/operators/performance-and-testing.mdx b/documentation/docs/pages/operators/performance-and-testing.mdx
index 208530a4c2..b6846e2dc8 100644
--- a/documentation/docs/pages/operators/performance-and-testing.mdx
+++ b/documentation/docs/pages/operators/performance-and-testing.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Node Performance Monitoring & Testing Guide"
+description: "Monitor your Nym node performance with Prometheus, Grafana, and community tools. Covers key metrics, routing score analysis, and testing best practices."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { Steps } from 'nextra/components';
import { Tabs } from 'nextra/components';
diff --git a/documentation/docs/pages/operators/sandbox.mdx b/documentation/docs/pages/operators/sandbox.mdx
index a46d76a35c..20a4d97b85 100644
--- a/documentation/docs/pages/operators/sandbox.mdx
+++ b/documentation/docs/pages/operators/sandbox.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Sandbox Testnet for Node Operators"
+description: "Run your Nym node in the Sandbox testnet environment. Test configurations, try new features, and experiment safely before deploying to mainnet."
+schemaType: "HowTo"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Callout } from 'nextra/components';
import { VarInfo } from 'components/variable-info.tsx';
import { Steps } from 'nextra/components';import { Tabs } from 'nextra/components'
diff --git a/documentation/docs/pages/operators/troubleshooting/nodes.mdx b/documentation/docs/pages/operators/troubleshooting/nodes.mdx
index 45b7b9793e..91cdbd6419 100644
--- a/documentation/docs/pages/operators/troubleshooting/nodes.mdx
+++ b/documentation/docs/pages/operators/troubleshooting/nodes.mdx
@@ -1,3 +1,11 @@
+---
+title: "Nym Node Troubleshooting: Common Errors & Fixes"
+description: "Solutions for common nym-node issues including build failures, connectivity problems, and configuration errors. Includes error messages and fix steps."
+schemaType: "TechArticle"
+section: "Operators"
+lastUpdated: "2026-02-01"
+---
+
import { Tabs } from 'nextra/components';
import { Callout } from 'nextra/components';
import { VarInfo } from 'components/variable-info.tsx';
diff --git a/documentation/docs/public/robots.txt b/documentation/docs/public/robots.txt
new file mode 100644
index 0000000000..b3276b24e6
--- /dev/null
+++ b/documentation/docs/public/robots.txt
@@ -0,0 +1,15 @@
+# *
+User-agent: *
+Allow: /
+
+# *
+User-agent: *
+Disallow: /api/
+Disallow: /_next/
+
+# Host
+Host: https://nymtech.net/docs
+
+# Sitemaps
+Sitemap: https://nymtech.net/docs/sitemap.xml
+Sitemap: https://nymtech.net/docs/sitemap-docs.xml
diff --git a/documentation/docs/public/sitemap-0.xml b/documentation/docs/public/sitemap-0.xml
new file mode 100644
index 0000000000..37563d9ee6
--- /dev/null
+++ b/documentation/docs/public/sitemap-0.xml
@@ -0,0 +1,177 @@
+
+
+https://nymtech.net/docs2026-02-13T15:03:22.514Zyearly0.6
+https://nymtech.net/docs/apis/cosmos-sdk-nyx2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/cosmos-sdk-nyx/mainnet2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/cosmos-sdk-nyx/sandbox2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/explorer-api2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/explorer-api/mainnet2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/explorer-api/sandbox2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/introduction2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/ns-api2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/ns-api/mainnet2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/ns-api/ns-api-run-deploy2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/ns-api/sandbox2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/nym-api2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/apis/nym-api/mainnet2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/developers2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/archive/nym-connect2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/browsers2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/chain2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/chain/cli-wallet2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/chain/cosmos-registry2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/chain/ledger-live2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/chain/rpc-node2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/socks52026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/socks5/commands2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/socks5/config2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/socks5/setup2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/socks5/usage2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/webassembly-client2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/websocket2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/websocket/commands2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/websocket/config2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/websocket/examples2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/websocket/setup2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/clients/websocket/usage2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/coc2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/concepts/message-queue2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/integrations2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/licensing2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/native2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/nymvpncli2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/client-pool2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/client-pool/architecture2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/client-pool/example2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/ffi2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/importing2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/builders2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/builders/builder2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/builders/builder-with-storage2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/custom-topology2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/custom-topology/custom-provider2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/custom-topology/manually-overwrite-topology2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/simple2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/socks2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/split-send2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/storage2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/surbs2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/examples/testnet2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/message-helpers2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/message-types2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/mixnet/troubleshooting2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/tcpproxy2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/tcpproxy/architecture2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/tcpproxy/examples/multiconn2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/tcpproxy/examples/singleconn2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/rust/tcpproxy/troubleshooting2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/tools2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/tools/echo-server2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/tools/nym-cli2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/tools/nym-cli/commands2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/tools/nym-cli/usage2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/tools/standalone-tcpproxy2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/FAQ2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/bundling/bundling2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/bundling/esbuild2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/bundling/webpack2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/examples/cosmos-kit2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/examples/mix-fetch2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/examples/mixnet2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/examples/nym-smart-contracts2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/installation2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/overview2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/playground/cosmos-kit2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/playground/mixfetch2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/playground/mixnodes2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/playground/traffic2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/playground/wallet2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/developers/typescript/start2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/network2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/architecture2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/architecture/mixnet2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/architecture/nym-not-p2p2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/architecture/nym-vs-others2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/architecture/nyx2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/coc2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/concepts2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/concepts/anonymous-replies2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/concepts/cover-traffic2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/concepts/epochs2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/concepts/loopix2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/concepts/mixing2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography/sphinx2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography/zk-nym2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography/zk-nym/double-spend-prot2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography/zk-nym/rerandomise2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography/zk-nym/unlinkability2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/cryptography/zk-nym/zk-nym-overview2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/licensing2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/traffic2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/traffic/acks2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/traffic/addressing-system2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/traffic/anonymous-replies2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/traffic/flow2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/network/traffic/hops2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/archive2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/archive/faq/smoosh-faq2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/binaries/building-nym2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/binaries/pre-built-binaries2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/changelog2026-02-13T15:03:22.515Zweekly0.6
+https://nymtech.net/docs/operators/community-counsel2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/add-content2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/exit-gateway2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/isp-list2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/jurisdictions2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/jurisdictions/swiss2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/jurisdictions/united-states2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/landing-pages2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/legal2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/community-counsel/templates2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/faq/general-faq2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/faq/nym-nodes-faq2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/faq/nyx-faq2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/introduction2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/misc/coc2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/misc/licensing2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/misc/toc2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/nodes2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/maintenance2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/maintenance/manual-upgrade2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/maintenance/nymvisor-upgrade2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/maintenance/nymvisor-upgrade/nymvisor-configuration2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/nym-node2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/nym-node/bonding2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/nym-node/configuration2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/nym-node/configuration/proxy-configuration2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/nym-node/setup2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/preliminary-steps2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/preliminary-steps/vps-setup2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/preliminary-steps/vps-setup/advanced2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/preliminary-steps/wallet-preparation2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/validator-setup2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/validator-setup/nym-api2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/nodes/validator-setup/nyx-configuration2026-02-13T15:03:22.515Zyearly0.8
+https://nymtech.net/docs/operators/orchestration2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/orchestration/ansible2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/performance-and-testing2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/performance-and-testing/gateway-probe2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/performance-and-testing/gateway-probe-details2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/performance-and-testing/prometheus-grafana2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/performance-and-testing/prometheus-grafana/explorenym-scripts2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/release-cycle2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/sandbox2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/tokenomics2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/tokenomics/mixnet-rewards2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/tokenomics/validator-rewards2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/tools2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/troubleshooting/nodes2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/troubleshooting/validators2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/troubleshooting/vps-isp2026-02-13T15:03:22.515Zyearly0.6
+https://nymtech.net/docs/operators/variables2026-02-13T15:03:22.515Zyearly0.6
+
\ No newline at end of file
diff --git a/documentation/docs/public/sitemap.xml b/documentation/docs/public/sitemap.xml
new file mode 100644
index 0000000000..becdf3489f
--- /dev/null
+++ b/documentation/docs/public/sitemap.xml
@@ -0,0 +1,5 @@
+
+
+https://nymtech.net/docs/sitemap-0.xml
+https://nymtech.net/docs/sitemap-docs.xml
+
\ No newline at end of file
diff --git a/documentation/docs/theme.config.tsx b/documentation/docs/theme.config.tsx
index 9d07c2ba75..603d6407ef 100644
--- a/documentation/docs/theme.config.tsx
+++ b/documentation/docs/theme.config.tsx
@@ -13,52 +13,132 @@ const config: DocsThemeConfig = {
const image = url + "/images/Nym_meta_Image.png";
const favicon = url + "/favicon.svg";
- // Define descriptions for different "books"
- const bookDescriptions: Record = {
- "/developers":
- "Nym's developer documentation covering core concepts of integrating with the Mixnet, interacting with the Nyx blockchain, an overview of the avaliable tools, and our SDK docs.",
- "/network":
- "Nym's network documentation covering network architecture, node types, tokenomics, and cryptography.",
- "/operators":
- "Nym's Operators guide containing information and setup guides for the various components of Nym network and Nyx blockchain validators.",
- "/apis":
- "Interactive APIs generated from the OpenAPI specs of various API endpoints offered by bits of Nym infrastructure run both by Nym and community operators for both Mainnet and the Sandbox testnet.",
- };
-
const defaultDescription =
"Nym is a privacy platform. It provides strong network-level privacy against sophisticated end-to-end attackers, and anonymous access control using blinded, re-randomizable, decentralized credentials.";
- const topLevel = "/" + route.split("/")[1];
+ // Frontmatter-first description (no more shared book descriptions)
const description =
- config.frontMatter.description ||
- bookDescriptions[topLevel] ||
- defaultDescription;
+ config.frontMatter.description || defaultDescription;
- const title = (route === "/" ? "Nym docs" : config.title + " - Nym docs");
+ // Better title format
+ const baseTitle = config.frontMatter.title || config.title || "";
+ const title = route === "/"
+ ? "Nym Docs: Privacy Network Documentation"
+ : baseTitle.includes("| Nym Docs")
+ ? baseTitle
+ : `${baseTitle} | Nym Docs`;
+
+ const pageUrl = `${url}${route}`;
+
+ // Frontmatter fields
+ const section = config.frontMatter.section || "";
+ const lastUpdated = config.frontMatter.lastUpdated || "";
+ const schemaType = config.frontMatter.schemaType || "TechArticle";
+
+ // JSON-LD structured data
+ const org = {
+ "@id": "https://nym.com/#org",
+ "@type": "Organization",
+ name: "Nym Technologies SA",
+ url: "https://nym.com",
+ logo: {
+ "@id": "https://nym.com/#logo",
+ "@type": "ImageObject",
+ url: "https://nym.com/apple-touch-icon.png",
+ },
+ sameAs: ["https://x.com/nymproject", "https://github.com/nymtech"],
+ };
+
+ const website = {
+ "@id": "https://nym.com/docs#website",
+ "@type": "WebSite",
+ name: "Nym Docs",
+ url: "https://nym.com/docs",
+ publisher: { "@id": "https://nym.com/#org" },
+ };
+
+ const webpage = {
+ "@id": `${pageUrl}#webpage`,
+ "@type": "WebPage",
+ url: pageUrl,
+ name: title,
+ description: description,
+ inLanguage: "en",
+ isPartOf: { "@id": "https://nym.com/docs#website" },
+ breadcrumb: { "@id": `${pageUrl}#breadcrumb` },
+ potentialAction: { "@type": "ReadAction", target: pageUrl },
+ };
+
+ const articleSchema: Record = {
+ "@id": `${pageUrl}#article`,
+ "@type": schemaType,
+ ...(schemaType === "HowTo"
+ ? { name: baseTitle }
+ : { headline: baseTitle }),
+ description: description,
+ url: pageUrl,
+ author: { "@id": "https://nym.com/#org" },
+ publisher: { "@id": "https://nym.com/#org" },
+ mainEntityOfPage: { "@id": `${pageUrl}#webpage` },
+ ...(lastUpdated && {
+ datePublished: lastUpdated,
+ dateModified: lastUpdated,
+ }),
+ };
+
+ const pathParts = route.split("/").filter(Boolean);
+ const breadcrumb = {
+ "@id": `${pageUrl}#breadcrumb`,
+ "@type": "BreadcrumbList",
+ itemListElement: pathParts.map((part: string, i: number) => ({
+ "@type": "ListItem",
+ position: i + 1,
+ name:
+ config.frontMatter.breadcrumbLabel && i === pathParts.length - 1
+ ? config.frontMatter.breadcrumbLabel
+ : part.charAt(0).toUpperCase() + part.slice(1).replace(/-/g, " "),
+ item: `${url}/${pathParts.slice(0, i + 1).join("/")}`,
+ })),
+ };
+
+ const schema = {
+ "@context": "https://schema.org",
+ "@graph": [org, website, webpage, articleSchema, breadcrumb],
+ };
return (
<>
{title}
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+ {section && (
+
+ )}
+ {lastUpdated && (
+
+ )}
+
+
-
+
-
-
+
+
>
);
},
diff --git a/documentation/scripts/next-scripts/python-prebuild.sh b/documentation/scripts/next-scripts/python-prebuild.sh
index 9083b2fd57..1de5176ddb 100755
--- a/documentation/scripts/next-scripts/python-prebuild.sh
+++ b/documentation/scripts/next-scripts/python-prebuild.sh
@@ -5,29 +5,29 @@ set -o nounset
set -o pipefail
cd ../scripts &&
-python csv2md.py -s 1 ../docs/data/csv/variables.csv > ../docs/components/outputs/csv2md-outputs/variables.md &&
-python csv2md.py -s 0 ../docs/data/csv/isp-sheet.csv > ../docs/components/outputs/csv2md-outputs/isp-sheet.md &&
+python3 csv2md.py -s 1 ../docs/data/csv/variables.csv > ../docs/components/outputs/csv2md-outputs/variables.md &&
+python3 csv2md.py -s 0 ../docs/data/csv/isp-sheet.csv > ../docs/components/outputs/csv2md-outputs/isp-sheet.md &&
cd cmdrun &&
./nyx-percent-stake.sh > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/nyx-percent-stake.md &&
./nyx-total-stake.sh > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/nyx-total-stake.md &&
cd ../api-scraping &&
-python api_targets.py validator --api mainnet --endpoint circulating-supply --value circulating_supply amount --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/circulating-supply.md &&
+python3 api_targets.py validator --api mainnet --endpoint circulating-supply --value circulating_supply amount --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/circulating-supply.md &&
-python api_targets.py validator --api mainnet --endpoint circulating-supply --format markdown --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/token-table.md &&
+python3 api_targets.py validator --api mainnet --endpoint circulating-supply --format markdown --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/token-table.md &&
-python api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval staking_supply_scale_factor --format percent > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-scale-factor.md &&
+python3 api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval staking_supply_scale_factor --format percent > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-scale-factor.md &&
-python api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval stake_saturation_point --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/stake-saturation.md &&
+python3 api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval stake_saturation_point --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/stake-saturation.md &&
-python api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval staking_supply --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/staking_supply.md &&
+python3 api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval staking_supply --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/staking_supply.md &&
-python api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval epoch_reward_budget --format markdown --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/epoch-reward-budget.md &&
+python3 api_targets.py validator --api mainnet --endpoint epoch/reward_params --value interval epoch_reward_budget --format markdown --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/epoch-reward-budget.md &&
-python api_targets.py time_now > ../../docs/components/outputs/api-scraping-outputs/time-now.md &&
+python3 api_targets.py time_now > ../../docs/components/outputs/api-scraping-outputs/time-now.md &&
-python api_targets.py calculate --staking_target --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-target.md &&
+python3 api_targets.py calculate --staking_target --separator _ > ../../docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-target.md &&
curl -L https://validator.nymtech.net/api/v1/circulating-supply | jq > ../../docs/components/outputs/api-scraping-outputs/circulating-supply.json &&
@@ -35,11 +35,11 @@ curl -L https://validator.nymtech.net/api/v1/epoch/reward_params | jq > ../../do
cd ../../../scripts &&
echo '```python' > ../documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md &&
-python node_api_check.py query_stats --help >> ../documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md &&
+python3 node_api_check.py query_stats --help >> ../documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md &&
echo '```' >> ../documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md &&
echo '```python' > ../documentation/docs/components/outputs/command-outputs/node-api-check-help.md &&
-python node_api_check.py --help >> ../documentation/docs/components/outputs/command-outputs/node-api-check-help.md &&
+python3 node_api_check.py --help >> ../documentation/docs/components/outputs/command-outputs/node-api-check-help.md &&
echo '```' >> ../documentation/docs/components/outputs/command-outputs/node-api-check-help.md &&
cd ../target/release/ &&
@@ -62,11 +62,11 @@ echo '```' >> ../../documentation/docs/components/outputs/command-outputs/nym-ap
cd ../../scripts/nym-node-setup
echo '```sh' > ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
-python ./nym-node-cli.py install --help >> ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
+python3 ./nym-node-cli.py install --help >> ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
echo '```' >> ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
echo '```sh' > ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
-python ./nym-node-cli.py install --help >> ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
+python3 ./nym-node-cli.py install --help >> ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
echo '```' >> ../../documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md &&
echo "prebuild finished"