Overall AI readiness score
A combined result across all audit signals.
Overall AI readiness score
A combined result across all audit signals.
Overall AI readiness assessment
Noir Language Documentation was independently audited by llmsmap. noir-lang.org currently scores 86/100 for AI readiness. The result combines AI-specific files, crawler policy, sitemap discovery, structured homepage data, and—when available—the mobile Google Lighthouse technical profile.
llms.txt is accessible and contains 4,196 tokens. No accessible llms-full.txt was detected, so deeper context still has to be assembled from regular pages. No separate ai.txt policy was detected; it is optional, but can clarify training, retrieval, and attribution preferences.
robots.txt is available. 11 of 11 tracked AI bots are not blocked. Declared sitemaps: 1. The homepage exposes Schema.org types WebSite, Organization, SoftwareSourceCode; 10 OpenGraph tags were found and markup completeness is 90%.
The mobile Lighthouse profile adds Performance 92/100, Accessibility 100/100, Best Practices 100/100, SEO 92/100, and experimental Agentic Browsing 100/100. These signals have a limited weight: they complement rather than replace llms.txt, robots.txt, and structured-data checks.
A mobile Lighthouse measurement. Google’s experimental Agentic Browsing category is explained separately and does not replace the broader llmsmap AI-readiness score.
Performance
Accessibility
Best Practices
Technical SEO
Agentic Browsing
The mobile page renders efficiently; its largest visible content block appeared in 2.9 s.
Accessibility scored 100/100, Best Practices 100/100, and technical SEO 92/100. The experimental Agentic Browsing category scored 100/100. It measures signals Google currently tests for software agents and is shown separately from the llmsmap AI-readiness score.
Split long JavaScript tasks, defer non-critical scripts and styles, and shorten blocking request chains. This helps the primary content appear sooner and makes controls usable earlier.
Remove unused CSS and JavaScript, load heavy widgets on demand, and limit third-party scripts. Less code means less parsing and background work on the device.
Serve correctly sized modern formats, prioritise the primary visual, and lazy-load content below the first viewport.
Improve server response time, remove unnecessary redirects and repeat downloads, and use compression, caching, and selective preconnect hints.
First content
Main content
Layout stability
Blocking time
Visual speed
Machine-readable files, crawler policy, discovery, and homepage markup.
Full version was not found
ai.txt file was not found
1 sitemap found
Types: WebSite, Organization, SoftwareSourceCode
10 OG tags found
Based on robots.txt analysis
Declared discovery routes for crawlers and agents.
Social preview metadata found on the homepage.
og:titleNoir - The Programming Language for Private Appsog:descriptionNoir is an open-source, zero-knowledge (ZK) programming language that makes it easy to add privacy to Web2 and Web3 apps.og:typewebsiteog:urlhttps://noir-lang.org/og:site_nameNoirog:localeen_USog:image:typeimage/jpegog:image:width1200og:image:height675Structured entities and properties exposed on the homepage.
nameNoirurlhttps://noir-lang.org/descriptionThe programming language for private apps.inLanguageenlogohttps://noir-lang.org/generated-icon.pngsameAshttps://github.com/noir-lang/noir, https://twitter.com/NoirLang, https://discord.com/invite/JtqzkdeQ6G# Noir Language Documentation
> The Universal ZK Circuit Language
This file contains links to documentation sections following the llmstxt.org standard.
## Table of Contents
- [Oracles](https://noir-lang.org/docs/explainers/explainer-oracle): This guide provides an in-depth understanding of how Oracles work in Noir programming. Learn how to use outside calculations in your programs, cons...
- [Thinking in Circuits](https://noir-lang.org/docs/explainers/explainer-writing-noir): Considerations when writing Noir programs
- [Getting Started Manually](https://noir-lang.org/docs/getting_started_manually): Create and run your first Noir project manually.
- [Getting Started with AI](https://noir-lang.org/docs/getting_started_with_ai): Create and run your first Noir project using an AI agent.
- [Using the REPL Debugger](https://noir-lang.org/docs/how_to/debugger/debugging_with_the_repl): Step-by-step guide on how to debug your Noir circuits with the REPL Debugger.
- [Using the VS Code Debugger](https://noir-lang.org/docs/how_to/debugger/debugging_with_vs_code): Step-by-step guide on how to debug your Noir circuits with the VS Code Debugger configuration and features.
- [How to use Oracles](https://noir-lang.org/docs/how_to/how-to-oracles): Learn how to use oracles in your Noir program with examples in both Nargo and NoirJS. This guide also covers writing a JSON RPC server and providin...
- [Noir](https://noir-lang.org/docs/): Noir is an open-source, Rust-influenced domain-specific language for writing privacy-preserving programs with zero-knowledge proofs, requiring no p...
- [Installation](https://noir-lang.org/docs/installation): There are different ways to install Nargo, the one-stop shop and command-line tool for developing Noir programs. This guide explains how to specify...
- [Assert Function](https://noir-lang.org/docs/noir/concepts/assert): Learn about the `assert` and `static_assert` functions in Noir, which can be used to explicitly constrain the predicate or comparison expression th...
- [Attributes](https://noir-lang.org/docs/noir/concepts/attributes): Learn how to use attributes in Noir. Attributes are metadata that can be applied to data types, functions and variables.
- [Comments](https://noir-lang.org/docs/noir/concepts/comments): Learn how to write comments in Noir programming language. A comment is a line of code that is ignored by the compiler, but it can be read by progra...
- [Compile-time Code & Metaprogramming](https://noir-lang.org/docs/noir/concepts/comptime): Learn how to use metaprogramming in Noir to create macros or derive your own traits
- [Control Flow](https://noir-lang.org/docs/noir/concepts/control_flow): Learn how to use loops and if expressions in the Noir programming language. Discover the syntax and examples for for loops and if-else statements.
- [Data Bus](https://noir-lang.org/docs/noir/concepts/data_bus): Use call_data and return_data to enable a backend optimization for more efficient recursion, with examples and constraints.
- [Arrays](https://noir-lang.org/docs/noir/concepts/data_types/arrays): Dive into the Array data type in Noir. Grasp its methods, practical examples, and best practices for efficiently using Arrays in your Noir code.
- [Booleans](https://noir-lang.org/docs/noir/concepts/data_types/booleans): Delve into the Boolean data type in Noir. Understand its methods, practical examples, and best practices for using Booleans in your Noir programs.
- [Type Casting and Coercions](https://noir-lang.org/docs/noir/concepts/data_types/coercions): Noir's explicit type casts and implicit type coercions
- [Fields](https://noir-lang.org/docs/noir/concepts/data_types/fields): Dive deep into the Field data type in Noir. Understand its methods, practical examples, and best practices to effectively use Fields in your Noir p...
- [Function types](https://noir-lang.org/docs/noir/concepts/data_types/function_types): Define and use function types for higher‑order functions in Noir, including syntax, examples, and notes on closures.
- [Data Types](https://noir-lang.org/docs/noir/concepts/data_types): Get a clear understanding of the two categories of Noir data types - primitive types and compound types. Learn about their characteristics, differe...
- [Integers](https://noir-lang.org/docs/noir/concepts/data_types/integers): Explore the Integer data type in Noir. Learn about its methods, see real-world examples, and grasp how to efficiently use Integers in your Noir code.
- [References](https://noir-lang.org/docs/noir/concepts/data_types/references): Learn about reference types in Noir, including immutable references (&T) and mutable references (&mut T).
- [Strings](https://noir-lang.org/docs/noir/concepts/data_types/strings): Discover the String data type in Noir. Learn about its methods, see real-world examples, and understand how to effectively manipulate and use Strin...
- [Structs](https://noir-lang.org/docs/noir/concepts/data_types/structs): Explore the Struct data type in Noir. Learn about its methods, see real-world examples, and grasp how to effectively define and use Structs in your...
- [Tuples](https://noir-lang.org/docs/noir/concepts/data_types/tuples): Dive into the Tuple data type in Noir. Understand its methods, practical examples, and best practices for efficiently using Tuples in your Noir code.
- [Vectors](https://noir-lang.org/docs/noir/concepts/data_types/vectors): Explore the Vector data type in Noir. Understand its methods, see real-world examples, and learn how to effectively use Vectors in your Noir programs.
- [Functions](https://noir-lang.org/docs/noir/concepts/functions): Learn how to declare functions and methods in Noir, a programming language with Rust semantics. This guide covers parameter declaration, return typ...
- [Generics](https://noir-lang.org/docs/noir/concepts/generics): Learn how to use Generics in Noir
- [Global Variables](https://noir-lang.org/docs/noir/concepts/globals): Learn about global variables in Noir. Discover how to declare, modify, and use them in your programs.
- [Lambdas](https://noir-lang.org/docs/noir/concepts/lambdas): Learn how to use anonymous functions in Noir programming language.
- [Mutability](https://noir-lang.org/docs/noir/concepts/mutability): Learn about mutable variables in Noir. Discover how to declare, modify, and use them in your programs.
- [Logical Operations](https://noir-lang.org/docs/noir/concepts/ops): Learn about the supported arithmetic and logical operations in the Noir programming language. Discover how to perform operations on private input t...
- [Oracles](https://noir-lang.org/docs/noir/concepts/oracles): Dive into how Noir supports Oracles via RPC calls, and learn how to declare an Oracle in Noir with our comprehensive guide.
- [Shadowing](https://noir-lang.org/docs/noir/concepts/shadowing): Rebind variables with the same name to derive new values, enabling ergonomic "temporary mutability" patterns in Noir.
- [Traits](https://noir-lang.org/docs/noir/concepts/traits): Traits in Noir can be used to abstract out a common interface for functions across several data types.
- [Unconstrained Functions](https://noir-lang.org/docs/noir/concepts/unconstrained): Learn about what unconstrained functions in Noir are, how to use them and when you'd want to.
- [Crates and Packages](https://noir-lang.org/docs/noir/modules_packages_crates/crates_and_packages): Learn how to use Crates and Packages in your Noir project
- [Dependencies](https://noir-lang.org/docs/noir/modules_packages_crates/dependencies): Learn how to specify and manage dependencies in Nargo, allowing you to upload packages to GitHub and use them easily in your project.
- [Modules](https://noir-lang.org/docs/noir/modules_packages_crates/modules): Learn how to organize your files using modules in Noir, following the same convention as Rust's module system. Examples included.
- [Workspaces](https://noir-lang.org/docs/noir/modules_packages_crates/workspaces): Manage multiple related Noir packages in a single repository with a shared workspace, including members, default-member, and command scoping.
- [Black Box Functions](https://noir-lang.org/docs/noir/standard_library/black_box_fns): Black box functions are functions in Noir that rely on backends implementing support for specialized constraints.
- [Bn254 Field Library](https://noir-lang.org/docs/noir/standard_library/bn254): Optimized helpers for bn254 Fr—fast comparisons and decomposition tailored for Noir’s standard library.
- [Bounded Vectors](https://noir-lang.org/docs/noir/standard_library/containers/boundedvec): Growable vectors with a fixed maximum length; safer and more efficient than vectors, with rich methods for access and mutation.
- [Containers](https://noir-lang.org/docs/noir/standard_library/containers): Container types provided by Noir's standard library for storing and retrieving data
- [UHashMap](https://noir-lang.org/docs/noir/standard_library/containers/uhashmap): A growable key–value map with a generic hasher.
- [Ciphers](https://noir-lang.org/docs/noir/standard_library/cryptographic_primitives/ciphers): Learn about the implemented ciphers ready to use for any Noir project
- [ECDSA Signature Verification](https://noir-lang.org/docs/noir/standard_library/cryptographic_primitives/ecdsa_sig_verification): Learn about the cryptographic primitives regarding ECDSA over the secp256k1 and secp256r1 curves
- [Scalar multiplication](https://noir-lang.org/docs/noir/standard_library/cryptographic_primitives/embedded_curve_ops): See how you can perform scalar multiplication in Noir
- [Hash methods](https://noir-lang.org/docs/noir/standard_library/cryptographic_primitives/hashes): Learn about the cryptographic primitives ready to use for any Noir project
- [Cryptographic Primitives](https://noir-lang.org/docs/noir/standard_library/cryptographic_primitives): Learn about the cryptographic primitives ready to use for any Noir project
- [fmtstr](https://noir-lang.org/docs/noir/standard_library/fmtstr): Format string literals at compile time—inspect raw contents or emit quoted strings for macro generation.
- [Is Unconstrained Function](https://noir-lang.org/docs/noir/standard_library/is_unconstrained): The is_unconstrained function returns whether the context at that point of the program is unconstrained or not.
- [Logging and Panics](https://noir-lang.org/docs/noir/standard_library/logging): Learn how to use the println statement for debugging in Noir with this tutorial. Understand the basics of logging in Noir and how to implement it i...
- [Memory Module](https://noir-lang.org/docs/noir/standard_library/mem): This module contains functions which manipulate memory in a low-level way
- [CtString](https://noir-lang.org/docs/noir/standard_library/meta/ctstring): Compile-time, dynamically sized strings for `comptime`—build, append, and emit quoted string literals.
- [Expr](https://noir-lang.org/docs/noir/standard_library/meta/expr): Introspect and transform quoted expressions at compile time—inspect structure, resolve types, and modify sub-expressions.
- [FunctionDefinition](https://noir-lang.org/docs/noir/standard_library/meta/function_def): Inspect and mutate function definitions in `comptime`—read signatures, body, attributes, and adjust parameters or return types.
- [Metaprogramming](https://noir-lang.org/docs/noir/standard_library/meta): Noir's Metaprogramming API
- [Location](https://noir-lang.org/docs/noir/standard_library/meta/location): A source location at compile time, used to attach diagnostics (errors and warnings) to specific items or expressions.
- [Module](https://noir-lang.org/docs/noir/standard_library/meta/module): Work with modules in `comptime`—query names, list functions/structs, detect contracts, and add new items.
- [UnaryOp and BinaryOp](https://noir-lang.org/docs/noir/standard_library/meta/op): Represent and inspect operators at compile time—check kinds, and emit quoted operator tokens.
- [Quoted](https://noir-lang.org/docs/noir/standard_library/meta/quoted): Token streams produced by `quote { ... }`—parse as expressions, modules, types, and inspect raw tokens.
- [TraitConstraint](https://noir-lang.org/docs/noir/standard_library/meta/trait_constraint): Represent trait constraints at compile time for searching and matching trait implementations.
- [TraitDefinition](https://noir-lang.org/docs/noir/standard_library/meta/trait_def): Work with trait definitions at compile time—convert to trait constraints and inspect basic properties.
- [TraitImpl](https://noir-lang.org/docs/noir/standard_library/meta/trait_impl): Inspect concrete trait implementations—list methods and read trait generic arguments in `comptime`.
- [Type](https://noir-lang.org/docs/noir/standard_library/meta/typ): Represent and analyze types at compile time—query structure, check trait bounds, and resolve trait impls.
- [TypeDefinition](https://noir-lang.org/docs/noir/standard_library/meta/type_def): Inspect and transform struct/enum type definitions—fields, generics, attributes, and module context.
- [TypedExpr](https://noir-lang.org/docs/noir/standard_library/meta/typed_expr): Resolved, type-checked expressions—retrieve types, access referenced function definitions, and more.
- [UnresolvedType](https://noir-lang.org/docs/noir/standard_library/meta/unresolved_type): Work with the syntactic form of types—inspect references, vectors, and primitive kind checks before resolution.
- [Option<T> Type](https://noir-lang.org/docs/noir/standard_library/options): Express presence or absence safely with `Option<T>`—construct, inspect, and transform values without nulls.
- [Recursive Proofs](https://noir-lang.org/docs/noir/standard_library/recursion): Learn about how to write recursive proofs in Noir.
- [Traits](https://noir-lang.org/docs/noir/standard_library/traits): Noir's stdlib provides a few commonly used traits.
- [Class: Noir](https://noir-lang.org/docs/reference/NoirJS/noir_js/classes/Noir): ```ts
- [noir_js](https://noir-lang.org/docs/reference/NoirJS/noir_js): | Class | Description |
- [Type Alias: ErrorWithPayload](https://noir-lang.org/docs/reference/NoirJS/noir_js/type-aliases/ErrorWithPayload): ```ts
- [Function: compile()](https://noir-lang.org/docs/reference/NoirJS/noir_wasm/functions/compile): ```ts
- [Function: compile\_contract()](https://noir-lang.org/docs/reference/NoirJS/noir_wasm/functions/compile_contract): ```ts
- [Function: inflateDebugSymbols()](https://noir-lang.org/docs/reference/NoirJS/noir_wasm/functions/inflateDebugSymbols): ```ts
- [noir_wasm](https://noir-lang.org/docs/reference/NoirJS/noir_wasm): The compilation artifacts of a given contract.
- [Known limitations](https://noir-lang.org/docs/reference/debugger/debugger_known_limitations): An overview of known limitations of the current version of the Noir debugger
- [REPL Debugger](https://noir-lang.org/docs/reference/debugger/debugger_repl): Noir Debugger REPL options and commands.
- [VS Code Debugger](https://noir-lang.org/docs/reference/debugger/debugger_vscode): VS Code Debugger configuration and features.
- [Nargo](https://noir-lang.org/docs/reference/nargo_commands): Noir CLI Commands for Noir Prover and Verifier to create, execute, prove and verify programs, generate Solidity verifier smart contract and compile...
- [Noir Codegen for TypeScript](https://noir-lang.org/docs/reference/noir_codegen): Learn how to use Noir codegen to generate TypeScript bindings
- [Debugger](https://noir-lang.org/docs/tooling/debugger): Learn about the Noir Debugger, in its REPL or VS Code versions.
- [Dev Containers](https://noir-lang.org/docs/tooling/devcontainer): Learn how to set up and use Noir development environments with Dev Containers in VS Code and GitHub Codespaces.
- [Fuzzer](https://noir-lang.org/docs/tooling/fuzzer): The Noir Fuzzer is a tool that allows you to fuzz your Noir programs.
- [Language Server](https://noir-lang.org/docs/tooling/language_server): Learn about the Noir Language Server, how to install the components, and configuration that may be required.
- [Profiler](https://noir-lang.org/docs/tooling/profiler): Learn about the Noir Profiler, how to generate execution flamegraphs, identify bottlenecks, and visualize optimizations.
- [Setting up shell completions](https://noir-lang.org/docs/tooling/shell_completions): Generate and install shell completion scripts for the nargo CLI in zsh, bash, fish, powershell, and elvish.
- [Tests](https://noir-lang.org/docs/tooling/tests): Learn how to use Nargo to test your Noir program in a quick and easy way
- [Building a web app with Noir and Barretenberg](https://noir-lang.org/docs/tutorials/noirjs_app): Learn how to setup a new app that uses Noir to generate and verify zero-knowledge SNARK proofs in a typescript or javascript environment.