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)

Compatible with aztec.js 4.0.0-devnet.2-patch.0

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 -X POST https://devnet.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://devnet.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://devnet.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://devnet.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