Skip to main content
Every aixyz project requires an aixyz.config.ts at the project root. This file defines your agent’s identity, payment settings, and skills. It is validated at build time using Zod schemas.

Full Example

import type { AixyzConfig } from "aixyz/config";

const config: AixyzConfig = {
  name: "Weather Agent",
  description: "Get current weather for any location worldwide.",
  version: "0.1.0",
  url: "https://my-agent.vercel.app",
  x402: {
    payTo: "0x...",
    network: "eip155:8453",
  },
  skills: [
    {
      id: "get-weather",
      name: "Get Weather",
      description: "Get current weather conditions for any city",
      tags: ["weather"],
      examples: ["What's the weather in Tokyo?"],
    },
  ],
};

export default config;

Config Fields

FieldTypeRequiredDescription
namestringYesAgent display name
descriptionstringYesWhat the agent does
versionstringYesSemver version
urlstringNoAgent base URL (auto-detected on Vercel)
x402objectYesPayment configuration
x402.payTostringYesEVM address to receive payments
x402.networkstringYesCAIP-2 chain ID (e.g., eip155:8453)
skillsAgentSkill[]YesSkills exposed in the A2A agent card

AgentSkill

FieldTypeRequiredDescription
idstringYesUnique skill identifier
namestringYesSkill display name
descriptionstringYesWhat the skill does
tagsstring[]YesCategorization tags
examplesstring[]NoExample prompts
inputModesstring[]NoInput MIME types
outputModesstring[]NoOutput MIME types

URL Resolution

If url is omitted, it is auto-detected in the following order:
  1. https://${VERCEL_PROJECT_PRODUCTION_URL} (Vercel production)
  2. https://${VERCEL_URL} (Vercel preview)
  3. http://localhost:3000 (fallback)

Payment Networks

NetworkCAIP-2 ID
Baseeip155:8453
Base Sepoliaeip155:84532
Ethereumeip155:1
Switch networks per environment:
x402: {
  payTo: "0x...",
  network: process.env.NODE_ENV === "production" ? "eip155:8453" : "eip155:84532",
},

Build-Time vs Runtime

At build time, the AixyzConfigPlugin resolves the full config and materializes a runtime-safe subset into the bundle. This means:
  • import config from "aixyz/config" works at runtime without the config file
  • Environment variables referenced in the config are baked in at build time
  • The config file itself is not included in the output bundle