diff --git a/doc/uml/core-classes.png b/doc/uml/core-classes.png
new file mode 100644
index 0000000000000000000000000000000000000000..0743ecf08fdbb3a8520cdc725ab62b34a663c9dd
Binary files /dev/null and b/doc/uml/core-classes.png differ
diff --git a/doc/uml/core-classes.pu b/doc/uml/core-classes.pu
new file mode 100644
index 0000000000000000000000000000000000000000..c513ec886b8569f611493dd2694b5553255f7b81
--- /dev/null
+++ b/doc/uml/core-classes.pu
@@ -0,0 +1,95 @@
+@startuml
+
+package core {
+	class App {
+	-- Signals --
+	current_account_changed(str : account_name)
+	data_changed()
+	-- Slots --
+	-- Properties --
+	current_account
+	accounts
+	-- Methods --
+	}
+	App --* Account : accounts
+
+	class Account {
+	-- Signals --
+	wallets_changed(int : nb_wallets)
+	community_added(int : index)
+	community_removed(int : index)
+	data_changed()
+	-- Slots --
+	-- Properties --
+	communities
+	wallets
+	-- Methods --
+	}
+	Account "1" --* "*" Wallet
+	Account "1" --* "*" Community
+
+	class Wallet {
+		-- Signals --
+	money_received(Transfer)
+	money_sent(Transfer)
+	name_changed(str : new_name
+	data_changed()
+	-- Slots --
+	-- Properties --
+	transfers
+	-- Methods --
+	}
+	Wallet "1" --* "*" Transfer
+
+	class Transfer {
+	-- Signals --
+	state_changed(int : new_state)
+	-- Slots --
+	-- Properties --
+	-- Methods --
+	}
+
+	class Community {
+	-- Signals --
+	members_changed()
+	data_changed()
+	-- Slots --
+	-- Properties --
+	network
+	-- Methods --
+	}
+	Community "1" --* "1" Network
+
+	class Network {
+	-- Signals --
+	node_found(int : index)
+	node_removed(int : index)
+	block_found(int : block_number)
+	-- Slots --
+	-- Properties --
+	nodes
+	root_nodes
+	-- Methods --
+	}
+	Network "1" --* "*" Node
+
+	class Node {
+	-- Signals --
+	changed()
+	-- Slots --
+	-- Properties --
+	endpoints
+	pubkey
+	uid
+	block
+	state
+	-- Methods --
+	}
+
+	class Identity
+	class Contact
+}
+
+
+
+@enduml
\ No newline at end of file
diff --git a/doc/uml/cutecoin.png b/doc/uml/cutecoin.png
new file mode 100644
index 0000000000000000000000000000000000000000..c22cd7f59408e587a60cf0a97be9447e97414f42
Binary files /dev/null and b/doc/uml/cutecoin.png differ
diff --git a/doc/uml/cutecoin.pu b/doc/uml/cutecoin.pu
new file mode 100644
index 0000000000000000000000000000000000000000..e82ef8c4663942df9f8f362a16f67aa4d49da2ce
--- /dev/null
+++ b/doc/uml/cutecoin.pu
@@ -0,0 +1,28 @@
+@startuml
+
+!include core-classes.pu
+!include gui-classes.pu
+!include models-classes.pu
+
+MainWindow "1" --> "1" App
+
+ContactDialog --> Contact
+CertificationDialog --> Community
+TransferDialog --> Community
+
+CurrencyTab "1" --> "1" Community
+
+CommunityTab --> IdentitiesFilterProxyModel
+NetworkTab --> NetworkFilterProxyModel
+WalletTab --> WalletsFilterProxyModel
+
+WalletsFilterProxyModel --> Wallet
+NetworkFilterProxyModel --> Network
+TxHistoryFilterProxyModel --> Transfer
+
+ConfigureAccountDialog --> CommunitiesListModel
+ConfigureCommunityDialog --> RootNodesTableModel
+
+ConfigureAccountDialog --> Account
+ConfigureCommunityDialog --> Community
+@enduml
\ No newline at end of file
diff --git a/doc/uml/gui-classes.png b/doc/uml/gui-classes.png
new file mode 100644
index 0000000000000000000000000000000000000000..68c1f4367a618e30ab4c42dcdb803808ab8a6ba6
Binary files /dev/null and b/doc/uml/gui-classes.png differ
diff --git a/doc/uml/gui-classes.pu b/doc/uml/gui-classes.pu
new file mode 100644
index 0000000000000000000000000000000000000000..aa8ae4769f9bbb68023ec481da3738d929d8c82c
--- /dev/null
+++ b/doc/uml/gui-classes.pu
@@ -0,0 +1,62 @@
+@startuml
+
+
+package gui {
+	package tabs {
+		class MainWindow {
+		}
+		MainWindow "1" --* "*" CurrencyTab
+
+		class CurrencyTab {
+		}
+		CurrencyTab "1" --* "1" CommunityTab
+		CurrencyTab "1" --* "1" WalletTab
+		CurrencyTab "1" --* "1" InformationsTab
+		CurrencyTab "1" --* "1" TransactionsTab
+
+		class CommunityTab {
+		}
+
+		CommunityTab "1" --* "1" IdentitiesTab
+		CommunityTab "1" --* "1" WotTab
+
+		class WalletTab {
+		}
+
+		class InformationsTab {
+		}
+
+		class TransactionsTab {
+		}
+
+		class NetworkTab {
+		}
+
+		CurrencyTab "1" --* "1" NetworkTab
+
+		class IdentitiesTab {
+		}
+
+		class WotTab {
+		}
+	}
+	package dialogs {
+		class CertificationDialog
+		class TransferDialog
+		class ContactDialog
+		class ConfigureAccountDialog
+		class ConfigureCommunityDialog
+	}
+
+	MainWindow --> CertificationDialog
+	MainWindow --> TransferDialog
+	MainWindow --> ContactDialog
+	MainWindow --> ConfigureAccountDialog
+	ConfigureAccountDialog --> ConfigureCommunityDialog
+
+	package views {
+		class Wot
+		WotTab --> Wot
+	}
+}
+@enduml
\ No newline at end of file
diff --git a/doc/uml/models-classes.png b/doc/uml/models-classes.png
new file mode 100644
index 0000000000000000000000000000000000000000..54fec65a2ab178127054ae952f4b55b7e0afbc52
Binary files /dev/null and b/doc/uml/models-classes.png differ
diff --git a/doc/uml/models-classes.pu b/doc/uml/models-classes.pu
new file mode 100644
index 0000000000000000000000000000000000000000..1650739d5d4c65bfa48ba299c543b4d019cde42b
--- /dev/null
+++ b/doc/uml/models-classes.pu
@@ -0,0 +1,39 @@
+@startuml
+
+package models {
+	class WalletsFilterProxyModel {
+	}
+
+	WalletsFilterProxyModel --> WalletsTableModel : source
+
+	class WalletsTableModel {
+	}
+
+	class IdentitiesFilterProxyModel {
+	}
+	IdentitiesFilterProxyModel --> IdentitiesTableModel : source
+
+	class IdentitiesTableModel {
+	}
+
+	class NetworkFilterProxyModel {
+	}
+	NetworkFilterProxyModel --> NetworkTableModel : source
+
+	class NetworkTableModel {
+	}
+
+	class TxHistoryFilterProxyModel {
+	}
+	TxHistoryFilterProxyModel --> TxHistoryTableModel : source
+	class TxHistoryTableModel {
+	}
+
+	class CommunitiesListModel {
+	}
+
+	class RootNodesTableModel {
+	}
+}
+
+@enduml
\ No newline at end of file