@startuml left to right direction skinparam actorStyle awesome skinparam packageStyle rectangle actor "Offsetter" as offs actor "DAO Validator" as dao package Centralized_Backlog { usecase "Retires CC on behalf of DECA" as CB1 usecase "Gets retirement receipt" as CB2 usecase "Validates CC atributes" as CB3 } offs -down-> CB1 offs -down-> CB2 dao -down-> CB3 rectangle OrbitDB { usecase "Validates CC attributes" as ODB1 usecase "Stores CC attributes" as ODB2 usecase "Updates Migration Requests Status" as ODB3 usecase "Stores NFT Offseter Data" as ODB4 } offs -up-> ODB1 dao -up-> ODB1 rectangle DAO { usecase "Fills Offsetter request form" as DAO1 usecase "Migration request" as DAO2 usecase "Retirement proofs" as DAO3 usecase "Set Offsetters NFT attributes" as DAO4 usecase "Not Approved" as DAO5 usecase "Verify and vote" as DAO7 usecase "Sets CC attributes to OrbitDB" as DAO8 usecase "Votes module update" as DAO10 usecase "Execute mint token" as DAO11 rectangle DAO_Vaults{ usecase "Stores DECA" as DV1 } DAO2 .> DAO1 : includes DAO7 .> DAO3 : includes DAO7 .> DAO4 : extends DAO7 .> DAO5 : extends DAO7 .> DAO8 : extends DAO7 .> DAO11 : extends } offs -up-> DAO2 dao -up-> DAO10 dao -up-> DAO7 DAO8 .> ODB2 : includes DAO5 .> ODB3: includes DAO4 .> ODB4 : includes rectangle "ERC1155" as ERC { usecase "Gets mint order" as ERC1 usecase "Requires amount of DECA to mint" as ERC2 usecase "Requires amount of CCtoken to mint" as ERC3 usecase "Requires NFT Data to mint" as ERC4 usecase "Token Minter/Burner" as ERC5 usecase "Gets DECA" as ERC6 usecase "Gets CCtoken" as ERC7 usecase "Gets NFT" as ERC8 usecase "Burn CCtoken" as ERC9 ERC1 .> ERC2 : extends ERC1 .> ERC3 : extends ERC1 .> ERC4 : extends ERC2 .> ERC5 : includes ERC3 .> ERC5 : includes ERC4 .> ERC5 : includes ERC6 .> ERC5 : includes ERC7 .> ERC5 : includes ERC9 .> ERC5 : includes ERC8 .> ERC5 : includes } offs -down-> ERC7 offs -down-> ERC9 offs -down-> ERC8 dao -right-> ERC6 ODB4 .> ERC8 : includes DV1 .> ERC6 : includes note bottom of ERC: Requires tokenomics module rectangle "Liquidity Pool" as LP{ usecase "Gets % per transaction" as LP1 usecase "Swaps Tokens" as LP2 usecase "Provides liquidity DECA/CCToken" as LP3 } offs -up-> LP1 offs -up-> LP2 DV1.> LP1 : includes DV1.> LP3 : includes note right of LP V2 Will have MAKER/DAI like STABLE CCToken. end note @enduml