You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/CLAUDE.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -144,9 +144,10 @@ The TypeScript API generation is configured in `scripts/typescript_api_generatio
144
144
Uses Docusaurus multi-instance versioning with separate version tracks:
145
145
146
146
-**Developer docs**: Version config in `developer_version_config.json`, stored in `developer_versioned_docs/`
147
-
-**Network docs**: Versions in `network_versions.json`, stored in `network_versioned_docs/`
148
-
- Developer version config is an object mapping release type to version string (e.g., `{"mainnet": "v4.2.0", "testnet": "v4.1.0", ...}`)
149
-
-`developer_versions.json` is auto-generated from the config file; `network_versions.json` is managed directly
147
+
-**Network docs**: Version config in `network_version_config.json`, stored in `network_versioned_docs/`
148
+
- Both config files map release types to version strings (e.g., `{"mainnet": "v4.2.0", "testnet": "v4.1.0", ...}`)
149
+
-`docusaurus.config.js` auto-generates `*_versions.json` from these configs (filtered to versions with existing directories, plus any extra unmapped directories)
150
+
- Use `scripts/update_docs_versions.sh` to update configs and reconcile: `./scripts/update_docs_versions.sh network mainnet v4.2.0`
150
151
- Each docs instance has its own version dropdown in the navbar
151
152
- Preprocessing macros (`#include_code`, `#release_version`, conditionals, etc.) only work in source folders, not in versioned copies
152
153
- Create new versions with: `yarn docusaurus docs:version:<instance-id> <version>`
Copy file name to clipboardExpand all lines: docs/README.md
+11-27Lines changed: 11 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,19 +65,21 @@ The legacy `#include_aztec_version` macro uses `COMMIT_TAG`, while `#include_ver
65
65
66
66
### How do I change the versions that show in the website
67
67
68
-
The version system uses two approaches:
68
+
Both developer and network docs use **version config files** that map release types to version strings:
69
69
70
-
-**Developer docs**: `developer_version_config.json`maps release types to version strings (e.g., `{"mainnet": "v4.2.0", "testnet": "v4.1.0", ...}`). The Docusaurus-compatible `developer_versions.json` is auto-generated from this config at startup.
71
-
-**Network docs**: `network_versions.json`is managed directly as a simple array of version strings.
You can update the developer config manually, or use the `scripts/update_docs_versions.sh` script which reconciles it with the versioned docs directories:
73
+
The `docusaurus.config.js` reads these configs and auto-generates the Docusaurus-compatible `*_versions.json` arrays at startup, including only versions that have matching versioned docs directories. Any extra directories not in the config are also included (to preserve newly cut versions before the config is updated).
74
+
75
+
Use `scripts/update_docs_versions.sh` to update configs and reconcile with versioned docs directories:
./scripts/update_docs_versions.sh network mainnet v4.2.0 # Set mainnet=v4.2.0, then reconcile
80
+
./scripts/update_docs_versions.sh developer nightly v5.0.0-nightly # Set nightly version, then reconcile
77
81
```
78
82
79
-
For network docs, edit `network_versions.json` directly.
80
-
81
83
To create a new versioned snapshot of the docs:
82
84
83
85
```bash
@@ -87,33 +89,15 @@ yarn docusaurus docs:version:network v4.2.0 # New network version
87
89
88
90
### Version Configuration
89
91
90
-
The `docusaurus.config.js` file reads `developer_version_config.json` which explicitly maps release types to version strings. This replaces fragile substring matching on version strings for developer docs.
The `docusaurus.config.js` file reads both config files to determine version labels, paths, and defaults. The config-based approach replaces fragile substring matching on version strings.
107
93
108
94
This ensures that:
109
95
110
-
-Developer doc version types are always correct regardless of the version string format
96
+
-Version types are always correct regardless of the version string format
111
97
- When nightly versions are removed by the cleanup script, the build doesn't break
112
98
- Version configurations are conditionally included only if they exist
113
99
- The llms.txt plugin always points to the correct version (mainnet or testnet)
114
100
115
-
**Why this matters:** The [nightly docs workflow](../.github/workflows/nightly-docs-release.yml) runs `cleanup_nightly_versions.sh` before creating new versioned docs. The config-based approach means version type detection never breaks even when version strings don't follow predictable patterns.
116
-
117
101
## Releases
118
102
119
103
A new docs site is published on every merge to the next branch.
Copy file name to clipboardExpand all lines: docs/developer_versioned_docs/version-v4.1.0-rc.2/ai_tooling.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,10 @@ This is an Aztec smart contract project. Always use the `aztec` CLI wrapper inst
40
40
- Prefer `T` return types over `T | null` when null would indicate a bug rather than a valid state.
41
41
- Do not add `.catch(() => defaultValue)` to promises. If something fails, the caller needs to know.
42
42
43
+
## Version Compatibility
44
+
45
+
The Aztec developer SDK/aztec-nr version (used for writing and compiling contracts) may differ from the node version (used by operators to run the network). For example, aztec-nr `4.2.0-aztecnr-rc.2` is compatible with node version `4.1.2`. Check the [Networks page](https://docs.aztec.network/networks) for current network versions. When in doubt, use the version from the developer docs you are reading — it is the correct SDK version for contract development on that network.
46
+
43
47
## Hashing: Default to Poseidon2
44
48
45
49
When writing Aztec.nr contract code that requires hashing, **always use Poseidon2** unless a specific protocol or interoperability requirement calls for a different hash.
Copy file name to clipboardExpand all lines: docs/developer_versioned_docs/version-v4.2.0-aztecnr-rc.2/ai_tooling.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,10 @@ This is an Aztec smart contract project. Always use the `aztec` CLI wrapper inst
40
40
- Prefer `T` return types over `T | null` when null would indicate a bug rather than a valid state.
41
41
- Do not add `.catch(() => defaultValue)` to promises. If something fails, the caller needs to know.
42
42
43
+
## Version Compatibility
44
+
45
+
The Aztec developer SDK/aztec-nr version (used for writing and compiling contracts) may differ from the node version (used by operators to run the network). For example, aztec-nr `4.2.0-aztecnr-rc.2` is compatible with node version `4.1.2`. Check the [Networks page](https://docs.aztec.network/networks) for current network versions. When in doubt, use the version from the developer docs you are reading — it is the correct SDK version for contract development on that network.
46
+
43
47
## Hashing: Default to Poseidon2
44
48
45
49
When writing Aztec.nr contract code that requires hashing, **always use Poseidon2** unless a specific protocol or interoperability requirement calls for a different hash.
Copy file name to clipboardExpand all lines: docs/developer_versioned_docs/version-v4.2.0-aztecnr-rc.2/docs/tutorials/contract_tutorials/counter_contract.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ This tutorial is compatible with the Aztec version `4.2.0-aztecnr-rc.2`. Install
Copy file name to clipboardExpand all lines: docs/developer_versioned_docs/version-v4.2.0-aztecnr-rc.2/docs/tutorials/contract_tutorials/recursive_verification.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ For example, consider a machine learning inference that needs 10,000 input featu
42
42
43
43
1. Perform the computation offchain in a vanilla Noir circuit with no input limits
44
44
2. Generate a proof of correct execution
45
-
3. Verify only the proof onchain (115 fields for VK + 457-508 fields for proof + N public inputs)
45
+
3. Verify only the proof onchain (115 fields for VK + ~500 fields for proof + N public inputs)
46
46
47
47
This pattern transforms arbitrarily large computations into fixed-size proof verification.
48
48
@@ -68,7 +68,7 @@ flowchart LR
68
68
69
69
Proof verification enables several patterns:
70
70
71
-
-**Bypassing Input Limits**: Aztec private functions have strict input constraints. A proof verification call uses ~624 fields (115 VK + 508 proof + 1 public input), but can attest to computations with arbitrarily many inputs. For example, proving membership in a set of 10,000 elements becomes a fixed-size verification.
71
+
-**Bypassing Input Limits**: Aztec private functions have strict input constraints. A proof verification call uses ~616 fields (115 VK + ~500 proof + 1 public input), but can attest to computations with arbitrarily many inputs. For example, proving membership in a set of 10,000 elements becomes a fixed-size verification.
72
72
73
73
-**Cross-System Verification**: Verify proofs generated by external Noir circuits within your Aztec application. This enables composability: your contract can trust computations performed by other systems without those systems needing to be Aztec-native.
74
74
@@ -225,10 +225,10 @@ The contract demonstrates several important patterns:
225
225
226
226
### Create the Contract Project
227
227
228
-
Use `aztec init` to generate the contract project structure:
228
+
Use `aztec new` to generate the contract project structure:
ZK proofs are arrays of bytes, but Aztec contracts work with field elements. We convert the proof and VK to arrays of 115 and 508 field elements respectively.
662
+
ZK proofs are arrays of bytes, but Aztec contracts work with field elements. We convert the proof and VK to arrays of 115 and ~500 field elements respectively.
663
663
664
664
```typescript
665
665
let proofAsFields =recursiveArtifacts.proofAsFields;
@@ -701,7 +701,7 @@ Expected output:
701
701
Proof verification: SUCCESS
702
702
Using deflattenFields to convert proof...
703
703
VK size: 115
704
-
Proof size: 508
704
+
Proof size: 500
705
705
Public inputs: 1
706
706
Done
707
707
```
@@ -714,7 +714,7 @@ The generated `data.json` contains:
714
714
{
715
715
"vkAsFields": ["0x...", "0x...", ...], // 115 field elements
716
716
"vkHash": "0x...", // Single field element
717
-
"proofAsFields": ["0x...", "0x...", ...], // 508 field elements
717
+
"proofAsFields": ["0x...", "0x...", ...], // ~500 field elements
Copy file name to clipboardExpand all lines: docs/developer_versioned_docs/version-v4.2.0-aztecnr-rc.2/docs/tutorials/contract_tutorials/token_contract.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,13 +44,13 @@ cd bob_token
44
44
yarn init
45
45
# This is to ensure yarn uses node_modules instead of pnp for dependency installation
The `aztec init` command created a workspace with two crates: a `bob_token_contract` crate for your smart contract code and a `bob_token_test` crate for Noir tests. In `bob_token_contract/src/main.nr` we even have a proto-contract. Let's replace it with a simple starting point:
53
+
The `aztec init` command created a contract project with `Nargo.toml`and `src/main.nr`. Let's replace the boilerplate in `src/main.nr` with a simple starting point:
Copy file name to clipboardExpand all lines: docs/docs-developers/ai_tooling.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,10 @@ This is an Aztec smart contract project. Always use the `aztec` CLI wrapper inst
40
40
- Prefer `T` return types over `T | null` when null would indicate a bug rather than a valid state.
41
41
- Do not add `.catch(() => defaultValue)` to promises. If something fails, the caller needs to know.
42
42
43
+
## Version Compatibility
44
+
45
+
The Aztec developer SDK/aztec-nr version (used for writing and compiling contracts) may differ from the node version (used by operators to run the network). For example, aztec-nr `4.2.0-aztecnr-rc.2` is compatible with node version `4.1.2`. Check the [Networks page](https://docs.aztec.network/networks) for current network versions. When in doubt, use the version from the developer docs you are reading — it is the correct SDK version for contract development on that network.
46
+
43
47
## Hashing: Default to Poseidon2
44
48
45
49
When writing Aztec.nr contract code that requires hashing, **always use Poseidon2** unless a specific protocol or interoperability requirement calls for a different hash.
0 commit comments