For payments, CirclesUBI heavily relies on “transitive trust”, ie. transitive multi-hops for payments between Circles users who do not trust directly, but via a intermediate users. So if Bob trusts Alice and Carol trusts Bob, Alice can pay Carol with a multi-hop payment of 2 (Alice → Bob → Carol). If Alice sends the payment, her Circle Coins (CRC) are swapped with Bobs and then Bobs are swapped with Carols, so Carol never has to trust Alice directly.
The tool Pathfinder helps finding a shortest path between Alice and Carol if it exists and checks if the amount trusted is enough for Alice to pay Carol.
Calculating transitive trustlines is not an easy tasks and at least requires to know in realtime about the current trust relationsships of all participants.
I created a prototype with an actual Graph-Database, Neo4j, which is perfectly suited for this specific task, but also supports a query language (Cypher) to generate other interesting queries for the trustgraph of Circles.
How to try
Instructions for installation and Docker versions are here: GitHub - ice09/circlesubi-trustgraph-neo4j: Create a Graph of Social Trust from CircleUBI Contract Event Data
Without any guarantee you can also connect to the REST API here to query trustpaths as a service only (no visualization) here: http://cyberdyne-101.net:8889/swagger-ui.html#/trust-graph-controller