Roots are the base data unit of the network, they are very light-weight state containers with conversion tracking state.
A Root can have an optional parent root and can be modified by calling actions on it through the agreement contract.
Example: A "click" is represented on the network by a single Root, where every "sale" or "lead" conversion is again represented by a child-Root which can independently change status through action calls. Every click is a root, every conversion is a child root.
A root can change status and status-change history is preserved on the network.
The Root is a lightweight isolated state container, it's state is modified by executing Actions on it, which are specified in the contract.
A Root is created with a
type (eg: click/lead/sale/...), which can't be modified after creation.
Roots allow parent-child relationships, where the tree of relationships increases cost of execution.
The Attrace network agrees on a pre-selected list of types and related statuses which have to be used.
Usage of the correct actions will allow to join in performance statistics.
In the contract code, the types and statuses map to action calls.
Please check the contract library documentation to see what Roots can be created.
The root type max length is 20 characters.