Service Agents
Instructions how to get started with service agents.
Service agents i.e. organization agents utilize Findy Agency through its gRPC API. The agent creation and authentication is handled through the headless authenticator, acator, that implements the FIDO2 protocol. Once authenticated, all agent functionality is available to service agents via the core gRPC API, findy-agent-api.
Read more about getting started with service agents from the blog:
You can use our helper libraries for go, Typescript or Kotlin or use directly the gRPC interface with the language of your choice.
You can also find reference implementations, that you should probably explore before starting to implement an agent of your own:
- sample repository for all supported languages
- go: findy-agent-cli
- JavaScript: findy-issuer-tool, specifically api/src/agent/index.js
Sample flow: connecting to another agent
- Service Agent (SA) registers with acator tool/library to agency. SA should use a unique user name and the selected authenticator key should be kept secret. Note: the registration needs to be done only once. After the first registration, authentication is done using the same user name and authenticator key.
- SA does login with acator tool/library. After successful login, a JWT token is returned to SA.
- SA starts listening to agent status events with gRPC API.
- SA creates connection invitation using gRPC API.
- SA displays/sends/etc. invitation json to another Aries compatible agent (invitee).
- Invitee sends connection request to the core agency, that handles the connection protocol on behalf of SA.
- Core agency notifies SA when the connection is established. SA can query core agency for the needed connection details and continue with e.g. issuing or verifying data with the new connection.