sindri
Version:
The Sindri Labs JavaScript SDK and CLI tool.
1,532 lines (1,531 loc) • 51.5 kB
JSON
{
"$id": "https://sindri.app/api/v1/sindri-manifest-schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"$defs": {
"CircomCurveOptions": {
"const": "bn254",
"description": "The supported Circom curves.",
"enum": ["bn254"],
"title": "CircomCurveOptions",
"type": "string"
},
"CircomProvingSchemeOptions": {
"const": "groth16",
"description": "The supported Circom proving schemes.",
"enum": ["groth16"],
"title": "CircomProvingSchemeOptions",
"type": "string"
},
"CircomSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Circom circuits.",
"properties": {
"circuitType": {
"const": "circom",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["circom"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"circuitPath": {
"default": "./circuit.circom",
"description": "Path to a `.circom` circuit file with a main component (defaults to `./circuit.circom`).",
"error_messages": {
"pattern": "`circuit_path` must be a valid relative path to your main `.circom` file."
},
"pattern": "^[^/].*\\.circom$",
"title": "Circuit Path",
"type": "string"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/CircomCurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/CircomProvingSchemeOptions"
}
],
"default": "groth16",
"description": "The backend proving scheme."
},
"witnessCompiler": {
"allOf": [
{
"$ref": "#/$defs/CircomWitnessCompilerOptions"
}
],
"default": "c++",
"description": "The circuit witness compiler."
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name"],
"title": "Sindri Manifest for Circom Circuits",
"type": "object"
},
"CircomWitnessCompilerOptions": {
"description": "The supported Circom witness compilers.",
"enum": ["c++", "wasm"],
"title": "CircomWitnessCompilerOptions",
"type": "string"
},
"GnarkCurveOptions": {
"description": "The supported Gnark curves.",
"enum": [
"bls12-377",
"bls12-381",
"bls24-315",
"bn254",
"bw6-633",
"bw6-761"
],
"title": "GnarkCurveOptions",
"type": "string"
},
"GnarkProverHashToFieldNameOptions": {
"description": "The supported Gnark prover HashToField function names.",
"enum": ["", "CometBlsHashToField"],
"title": "GnarkProverHashToFieldNameOptions",
"type": "string"
},
"GnarkProvingSchemeOptions": {
"description": "The supported Gnark proving schemes.",
"enum": ["groth16", "plonk"],
"title": "GnarkProvingSchemeOptions",
"type": "string"
},
"GnarkSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Gnark circuits.",
"properties": {
"circuitType": {
"const": "gnark",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["gnark"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"circuitStructName": {
"description": "The name of the Go struct which defines your circuit inputs.",
"error_messages": {
"pattern": "`circuitStructName` must be a valid Go exported struct name."
},
"pattern": "^[A-Z][A-Za-z0-9_]*$",
"title": "Circuit Struct Name",
"type": "string"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/GnarkCurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"gnarkVersion": {
"allOf": [
{
"$ref": "#/$defs/GnarkVersionOptions"
}
],
"description": "The version of the Gnark framework that your circuit uses."
},
"packageName": {
"description": "The name of the Go package containing your circuit definition.",
"error_messages": {
"pattern": "`packageName` must be a valid Go package name."
},
"pattern": "^[a-z][a-z0-9]*$",
"title": "Go Package Name",
"type": "string"
},
"proverHashToFieldName": {
"allOf": [
{
"$ref": "#/$defs/GnarkProverHashToFieldNameOptions"
}
],
"default": "",
"description": "The prover HashToField function name.",
"title": "Proving HashToField function name."
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/GnarkProvingSchemeOptions"
}
],
"default": "groth16",
"description": "The backend proving scheme."
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": [
"circuitType",
"name",
"circuitStructName",
"gnarkVersion",
"packageName"
],
"title": "Sindri Manifest for Gnark Circuits",
"type": "object"
},
"GnarkVersionOptions": {
"description": "The supported Gnark framework versions.",
"enum": ["v0.8.1", "v0.9.0", "v0.10.0"],
"title": "GnarkVersionOptions",
"type": "string"
},
"Halo2AxiomV022SindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Axiom v0.2.2 circuits built with the Halo2 framework.",
"properties": {
"circuitType": {
"const": "halo2",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["halo2"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/Halo2CurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"degree": {
"description": "Specifies that the circuit will have 2^degree rows.",
"title": "Degree",
"type": "integer"
},
"halo2Version": {
"const": "axiom-v0.2.2",
"description": "The Halo2 frontend that your circuit is written with.",
"enum": ["axiom-v0.2.2"],
"title": "Halo2 Version",
"type": "string"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/Halo2ProvingSchemeOptions"
}
],
"default": "shplonk",
"description": "The backend proving scheme. Defaults to shplonk."
},
"className": {
"description": "The path to your circuit struct definition. (*e.g.* `my-package::my_file::MyCircuitStruct`).",
"error_messages": {
"pattern": "`className` must be a valid and fully qualifed Rust path to a struct including the crate name."
},
"pattern": "^([A-Za-z_][A-Za-z0-9_]*::)+[A-Za-z_][A-Za-z0-9_]*$",
"title": "Circuit Class Name",
"type": "string"
},
"packageName": {
"description": "The name of the Rust package containing your circuit.",
"error_messages": {
"pattern": "`packageName` must be a valid Rust crate name."
},
"pattern": "^[a-z0-9_]+(?:-[a-z0-9_]+)*$",
"title": "Rust Package Name",
"type": "string"
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": [
"circuitType",
"name",
"degree",
"halo2Version",
"className",
"packageName"
],
"title": "Sindri Manifest for Axiom v0.2.2 Halo2 Circuits",
"type": "object"
},
"Halo2AxiomV030SindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Axiom v0.3.0 circuits built with the Halo2 framework.",
"properties": {
"circuitType": {
"const": "halo2",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["halo2"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/Halo2CurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"degree": {
"description": "Specifies that the circuit will have 2^degree rows.",
"title": "Degree",
"type": "integer"
},
"halo2Version": {
"const": "axiom-v0.3.0",
"description": "The Halo2 frontend that your circuit is written with.",
"enum": ["axiom-v0.3.0"],
"title": "Halo2 Version",
"type": "string"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/Halo2ProvingSchemeOptions"
}
],
"default": "shplonk",
"description": "The backend proving scheme. Defaults to shplonk."
},
"className": {
"description": "The path to your circuit struct definition. (*e.g.* `my-package::my_file::MyCircuitStruct`).",
"error_messages": {
"pattern": "`className` must be a valid and fully qualifed Rust path to a struct including the crate name."
},
"pattern": "^([A-Za-z_][A-Za-z0-9_]*::)+[A-Za-z_][A-Za-z0-9_]*$",
"title": "Circuit Class Name",
"type": "string"
},
"packageName": {
"description": "The name of the Rust package containing your circuit.",
"error_messages": {
"pattern": "`packageName` must be a valid Rust crate name."
},
"pattern": "^[a-z0-9_]+(?:-[a-z0-9_]+)*$",
"title": "Rust Package Name",
"type": "string"
},
"threadBuilder": {
"description": "The type of multi-threaded witness generator used. Choose GateThreadBuilder for simple circuits or RlcThreadBuilder for advanced applications that require sources of randomness.",
"enum": ["GateThreadBuilder", "RlcThreadBuilder"],
"title": "Thread Builder",
"type": "string"
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": [
"circuitType",
"name",
"degree",
"halo2Version",
"className",
"packageName",
"threadBuilder"
],
"title": "Sindri Manifest for Axiom v0.3.0 Halo2 Circuits",
"type": "object"
},
"Halo2CurveOptions": {
"const": "bn254",
"description": "The supported Halo2 curves.",
"enum": ["bn254"],
"title": "Halo2CurveOptions",
"type": "string"
},
"Halo2PSEV030SindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for PSE v0.3.0 circuits built with the Halo2 framework.",
"properties": {
"circuitType": {
"const": "halo2",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["halo2"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/Halo2CurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"degree": {
"description": "Specifies that the circuit will have 2^degree rows.",
"title": "Degree",
"type": "integer"
},
"halo2Version": {
"const": "pse-v0.3.0",
"description": "The Halo2 frontend that your circuit is written with.",
"enum": ["pse-v0.3.0"],
"title": "Halo2 Version",
"type": "string"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/Halo2ProvingSchemeOptions"
}
],
"default": "shplonk",
"description": "The backend proving scheme. Defaults to shplonk."
},
"className": {
"description": "The path to your circuit struct definition. (*e.g.* `my-package::my_file::MyCircuitStruct`).",
"error_messages": {
"pattern": "`className` must be a valid and fully qualifed Rust path to a struct including the crate name."
},
"pattern": "^([A-Za-z_][A-Za-z0-9_]*::)+[A-Za-z_][A-Za-z0-9_]*$",
"title": "Circuit Class Name",
"type": "string"
},
"packageName": {
"description": "The name of the Rust package containing your circuit.",
"error_messages": {
"pattern": "`packageName` must be a valid Rust crate name."
},
"pattern": "^[a-z0-9_]+(?:-[a-z0-9_]+)*$",
"title": "Rust Package Name",
"type": "string"
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": [
"circuitType",
"name",
"degree",
"halo2Version",
"className",
"packageName"
],
"title": "Sindri Manifest for PSE v0.3.0 Halo2 Circuits",
"type": "object"
},
"Halo2ProvingSchemeOptions": {
"description": "The supported Halo2 proving schemes.",
"enum": ["gwc", "shplonk"],
"title": "Halo2ProvingSchemeOptions",
"type": "string"
},
"Halo2ScrollSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Scroll circuits built with the Halo2 framework.",
"properties": {
"circuitType": {
"const": "halo2",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["halo2"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/Halo2CurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"degree": {
"description": "Specifies that the circuit will have 2^degree rows.",
"title": "Degree",
"type": "integer"
},
"halo2Version": {
"const": "scroll",
"description": "The Halo2 frontend that your circuit is written with.",
"enum": ["scroll"],
"title": "Halo2 Version",
"type": "string"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/Halo2ProvingSchemeOptions"
}
],
"default": "shplonk",
"description": "The backend proving scheme. Defaults to shplonk."
},
"circuitLevel": {
"allOf": [
{
"$ref": "#/$defs/ScrollCircuitLevelOptions"
}
],
"default": "chunk",
"description": "The circuit level from the multi-level scroll-prover. Defaults to `chunk`"
},
"zkevmVersion": {
"allOf": [
{
"$ref": "#/$defs/ScrollZkevmVersionOptions"
}
],
"default": "latest",
"description": "The supported Scroll zkEVM version."
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name", "degree", "halo2Version"],
"title": "Sindri Manifest for Scroll Halo2 Circuits",
"type": "object"
},
"Halo2TranscriptHashOptions": {
"description": "The supported Halo2 hash functions.",
"enum": ["blake2b", "keccak256", "poseidon"],
"title": "Halo2TranscriptHashOptions",
"type": "string"
},
"HermezProvingSchemeOptions": {
"description": "The supported Polygon Hermez proving schemes.",
"enum": ["batch", "aggregation", "final"],
"title": "HermezProvingSchemeOptions",
"type": "string"
},
"HermezSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Polygon Hermez zkEVM circuits.",
"properties": {
"circuitType": {
"const": "hermez",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["hermez"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/HermezProvingSchemeOptions"
}
],
"default": "batch",
"description": "The Polygon Hermez proof type returned to the user (defaults to `batch`)."
},
"zkevmVersion": {
"allOf": [
{
"$ref": "#/$defs/HermezZkevmVersionOptions"
}
],
"default": "latest",
"description": "The Polygon Hermez zkEVM version (defaults to `latest`)."
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name"],
"title": "Sindri Manifest for Polygon Hermez zkEVM circuits",
"type": "object"
},
"HermezZkevmVersionOptions": {
"description": "The supported zkSync Era zkEVM version tags.",
"enum": ["latest", "v8.0.0-rc.16-fork.12"],
"title": "HermezZkevmVersionOptions",
"type": "string"
},
"JoltCommitmentSchemeOptions": {
"description": "The supported Jolt commitment schemes.",
"enum": ["hyrax", "hyperkzg", "zeromorph"],
"title": "JoltCommitmentSchemeOptions",
"type": "string"
},
"JoltProvingSchemeOptions": {
"const": "jolt",
"description": "The supported Jolt proving schemes.",
"enum": ["jolt"],
"title": "JoltProvingSchemeOptions",
"type": "string"
},
"JoltSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Jolt guest code.",
"properties": {
"circuitType": {
"const": "jolt",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["jolt"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"joltVersion": {
"allOf": [
{
"$ref": "#/$defs/JoltVersionOptions"
}
],
"default": "0.1.0",
"description": "Jolt compiler version (defaults to `0.1.0`)."
},
"packageName": {
"description": "The name of the Rust package containing your circuit.",
"error_messages": {
"pattern": "`packageName` must be a valid Rust crate name."
},
"pattern": "^[a-z0-9_]+(?:-[a-z0-9_]+)*$",
"title": "Rust Package Name",
"type": "string"
},
"stdEnabled": {
"description": "Whether the standard library is enabled.",
"title": "Standard Library Enabled",
"type": "boolean"
},
"commitmentScheme": {
"allOf": [
{
"$ref": "#/$defs/JoltCommitmentSchemeOptions"
}
],
"default": "hyperkzg",
"description": "The commitment scheme used in the circuit.",
"title": "Commitment Scheme"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/JoltProvingSchemeOptions"
}
],
"default": "jolt",
"description": "Jolt proving scheme defaults to `jolt`."
},
"guestFunction": {
"description": "The guest function name used in the guest code.",
"title": "Guest Functions",
"type": "string"
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": [
"circuitType",
"name",
"packageName",
"stdEnabled",
"guestFunction"
],
"title": "Sindri Manifest for Jolt guest code",
"type": "object"
},
"JoltVersionOptions": {
"const": "0.1.0",
"description": "The supported Jolt framework versions.",
"enum": ["0.1.0"],
"title": "JoltVersionOptions",
"type": "string"
},
"NoirCurveOptions": {
"const": "bn254",
"description": "The supported Noir curves.",
"enum": ["bn254"],
"title": "NoirCurveOptions",
"type": "string"
},
"NoirProvingSchemeOptions": {
"const": "barretenberg",
"description": "The supported Noir proving schemes.",
"enum": ["barretenberg"],
"title": "NoirProvingSchemeOptions",
"type": "string"
},
"NoirSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Noir circuits.",
"properties": {
"circuitType": {
"const": "noir",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["noir"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"curve": {
"allOf": [
{
"$ref": "#/$defs/NoirCurveOptions"
}
],
"default": "bn254",
"description": "The curve over which the proof is executed.",
"title": "Proving Curve"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/NoirProvingSchemeOptions"
}
],
"default": "barretenberg",
"description": "The backend proving scheme."
},
"noirVersion": {
"allOf": [
{
"$ref": "#/$defs/NoirVersionOptions"
}
],
"default": "latest",
"description": "Noir compiler version (defaults to `latest`)."
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name"],
"title": "Sindri Manifest for Noir Circuits",
"type": "object"
},
"NoirVersionOptions": {
"description": "The supported Noir Compiler and Prover versions.",
"enum": [
"latest",
"0.17.0",
"0.18.0",
"0.19.4",
"0.22.0",
"0.23.0",
"0.24.0",
"0.25.0",
"0.26.0",
"0.27.0",
"0.28.0"
],
"title": "NoirVersionOptions",
"type": "string"
},
"OpenvmProvingSchemeOptions": {
"const": "root",
"description": "The supported OpenVM proving schemes.",
"enum": ["root"],
"title": "OpenvmProvingSchemeOptions",
"type": "string"
},
"OpenvmSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for OpenVM circuits.",
"properties": {
"circuitType": {
"const": "openvm",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["openvm"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/OpenvmProvingSchemeOptions"
}
],
"default": "root",
"description": "OpenVM proving scheme defaults to 'root'"
},
"openvmVersion": {
"allOf": [
{
"$ref": "#/$defs/OpenvmVersionOptions"
}
],
"default": "scroll",
"description": "OpenVM version defaults to 'scroll'"
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name"],
"title": "Sindri Manifest for OpenVM Circuits",
"type": "object"
},
"OpenvmVersionOptions": {
"const": "scroll",
"description": "The supported OpenVM versions.",
"enum": ["scroll"],
"title": "OpenvmVersionOptions",
"type": "string"
},
"Plonky2SindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for Plonky2 circuits.",
"properties": {
"circuitType": {
"const": "plonky2",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["plonky2"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"structName": {
"description": "The path to your circuit struct definition. (*e.g.* `my-package::my_file::MyCircuitStruct`).",
"error_messages": {
"pattern": "`structName` must be a valid and fully qualifed Rust path to a struct including the crate name."
},
"pattern": "^([A-Za-z_][A-Za-z0-9_]*::)+[A-Za-z_][A-Za-z0-9_]*$",
"title": "Circuit struct Name",
"type": "string"
},
"plonky2Version": {
"allOf": [
{
"$ref": "#/$defs/Plonky2VersionOptions"
}
],
"default": "0.2.2",
"description": "Plonky2 version defaults to '0.2.2'"
},
"provingScheme": {
"default": "plonky2",
"description": "Plonky2 proving scheme defaults to `plonky2`.",
"title": "Proving Scheme",
"type": "string"
},
"packageName": {
"description": "The name of the Rust package containing your circuit.",
"error_messages": {
"pattern": "`packageName` must be a valid Rust crate name."
},
"pattern": "^[a-z0-9_]+(?:-[a-z0-9_]+)*$",
"title": "Rust Package Name",
"type": "string"
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name", "structName", "packageName"],
"title": "Sindri Manifest for Plonky2 Circuits",
"type": "object"
},
"Plonky2VersionOptions": {
"description": "The supported Plonky2 framework versions.",
"enum": ["0.2.0", "0.2.1", "0.2.2"],
"title": "Plonky2VersionOptions",
"type": "string"
},
"ScrollCircuitLevelOptions": {
"description": "The circuit level from the multi-level scroll-prover.",
"enum": ["chunk", "batch", "bundle"],
"title": "ScrollCircuitLevelOptions",
"type": "string"
},
"ScrollZkevmVersionOptions": {
"description": "The supported Scroll zkEVM version tags.",
"enum": ["latest", "v0.12.0", "v0.13.1"],
"title": "ScrollZkevmVersionOptions",
"type": "string"
},
"SnarkVmNetworkOptions": {
"description": "The supported SnarkVM network options",
"enum": ["mainnet", "testnet", "canary"],
"title": "SnarkVmNetworkOptions",
"type": "string"
},
"SnarkVmProvingSchemeOptions": {
"const": "snarkvm",
"description": "The supported SnarkVM proving scheme options",
"enum": ["snarkvm"],
"title": "SnarkVmProvingSchemeOptions",
"type": "string"
},
"SnarkVmSindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for SnarkVM program guest code.",
"properties": {
"circuitType": {
"const": "snarkvm",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["snarkvm"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"functionName": {
"description": "Main aleo function name",
"title": "Function Name",
"type": "string"
},
"network": {
"allOf": [
{
"$ref": "#/$defs/SnarkVmNetworkOptions"
}
],
"default": "mainnet",
"description": "SnarkVM network defaults to `mainnet`."
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/SnarkVmProvingSchemeOptions"
}
],
"default": "snarkvm",
"description": "SnarkVM proving scheme defaults to `snarkvm`."
},
"$schema": {
"type": "string",
"title": "Sindri Manifest JSON Schema URL",
"description": "The URL pointing to a Sindri JSON Manifest schema definition.",
"examples": ["https://sindri.app/api/v1/sindri-manifest-schema.json"]
}
},
"required": ["circuitType", "name", "functionName"],
"title": "Sindri Manifest for SnarkVM guest code",
"type": "object"
},
"Sp1ProvingSchemeOptions": {
"description": "The supported SP1 proving schemes.",
"enum": ["core", "compressed", "plonk", "groth16"],
"title": "Sp1ProvingSchemeOptions",
"type": "string"
},
"Sp1SindriManifest": {
"additionalProperties": false,
"description": "Sindri Manifest for SP1 program guest code.",
"properties": {
"circuitType": {
"const": "sp1",
"description": "The (frontend) development framework that your circuit is written with.",
"enum": ["sp1"],
"title": "Circuit Type",
"type": "string"
},
"name": {
"description": "The circuit name used to uniquely identify the circuit within your organization. Similar to a GitHub project name or a Docker image name.",
"error_messages": {
"pattern": "`name` must be a valid slug."
},
"pattern": "^[a-zA-Z0-9_-]+$",
"title": "Circuit Name",
"type": "string"
},
"homepage": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of the homepage for your team or project.",
"title": "Homepage"
},
"repository": {
"anyOf": [
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URL of a code repository for your project.",
"title": "Repository"
},
"elfPath": {
"default": "",
"description": "The relative path to a RISC-V executable (compiled with the succinct Rust toolchain) if uploading an ELF. Otherwise, leave the field empty to opt for Sindri to compile your guest code. Defaults to empty field.",
"error_messages": {
"pattern": "`elf_path` must be an empty string or a valid relative path."
},
"pattern": "^([^/].*|)$",
"title": "Elf Path",
"type": "string"
},
"packageName": {
"default": "",
"description": "The name of the Rust package containing the Sp1 program code.",
"error_messages": {
"pattern": "`packageName` must be a valid Rust crate name."
},
"pattern": "^[a-z0-9_]+(?:-[a-z0-9_]+)*$",
"title": "SP1 Package Name",
"type": "string"
},
"provingScheme": {
"allOf": [
{
"$ref": "#/$defs/Sp1ProvingSchemeOptions"
}
],
"default": "core",
"description": "The default SP1 proof type returned to the user is `core`."
},
"sp1Version": {
"allOf": [
{
"$ref": "#/$defs/Sp1VersionOptions"
}
],
"default": "4.0.0",
"description": "SP1 version defaults to '4.0.0'"
},