Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7c71e4c
chore: `next` branch
o-az Jan 28, 2026
7160ff7
chore: trigger deployment to `next`
o-az Jan 28, 2026
57625e8
chore: trigger deployment to `next` 2
o-az Jan 28, 2026
993b0b6
chore: trigger deployment to `next` 3
o-az Jan 28, 2026
52347c8
feat: update to include release notes
o-az Jan 29, 2026
716e57d
test: e2e (#49)
tmm Jan 29, 2026
22b0635
chore: trigger deployment to `next` 2
o-az Jan 28, 2026
d8d1733
chore: trigger deployment to `next` 3
o-az Jan 28, 2026
5f8b04c
chore: sync lockfile
o-az Jan 30, 2026
b90d360
docs(foundry): add T1 features - 2D nonces, expiring nonces, access k…
gakonst Jan 30, 2026
c4d8c29
chore: add small Rust example for expiring nonces (#56)
onbjerg Jan 30, 2026
10b216f
fix: prioritize `VERCEL_BRANCH_URL`
o-az Jan 30, 2026
dce0d8d
chore: use `VITE_BASE_URL`
o-az Jan 30, 2026
610534b
chore: use `VITE_BASE_URL`
o-az Jan 30, 2026
f4d7c11
docs(foundry): update tempo args to use --tempo. prefix, add anvil se…
gakonst Feb 4, 2026
94c4232
fix: merge main, fix code-group syntax, add validator CLI flags, upda…
jenpaff Feb 5, 2026
fae2fc2
fix: change andantino from 'removed' to 'deprecated'
jenpaff Feb 5, 2026
9c024bc
fix: update andantino to show as deprecated testnet with version
jenpaff Feb 5, 2026
1f613a5
docs: foundryup tempo now installs all binaries (#74)
gakonst Feb 5, 2026
9c7d7d6
fix: update expiring nonces to use nonceKey: 'expiring' for TypeScript
jenpaff Feb 5, 2026
c4ee73b
docs: add expiring nonces and 2D nonces cards, improve parallel trans…
jxom Feb 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ src/pages.gen.ts
.env
.vercel
.vocs

.env*.local
src/pages/protocol/tips/tip-*

# Playwright
Expand Down
27 changes: 24 additions & 3 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
"assist": { "actions": { "source": { "organizeImports": "on" } } },
"assist": {
"actions": {
"source": {
"organizeImports": "on"
}
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
Expand All @@ -15,7 +21,9 @@
}
},
"css": {
"parser": { "tailwindDirectives": true },
"parser": {
"tailwindDirectives": true
},
"formatter": {
"enabled": true
},
Expand Down Expand Up @@ -49,5 +57,18 @@
"!src/snippets/unformatted",
"!test-results"
]
}
},
"overrides": [
{
"includes": ["env.d.ts"],
"linter": {
"rules": {
"recommended": true,
"correctness": {
"noUnusedVariables": "off"
}
}
}
}
]
}
26 changes: 26 additions & 0 deletions env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
interface EnvironmentVariables {
readonly NODE_ENV: 'development' | 'production' | 'test'

readonly VITE_BASE_URL: string
readonly VITE_POSTHOG_KEY: string
readonly VITE_POSTHOG_HOST: string
readonly VITE_TEMPO_ENV: 'localnet' | 'devnet' | 'moderato'

readonly INDEXSUPPLY_API_KEY: string
readonly SLACK_FEEDBACK_WEBHOOK: string

readonly VERCEL_URL: string
readonly VERCEL_BRANCH_URL: string
readonly VERCEL_PROJECT_PRODUCTION_URL: string
readonly VERCEL_ENV: 'development' | 'production' | 'preview'
}

declare namespace NodeJS {
interface ProcessEnv extends EnvironmentVariables {}
}

interface ImportMetaEnv extends EnvironmentVariables {}

interface ImportMeta {
readonly env: ImportMetaEnv
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"@vitejs/plugin-react": "^5.1.2",
"anser": "^2.3.5",
"tsx": "^4.21.0",
"typescript": "~5.9.3",
"typescript": "^5.9.3",
"use-sync-external-store": "^1.6.0",
"vite": "^7.3.1"
},
Expand Down
3 changes: 1 addition & 2 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/pages/guide/node/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ The versions across networks may not be compatible, as such, please consult the

| Network | Version |
|----------|---------|
| Andantino | v0.8.2 |
| Moderato | v1.0.0-rc.1 |
| Moderato (Testnet) | v1.1.0 |
| Andantino (Deprecated Testnet) | v0.8.2 |

## Pre-built Binary

Expand Down
10 changes: 10 additions & 0 deletions src/pages/guide/node/operate-validator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,16 @@ The old validator identity must be deactivated before the new one is activated
If you lose your signing share (stored on the database in `<datadir>/consensus/`), you will need to rotate to a new validator identity. This requires coordinating with the Tempo team to deactivate your old identity and register a new one.
We're planning to release a high-availability feature that allows storing consensus data in an external database, which will enable signing share recovery without the need for key rotation.

### Deleting Signing Shares

:::warning[Breaking Change in v1.1.0]
`--delete-signing-share` now requires the `--force` flag to prevent accidental deletion of validator signing keys. **Update any automation scripts that manage validator key lifecycle.**
:::

```bash
tempo consensus --delete-signing-share --force
```

## Log Management

### Parsing Logs
Expand Down
16 changes: 14 additions & 2 deletions src/pages/guide/node/validator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,19 +38,31 @@ The public key should match the output of the `generate-private-key` command.

The process for running a validator node is very similar to [running a full node](/guide/node/rpc).

You should start by downloading the latest snapshot using `tempo download --chain <moderato|mainnet>`. Downloading the snapshot allows your validator to start participating in consensus much faster.
You should start by downloading the latest snapshot using `tempo download --chain <moderato|mainnet|devnet>`. Downloading the snapshot allows your validator to start participating in consensus much faster.
Once you've downloaded the snapshot and have been whitelisted on-chain, you can proceed to run the validator node as such:

```bash
tempo node --datadir <datadir> \
--chain <moderato|mainnet> \
--chain moderato \
--port 30303 \
--discovery.addr 0.0.0.0 \
--discovery.port 30303 \
--consensus.signing-key <path> \
--consensus.fee-recipient <validator_wallet_address> \
--telemetry-url <TELEMETRY_URL>
```

### Optional flags

| Flag | Description |
|------|-------------|
| `--telemetry-url <URL>` | Unified metrics and logs export. Pushes both reth and consensus metrics with a `consensus_id` label for node identification. **We ask all validators to configure this so we can support troubleshooting.** |
| `--consensus.datadir <PATH>` | Store consensus data on a separate volume (e.g., AWS EBS) while keeping execution state on high-performance local disks. Migrate by copying `<datadir>/consensus` to the new location. |

:::info[Testnet Chain]
The `andantino` chainspec is deprecated. New validators should use `--chain moderato`.
:::

The notable difference between RPC nodes and validator nodes is the omission of the `--follow` argument and the addition of the `--consensus.signing-key` and `--consensus.fee-recipient` arguments. The fee recipient is the address that will receive transaction fees in your validators' proposed blocks.

Once your node is up, it may not start syncing immediately. This is because your node might not be part of the active set. In most cases, your validator will enter the active set in under 6 hours after the on-chain addition of the validator identity.
Expand Down
Loading