A Connection wraps an SDK or API and provides an interface to network, ledgers and other services. Where necessary, a connection is responsible for translating between the framework specific Envelope with its contained Message and the external service or third-party protocol (e.g. HTTP).

The framework provides one default connection, called stub. It implements an I/O reader and writer to send messages to the agent from a local file. Additional connections can be added as packages.

An AEA can interact with multiple connections at the same time via the Multiplexer.

Multiplexer of an AEA

It maintains an InBox and OutBox, which are, respectively, queues for incoming and outgoing envelopes.


The connection.yaml file of a connection package contains meta information on the connection as well as all the required configuration details. For more details have a look here

Developing your own

The easiest way to get started developing your own connection is by using the scaffold command:

aea scaffold connection my_new_connection

This will scaffold a connection package called my_new_connection with three files:

  • __init__.py
  • connection.py, containing the scaffolded connection class
  • connection.yaml containing the scaffolded configuration file