Developer guide
This documentation is written for app developers or advanced users. You should first be comfortable with business process explained in end-user documentation. You might also need to look deeper and read lower level technical documentation ipns://doc.duniter.org/. This documentation expects you are familiar with some Substrate framework concepts like pallets, extrinsics, storage, so read substrate documentation first.
Business logic
These sections aim to explain how to implement general features of Duniter business logic.
- account management (client and server sides)
- web of trust (identity creation, certifications, membership, distance rule)
- universal dividend (unclaimed UDs, UD history)
- fees and account linking (fee prediction, use of quota)
- transaction comments
Don't hesistate to test on dev networks using other tools to get a better sense on how this works.
API specs
An app developer should be able to do everything with calls, errors, events, storage items, and constants available in the runtime. The runtime is made both from Duniter pallets and Substrate Frame pallets. You will find all these pallets items documented here:
- runtime calls
- runtime errors
- runtime events
- [runtime storage] (missing)
- [runtime constants] (missing)
If you need to have a deeper look on Duniter pallets, read the Rust documentation: ipns://doc.duniter.org/.
Indexer
Performing all the checks in the onchain storage is possible, but sometimes inconvenient. The storage is indeed modeled according to the runtime needs which are sometimes not aligned with client needs. It can be more convenient and sometimes necessaru to use an indexer like Duniter-Squid. The app developer should however keep in mind that:
- the indexer does not brings the garantees of a light client (storage proofs and so)
- when doing that you rely on the indexer and must trust it
Explore the GraphQL schema of Duniter-Squid here: https://git.duniter.org/nodes/duniter-squid/-/blob/main/schema.graphql.