├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ ├── build.yml │ ├── case.yml │ ├── cla.yml │ ├── link-check.json │ ├── links.yml │ ├── lint.yml │ ├── llm.yml │ ├── nightly.yml │ ├── spelling.yml │ ├── trivy-cache.yml │ └── trivy.yml ├── .gitignore ├── .nvmrc ├── .releaserc.js ├── .stylelintignore ├── .stylelintrc.js ├── LICENSE ├── README.md ├── docs ├── chatbot.mdx ├── concepts │ ├── architecture.md │ ├── slashing-protection.md │ └── tls.md ├── get-started │ ├── build-from-source.md │ ├── install-binaries.md │ ├── key-best-practices.md │ ├── start-web3signer.md │ └── use-docker.md ├── how-to │ ├── configure-slashing-protection.md │ ├── configure-tls.md │ ├── load-keys.md │ ├── manage-keys.md │ ├── monitor │ │ ├── _category_.json │ │ ├── logging.md │ │ └── metrics.md │ ├── run-at-scale.md │ ├── store-keys │ │ ├── hsm │ │ │ ├── _category_.json │ │ │ ├── usb-armory.md │ │ │ └── yubihsm2.md │ │ ├── index.md │ │ └── vaults │ │ │ ├── _category_.json │ │ │ ├── aws │ │ │ ├── _category_.json │ │ │ ├── kms-execution-layer.md │ │ │ └── secrets-manager-consensus-layer.md │ │ │ ├── azure.md │ │ │ ├── gcp.md │ │ │ └── hashicorp.md │ └── use-configuration-file-starting-web3signer.md ├── index.md ├── reference │ ├── api │ │ ├── _category_.json │ │ ├── json-rpc.md │ │ └── rest.md │ ├── cli │ │ ├── _category_.json │ │ ├── options.md │ │ └── subcommands.md │ ├── key-config-file-params.md │ └── security-disclosure.md └── tutorials │ └── load-launchpad-keystores.md ├── docusaurus.config.js ├── package-lock.json ├── package.json ├── sidebars.js ├── src ├── components │ └── HomepageFeatures │ │ └── index.tsx ├── css │ └── custom.css └── theme │ └── DocVersionBanner │ └── index.js ├── static ├── .nojekyll └── img │ ├── dashboard_hw.png │ ├── favicon.ico │ ├── favicon.svg │ ├── logo.svg │ ├── logo_dark.svg │ └── transparent_background_diagram.png ├── tsconfig.json ├── vercel.json ├── versioned_docs └── version-25.3.0 │ ├── chatbot.mdx │ ├── concepts │ ├── architecture.md │ ├── slashing-protection.md │ └── tls.md │ ├── get-started │ ├── build-from-source.md │ ├── install-binaries.md │ ├── key-best-practices.md │ ├── start-web3signer.md │ └── use-docker.md │ ├── how-to │ ├── configure-slashing-protection.md │ ├── configure-tls.md │ ├── load-keys.md │ ├── manage-keys.md │ ├── monitor │ │ ├── _category_.json │ │ ├── logging.md │ │ └── metrics.md │ ├── run-at-scale.md │ ├── store-keys │ │ ├── hsm │ │ │ ├── _category_.json │ │ │ ├── usb-armory.md │ │ │ └── yubihsm2.md │ │ ├── index.md │ │ └── vaults │ │ │ ├── _category_.json │ │ │ ├── aws │ │ │ ├── _category_.json │ │ │ ├── kms-execution-layer.md │ │ │ └── secrets-manager-consensus-layer.md │ │ │ ├── azure.md │ │ │ ├── gcp.md │ │ │ └── hashicorp.md │ └── use-configuration-file-starting-web3signer.md │ ├── index.md │ ├── reference │ ├── api │ │ ├── _category_.json │ │ ├── json-rpc.md │ │ └── rest.md │ ├── cli │ │ ├── _category_.json │ │ ├── options.md │ │ └── subcommands.md │ ├── key-config-file-params.md │ └── security-disclosure.md │ └── tutorials │ └── load-launchpad-keystores.md ├── versioned_sidebars └── version-25.3.0-sidebars.json └── versions.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | indent_style = space 10 | indent_size = 2 11 | max_line_length = 80 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | insert_final_newline = false 16 | trim_trailing_whitespace = false 17 | 18 | [*.mdx] 19 | insert_final_newline = false 20 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/ 2 | .eslintrc.js 3 | docs/test-api 4 | ./node_modules/* 5 | *.md 6 | *.mdx 7 | LICENSE 8 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "plugin:@docusaurus/recommended", 4 | ], 5 | "parser": "@typescript-eslint/parser", 6 | "parserOptions": { 7 | "ecmaVersion": "latest", 8 | "sourceType": "module", 9 | "ecmaFeatures": { 10 | "jsx": true 11 | }, 12 | project: ["./tsconfig.json"] 13 | }, 14 | rules: { 15 | '@docusaurus/no-untranslated-text': 0 16 | }, 17 | }; -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build 3 | 4 | on: 5 | workflow_call: 6 | pull_request: 7 | branches: 8 | - main 9 | 10 | jobs: 11 | build: 12 | name: Build 13 | runs-on: ubuntu-latest 14 | permissions: 15 | contents: read 16 | steps: 17 | - uses: actions/checkout@v4 18 | 19 | - name: Build 20 | uses: ConsenSys/github-actions/docs-build@main 21 | -------------------------------------------------------------------------------- /.github/workflows/case.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Check file name case 3 | 4 | on: 5 | pull_request: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | case: 11 | name: Check for case being inconsistent 12 | runs-on: ubuntu-latest 13 | strategy: 14 | matrix: 15 | folder: ["docs"] 16 | permissions: 17 | contents: read 18 | steps: 19 | - uses: actions/checkout@v4 20 | 21 | - name: Case check action 22 | uses: ConsenSys/github-actions/docs-case-check@main 23 | with: 24 | DOC_DIR: ${{ matrix.folder }} 25 | SKIP_TEST: true 26 | -------------------------------------------------------------------------------- /.github/workflows/cla.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/contributor-assistant/github-action 3 | name: "CLA Assistant" 4 | on: 5 | issue_comment: 6 | types: [created] 7 | pull_request_target: 8 | types: [opened,closed,synchronize] 9 | 10 | permissions: 11 | actions: write 12 | contents: write # 'write' = this repo itself, 'read' = remote repository 13 | pull-requests: write 14 | statuses: write 15 | 16 | jobs: 17 | CLAAssistant: 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: "CLA Assistant" 21 | if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' 22 | uses: contributor-assistant/github-action@v2.6.1 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 25 | with: 26 | path-to-signatures: 'signatures/version1/cla.json' 27 | path-to-document: 'https://github.com/Consensys/cla/blob/main/CLA.md' 28 | branch: 'cla' 29 | -------------------------------------------------------------------------------- /.github/workflows/link-check.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignorePatterns": [ 3 | { 4 | "pattern": "^http(s)?://localhost" 5 | }, 6 | { 7 | "pattern": "^http(s)?://127.0.0.1" 8 | }, 9 | { 10 | "comment": "This is a private repos", 11 | "pattern": "^http(s)?://gitlab.com/ConsenSys/" 12 | }, 13 | { 14 | "comment": "This is a private repos", 15 | "pattern": "^http(s)?://github.com/ConsenSys/orchestrate" 16 | }, 17 | { 18 | "comment": "This is a private repo", 19 | "pattern": "^http(s)?://github.com/INFURA/docs(?:/(issues|pulls))?" 20 | }, 21 | { 22 | "comment": "Consensys.net now has a ddos attack protection", 23 | "pattern": "^http(s)?://consensys.net" 24 | }, 25 | { 26 | "comment": "Exclude addresses with extra data variable placeholders (not yet replaced when checking for links)", 27 | "pattern": "{{[a-zA-Z_\\-\\.\\[\\]\\']+}}" 28 | }, 29 | { 30 | "comment": "Exclude Infura endpoints that require API key", 31 | "pattern": "^https?:\\/\\/[a-zA-Z0-9.-]*\\.infura\\.io\\/v3\\/.*$" 32 | }, 33 | { 34 | "pattern": "^http(s)?://.+.zendesk.com" 35 | }, 36 | { 37 | "pattern": "^http(s)?://.+.etherscan.io" 38 | }, 39 | { 40 | "pattern": "^http(s)?://help.figma.com" 41 | }, 42 | { 43 | "pattern": "^http(s)?://(docs\\.)?metamask\\.io" 44 | }, 45 | { 46 | "comment": "Skip urls in the redoc macro with entity", 47 | "pattern": "http(s)?://.+\\&\\#39\\;" 48 | }, 49 | { 50 | "comment": "Skip urls in the redoc macro with char", 51 | "pattern": "http(s)?://.+'" 52 | } 53 | ], 54 | "httpHeaders": [ 55 | { 56 | "urls": [ 57 | "https://github.com/", 58 | "https://guides.github.com/", 59 | "https://help.github.com/", 60 | "https://docs.github.com/" 61 | ], 62 | "headers": { 63 | "Accept-Encoding": "zstd, br, gzip, deflate" 64 | } 65 | } 66 | ], 67 | "timeout": "30s", 68 | "aliveStatusCodes": [200, 206, 403], 69 | "retryOn429": true 70 | } 71 | -------------------------------------------------------------------------------- /.github/workflows/links.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Check for broken links 3 | 4 | on: 5 | pull_request: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | 11 | linkCheck: 12 | name: Link Checking 13 | runs-on: ubuntu-latest 14 | strategy: 15 | matrix: 16 | file-extensions: [".md", ".mdx"] 17 | steps: 18 | - uses: actions/checkout@v4 19 | - name: LinkCheck 20 | uses: ConsenSys/github-actions/docs-link-check@main 21 | with: 22 | FILE_EXTENSION: ${{ matrix.file-extensions }} 23 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Check for lint errors 3 | 4 | on: 5 | pull_request: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | lint: 11 | name: Lint 12 | runs-on: ubuntu-latest 13 | permissions: 14 | contents: read 15 | steps: 16 | - uses: actions/checkout@v4 17 | 18 | - name: Lint code 19 | uses: ConsenSys/github-actions/docs-lint-all@main 20 | 21 | - name: Lint markdown 22 | uses: ConsenSys/github-actions/docs-lint-markdown@main 23 | -------------------------------------------------------------------------------- /.github/workflows/llm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: generate llm text 3 | 4 | on: 5 | schedule: 6 | - cron: "0 22 * * 6" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | llms: 11 | 12 | name: Generate LLM text 13 | runs-on: ubuntu-latest 14 | permissions: 15 | contents: write 16 | pull-requests: write 17 | steps: 18 | 19 | - uses: actions/checkout@v3 20 | 21 | - name: generate-llms 22 | uses: ConsenSys/github-actions/docs-firecrawl-llm@main 23 | with: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 25 | FIRECRAWL_API_KEY: ${{ secrets.FIRECRAWL_API_KEY }} 26 | TARGET_URL: "https://docs.web3signer.consensys.io/development" 27 | MAX_URLS: 25 28 | SHOW_FULL_TEXT: true 29 | -------------------------------------------------------------------------------- /.github/workflows/nightly.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Nightly check 3 | 4 | on: 5 | schedule: 6 | - cron: "0 0 * * *" 7 | workflow_dispatch: {} 8 | 9 | concurrency: 10 | group: nightly-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | linkCheck: 15 | name: Run link check 16 | runs-on: ubuntu-latest 17 | permissions: 18 | contents: read 19 | steps: 20 | - uses: actions/checkout@v4 21 | - name: LinkCheck 22 | id: linkcheck 23 | uses: gaurav-nelson/github-action-markdown-link-check@v1 24 | with: 25 | use-quiet-mode: 'yes' 26 | use-verbose-mode: 'yes' 27 | folder-path: './docs' 28 | check-modified-files-only: 'no' 29 | base-branch: main 30 | config-file: './.github/workflows/link-check.json' 31 | 32 | slackNotification: 33 | needs: linkCheck 34 | if: ${{ failure() }} 35 | runs-on: ubuntu-latest 36 | steps: 37 | - name: Slack Notification 38 | uses: ConsenSys/github-actions/slack-notify@main 39 | env: 40 | SLACK_CHANNEL: doc-ci-alerts 41 | SLACK_COLOR: danger 42 | SLACK_TITLE: Web3Signer docs nightly build - Failure 43 | SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} 44 | MSG_MINIMAL: true -------------------------------------------------------------------------------- /.github/workflows/spelling.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Check for spelling with vale 3 | 4 | on: 5 | pull_request: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | vale: 11 | name: Spelling 12 | runs-on: ubuntu-latest 13 | permissions: 14 | contents: read 15 | steps: 16 | - uses: actions/checkout@v4 17 | 18 | - name: Vale 19 | uses: Consensys/github-actions/docs-spelling-check@main 20 | with: 21 | FILEPATHS: "docs" 22 | 23 | -------------------------------------------------------------------------------- /.github/workflows/trivy-cache.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: trivy-cache-db 3 | 4 | on: 5 | pull_request: 6 | branches: 7 | - main 8 | workflow_dispatch: 9 | schedule: 10 | - cron: "0 1 * * *" 11 | 12 | jobs: 13 | trivy: 14 | name: Run trivy scanner 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v4 18 | - name: Trivy Cache 19 | uses: ConsenSys/github-actions/trivy-update-cache@main 20 | -------------------------------------------------------------------------------- /.github/workflows/trivy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Trivy 3 | 4 | on: 5 | pull_request: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | trivy: 11 | name: Run trivy scanner 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | - name: Trivy 16 | uses: ConsenSys/github-actions/trivy@main 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | .idea 11 | 12 | # Misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | .vercel 23 | .yarn/* 24 | yarn.lock 25 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v20.14.0 -------------------------------------------------------------------------------- /.releaserc.js: -------------------------------------------------------------------------------- 1 | const mainConfig = { 2 | branches: ["main"], 3 | plugins: [ 4 | "@semantic-release/commit-analyzer", 5 | "@semantic-release/release-notes-generator", 6 | "@semantic-release/changelog", 7 | [ 8 | "@semantic-release/npm", 9 | { 10 | npmPublish: false, 11 | tarballDir: "dist", 12 | }, 13 | ], 14 | [ 15 | "@semantic-release/git", 16 | { 17 | assets: ["package.json", "package-lock.json", "CHANGELOG.md"], 18 | message: 19 | "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}", 20 | }, 21 | ], 22 | [ 23 | "@semantic-release/github", 24 | { 25 | assets: "dist/*.tgz", 26 | }, 27 | ], 28 | ], 29 | repositoryUrl: "https://github.com/ConsenSys/docs-template", 30 | }; 31 | 32 | module.exports = mainConfig; 33 | -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | # Stylelint runs on everything by default; we only lint CSS files. 2 | * 3 | !*/ 4 | !*.css 5 | __tests__/ 6 | build 7 | api/ 8 | docs/ 9 | blog/ 10 | -------------------------------------------------------------------------------- /.stylelintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "selector-class-pattern": null, 5 | "comment-empty-line-before" : null, 6 | "media-feature-range-notation": null, 7 | "selector-anb-no-unmatchable": null, 8 | "declaration-block-no-duplicate-properties": null 9 | } 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Web3Signer documentation 2 | 3 | Web3Signer is a transaction signing application to be used with a web3 provider. 4 | The software sources are hosted in the [Web3Signer repository](https://github.com/Consensys/web3signer). 5 | 6 | This documentation repository is built using [Docusaurus](https://docusaurus.io/), and the doc 7 | site is published at [`docs.web3signer.consensys.net`](https://docs.web3signer.consensys.net/). 8 | 9 | View the [ConsenSys doc contribution guidelines](https://docs-template.consensys.net/) for 10 | information about submitting documentation changes and previewing the site locally. 11 | -------------------------------------------------------------------------------- /docs/chatbot.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Chatbot 3 | slug: chatbot 4 | --- 5 | 6 | # Chatbot 7 | 8 |