What is from Indy and what not?


Hi @danielh,

Can you tell me which parts exactly sovrin is using from Indy and wich not?

Many thanks ahead and best regards


Sovrin uses all of Indy’s codebases except indy-agent. (The indy-agent repo is entirely compatible with Sovrin; Sovrin just doesn’t depend on it.)

Sovrin adds to that foundation its own genesis transactions and its own rules of operation (governance framework, approved stewards and trustees, vulnerability reporting protocol, crisis management plan, etc). Sovrin is also in the process of adding its own plugin that implements Indy’s payment handler interface.


Daniel, does this imply that Sovrin has its own “agent code base”? …separate from but compatible with indy-agent?

Does Sovrin have any additional code bases/repositories that are specific to Sovrin? …e.g. real code vs. the content that describes the Sovrin governance framework.

Best regards,


The indy-agent repo shows some examples of how to build agents atop indy. There is an enormous variety of possible agents. It would not make sense to say, “Here, build agents exactly like this” when some agents will be sensors running an embedded OS and having very primitive communications mechanisms, and other agents will be complex pieces of software run by organizations having millions of relationships with customers, thousands of parallel conversations, and incredibly rich interactions that include credentials and maybe dozens of other protocols. Thus, the indy-agent repo contains some reference agents, but is more demonstrative than normative. The only exception to this is the agent test suite in that repo, which we imagine using as a basis for formally evaluating interoperability of all agents that ever get written that want to interact with the larger ecosystem.

There is a Sovrin repo that contains the Sovrin Connector–a mobile app that functions as an edge agent for individuals. I don’t know its permanent home, but the first version of it was at https://github.com/sovrin-foundation/sovrin-connector-preview.

There are various other Sovrin repos that add tooling or other collateral. For example, github.com/sovrin-foundation/launch contains a record of the genesis transactions that existed on the day the network formally went live in non-alpha mode on Jul 31, 2017, and a tool that all the stewards and trustees used to generate their keys during the launch ceremony. There are several repos related to CI/CD pipeline management and packaging. The most interesting is the repo for the Sovrin token. You can explore them at github.com/sovrin-foundation. None of these repos change the core of indy in any way. If you are building a client for a generic indy or for Sovrin, you use the indy-sdk. If you are running a node in either case, your node speaks Indy’s plenum protocol. If you are writing an agent, you probably want to use indy-agent as a reference, and you want to test it against the agent test suite there.