Skip to main content
Version: v0.3.x

Setup

This guide assumes you have followed the install guides from the previous section for your platform and a valid Node.js or React Native project setup.

Installing the required dependencies

First we have to install the minimal amount of dependencies that are required for using the Aries Ecosystem.

yarn add @aries-framework/core@^0.3.0 @aries-framework/node@^0.3.0

Additional setup

no additional setup is required

Setting up the agent

this section does not assume any knowledge of the agent configuration. Here we will discuss in-depth what every field in the configuration does and when to set it.

In order to use the agent in the application we have to configure and initialize it. This following configuration is quite generic and possibly not enough for your specific use cases. Please refer to the tutorials for a more use-case-specific agent setup.

import type { InitConfig } from '@aries-framework/core'
import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'

const config: InitConfig = {
label: 'docs-nodejs-agent',
walletConfig: {
id: 'wallet-id',
key: 'testkey0000000000000000000000000',
},
}

const agent = new Agent({
config,
dependencies: agentDependencies,
})

Setting up the transports

After creating an Agent instance, we have to set an outbound transport that will handle traffic from the agent. It is also possible to set an inbound transport in the same way as the outbound transport, but it is built-in, so not required.

Sets up an HTTP outbound and inbound transport.

import { HttpOutboundTransport, WsOutboundTransport } from '@aries-framework/core'
import { HttpInboundTransport } from '@aries-framework/node'

agent.registerOutboundTransport(new HttpOutboundTransport())
agent.registerInboundTransport(new HttpInboundTransport({ port: 3000 }))

Initializing the agent

// ...

const agent = new Agent({
config,
dependencies: agentDependencies,
})

const initialize = async () => await agent.initialize().catch(console.error)

Full code snippet

import type { InitConfig } from '@aries-framework/core'
import { Agent, HttpOutboundTransport } from '@aries-framework/core'
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'

// The agent initialization configuration
const config: InitConfig = {
label: 'docs-nodejs-agent',
walletConfig: {
id: 'wallet-id',
key: 'testkey0000000000000000000000000',
},
}

// Creating an agent instance
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// Registering the required in- and outbound transports
agent.registerOutboundTransport(new HttpOutboundTransport())
agent.registerInboundTransport(new HttpInboundTransport({ port: 3000 }))

// Function to initialize the agent
const initialize = async () => await agent.initialize().catch(console.error)

Useful resources