Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

GenLayer Documentation

This repo contains technical documentation for the GenLayer project.

The live site is available at https://docs.genlayer.com/.

Setting up the Docs Locally

You can use either npm or pnpm as your package manager.

Using pnpm

Development Mode

  1. Install dependencies: pnpm i
  2. Start the development server: pnpm dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: pnpm i
  2. Build the site: pnpm build
  3. Start the production server: pnpm start
  4. Visit localhost:3000

Using npm

Development Mode

  1. Install dependencies: npm install
  2. Start the development server: npm run dev
  3. Visit localhost:3000

Production Mode

  1. Install dependencies: npm install
  2. Build the site: npm run build
  3. Start the production server: npm start
  4. Visit localhost:3000

Maintaining Documentation

For protocol concept pages, follow PROTOCOL_DOCUMENTATION.md and run npm run check:protocol-docs before opening a pull request.

Adding New Changelog Entries

The changelog is automatically generated from individual version files during the build process.

To add a new changelog entry:

  1. Create a new file in content/validators/changelog/ named vX.X.X.mdx (e.g., v0.3.5.mdx)
  2. Structure the content as follows:
## vX.X.X### New features- Feature description here
### Bug fixes- Fix description here
### Misc- Other changes here
  1. The changelog will be automatically updated when you run the build or dev command:
    • pnpm: pnpm build or pnpm dev
    • npm: npm run build or npm run dev

The entries are sorted in descending order (newest first) automatically.

Updating the Validator Setup Guide

The setup guide contains configuration examples that are maintained in separate source files. To update these sections, use the scripts in the scripts/ directory:

# Update version list and download command from changelog versions
node scripts/update-setup-guide-versions.js
# Update config.yaml example from content/validators/config.yaml
node scripts/update-config-in-setup-guide.js
# Update docker-compose.yaml example from content/validators/docker-compose.yaml
node scripts/update-docker-compose-in-setup-guide.js

See scripts/README.md for detailed documentation.

Adding New API Documentation

The API documentation for GenLayer Node is automatically generated from individual method files.

To add a new API method:

  1. Create a new .mdx file in the appropriate directory:

    • For GenLayer methods: pages/api-references/genlayer-node/gen/
    • For Debug methods: pages/api-references/genlayer-node/debug/
  2. Name the file according to the method name (e.g., gen_newMethod.mdx)

  3. Structure the content following this template:

### method_name
Brief description of what the method does.
**Method:**`method_name`**Parameters:**-`param1` (type, required/optional): Description
-`param2` (type, required/optional): Description
**Returns:** Description of return value
**Example:**```json
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [...],
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": ...,"id": 1
}

4. The API documentation and navigation will be automatically updated when you run:
- **pnpm**: `pnpm build` or `pnpm dev`
- **npm**: `npm run build` or `npm run dev`
The `_meta.json` files are automatically synchronized with the actual method files, preserving the order of existing entries while adding new ones at the end.
## License
Text and diagrams: [Creative Commons Attribution 4.0 International](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/CC-BY-4.0.txt).
Code snippets and examples: [MIT License](https://github.com/genlayerlabs/genlayer-docs/blob/main/LICENSES/MIT.txt).

Releases

Packages

Contributors

Languages