Contact

Aztec Artifact Registry

Upload your compiled Aztec contract to make artifacts available for others.
Store, verify, and share artifacts in one place.

Upload your compiled Aztec contract JSON files

Drag & drop or click to browse (multiple files supported)

Aztec 4.1.1

API Reference

All endpoints return JSON. No authentication required.

POST/api/upload

Upload Contract

Upload a compiled Aztec contract. Validates structure, extracts class ID, verifies deployment on the Aztec network, and stores the artifact.

Request Example

curl -H 'Expect:' -X POST https://aztec-registry.xyz/api/upload \
  -F 'file=@/path/to/contract.json'

Success Response 200 OK

{
  "success": true,
  "filename": "0x2c01847b...json",
  "classId": "0x2c01847b...d92029",
  "contractName": "Token",
  "functionCount": 42
}

Error Codes

400 Invalid file or validation failed 409 Artifact already exists 413 File too large (>30MB) 503 Aztec node unavailable
GET/api/artifacts

List Artifacts

Retrieve metadata for all stored artifacts, sorted by upload date (newest first).

Request Example

curl https://aztec-registry.xyz/api/artifacts

Success Response 200 OK

[
  {
    "classId": "0x2c01847b...",
    "name": "Token",
    "functionCount": 42,
    "fileSize": 10067321,
    "uploadedAt": "2025-10-22T12:34:56.789Z"
  }
]
GET/api/artifacts/:classId

Download Artifact

Retrieve the full artifact JSON file by class ID. The JSON will be displayed inline in the browser.

Request Example

curl -o artifact.json \
  https://aztec-registry.xyz/api/artifacts/0x2c01847b...d92029

Error Codes

400 Invalid class ID format 404 Artifact not found

Usage Example

Fetch an artifact and deserialize it into a typed ContractArtifact ready for Aztec.js.

import { ContractArtifactSchema } from "@aztec/stdlib/abi";

const CLASS_ID = "0x2c01847b...";

const response = await fetch("https://aztec-registry.xyz/api/artifacts/" + CLASS_ID);
const json = await response.json();
const artifact = await ContractArtifactSchema.parseAsync(json);

console.log(artifact.name);            // "Token"
console.log(artifact.functions.length); // 42