Skip to main content
The agents module handles AI agent registration, retrieval, and access token generation.

Methods

registerAgent

Register a new AI agent.
const { agentId } = await payments.agents.registerAgent(
  metadata,
  apiConfig
)
Parameters:
NameTypeDescription
metadataAgentMetadataAgent name, description, tags
apiConfigAgentApiConfigAPI endpoints and definition URL
Example:
const { agentId } = await payments.agents.registerAgent(
  {
    name: 'My AI Assistant',
    description: 'Helpful AI assistant',
    tags: ['ai', 'assistant'],
    dateCreated: new Date()
  },
  {
    endpoints: [{ POST: 'https://api.example.com/query' }],
    agentDefinitionUrl: 'https://api.example.com/openapi.json'
  }
)

registerAgentAndPlan

Register an agent and payment plan in one call.
const { agentId, planId } = await payments.agents.registerAgentAndPlan(
  agentMetadata,
  agentApi,
  planMetadata,
  priceConfig,
  creditsConfig,
  accessLimit
)
Example:
import { getERC20PriceConfig, getFixedCreditsConfig } from '@nevermined-io/payments'

const { agentId, planId } = await payments.agents.registerAgentAndPlan(
  { name: 'My Agent', tags: ['ai'], dateCreated: new Date() },
  { endpoints: [{ POST: 'https://api.example.com/query' }] },
  { name: 'Pro Plan', description: '100 queries', dateCreated: new Date() },
  getERC20PriceConfig(10_000_000n, usdcAddress, builderAddress),
  getFixedCreditsConfig(100n, 1n),
  'credits'
)

getAgent

Retrieve agent details by ID.
const agent = await payments.agents.getAgent(agentId)
Returns:
interface Agent {
  agentId: string
  name: string
  description: string
  tags: string[]
  endpoints: Endpoint[]
  plans: Plan[]
  dateCreated: Date
}

getAgentAccessToken

Get an access token for querying an agent.
const { accessToken, expiresAt } = await payments.agents.getAgentAccessToken(
  planId,
  agentId
)
Example:
const { accessToken } = await payments.agents.getAgentAccessToken(
  'did:nv:plan-123',
  'did:nv:agent-456'
)

// Use in requests
const response = await fetch(agentEndpoint, {
  headers: {
    'Authorization': `Bearer ${accessToken}`
  }
})

listAgents

List agents (optionally filtered).
const agents = await payments.agents.listAgents({
  owner: '0x...',
  limit: 10,
  offset: 0
})

Types

interface AgentMetadata {
  name: string
  description?: string
  tags?: string[]
  dateCreated: Date
}

interface AgentApiConfig {
  endpoints: Array<{ [method: string]: string }>
  agentDefinitionUrl?: string
}

interface AccessToken {
  accessToken: string
  expiresAt: Date
}

Next Steps