@startuml hide empty members database Duniter actor "Alice (member)" as Alice Alice --> Duniter: Check if can create identity activate Duniter Alice --> Duniter: Check Eve has 2 G1, and get identity Duniter --> Alice: Get Identity = None Duniter --> Alice: AccountDoesNotExist deactivate Duniter Alice --> Duniter: Send 2 G1 to Eve Alice --> Duniter: identity create
activate Duniter Duniter --> Duniter: check Eve has 1 G1 (existent) + 1 G1 (enough for fees) Duniter --> Duniter: idtyCreated (with some fee) + certAdded deactivate Duniter actor "Eve (become member)" as Eve Eve --> Duniter: identity confirm activate Duniter Duniter --> Duniter: idtyConfirmed (with some fee) deactivate Duniter actor Bob Bob --> Duniter: Check if can certify Bob --> Duniter: Check Eve get identityStatus activate Duniter Duniter --> Bob: Eve has idtyConfirmed deactivate Duniter Bob --> Duniter: identity cert actor Marcel Marcel --> Duniter: identity cert actor "Sophie (light node)" as Sophie Sophie --> Sophie: identity cert activate Sophie Sophie --> Duniter: get storage (if need) Sophie --> Duniter: state call 'certification.addCert' deactivate Sophie actor AnyMember AnyMember --> Duniter: [identity request-distance-for , identity cert ] activate Duniter Duniter --> Duniter: idtyValidated Duniter --> AnyMember: Eve has idtyValidated deactivate Duniter @enduml