Skip to main content

Node.js Module

The @credo-ts/node package provides Node.js-specific dependencies and utilities for running Credo agents on Node.js platforms.

Installation

npm install @credo-ts/node
Requires Node.js version 20.19 or higher.

What It Provides

The Node module exports:
  • agentDependencies - Platform-specific dependencies for Node.js
  • DidCommHttpInboundTransport - HTTP transport for DIDComm messages
  • DidCommWsInboundTransport - WebSocket transport for DIDComm messages
  • NodeFileSystem - File system implementation for Node.js
  • NodeKeyManagementService - Key management for Node.js

Usage

import { Agent } from '@credo-ts/core'
import { agentDependencies } from '@credo-ts/node'
import { AskarModule } from '@credo-ts/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

const agent = new Agent({
  config: {
    label: 'My Node Agent',
    walletConfig: {
      id: 'wallet-id',
      key: 'wallet-key',
    },
  },
  dependencies: agentDependencies,
  modules: {
    askar: new AskarModule({ ariesAskar }),
  },
})

await agent.initialize()

Transport Configuration

For DIDComm-based applications, you can configure HTTP and WebSocket transports:
import { DidCommHttpInboundTransport, DidCommWsInboundTransport } from '@credo-ts/node'

// Register HTTP transport
agent.registerInboundTransport(
  new DidCommHttpInboundTransport({
    port: 3000,
  })
)

// Register WebSocket transport
agent.registerInboundTransport(
  new DidCommWsInboundTransport({
    port: 3001,
  })
)

Platform Dependencies

The agentDependencies object includes:
  • FileSystem: Node.js file system implementation
  • fetch: Native fetch API
  • EventEmitterClass: Node.js EventEmitter
  • WebSocketClass: ws library WebSocket implementation

See Also

Build docs developers (and LLMs) love