diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index 44dec6857e12b2e7b1bb26b66e4f537c612f5684..2a72912d7727e6c1f4be84803ebf05359a4b99f8 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -596,6 +596,53 @@ class SubstrateSdk with ChangeNotifier {
     return _certMeta;
   }
 
+  Future revokeIdentity(String address, String password) async {
+    final idtyIndex = await sdk.webView!
+        .evalJavascript('api.query.identity.identityIndexOf("$address")');
+
+    final sender = TxSenderData(
+      keyring.current.address,
+      keyring.current.pubKey,
+    );
+
+    log.d(sender.address);
+    TxInfoData txInfo;
+
+    txInfo = TxInfoData(
+      'membership',
+      'revokeMembership',
+      sender,
+    );
+
+    try {
+      final hash = await sdk.api.tx
+          .signAndSend(
+            txInfo,
+            [idtyIndex],
+            password,
+          )
+          .timeout(
+            const Duration(seconds: 12),
+            onTimeout: () => {},
+          );
+      log.d(hash);
+      if (hash.isEmpty) {
+        transactionStatus = 'timeout';
+        notifyListeners();
+
+        return 'timeout';
+      } else {
+        transactionStatus = hash.toString();
+        notifyListeners();
+        return hash.toString();
+      }
+    } catch (e) {
+      transactionStatus = e.toString();
+      notifyListeners();
+      return e.toString();
+    }
+  }
+
   Future getCurencyName() async {}
 
   Future<String> derive(
diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart
index 5e7aa7eb717e091bc1f98ea7df5e96a16b0e8ac4..b83e8b76865665c32bf86741a9f9f61967c76e1a 100644
--- a/lib/providers/wallet_options.dart
+++ b/lib/providers/wallet_options.dart
@@ -165,6 +165,11 @@ class WalletOptionsProvider with ChangeNotifier {
     });
   }
 
+    Future<bool> isMember(BuildContext context, String address) async {
+    SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
+    return await _sub. idtyStatus(address) == 'Validated';
+  }
+
   Future<String?> validateIdentity(BuildContext context) async {
     TextEditingController idtyName = TextEditingController();
     SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart
new file mode 100644
index 0000000000000000000000000000000000000000..1677f85d6e3eb079140ace76aa0d7409f95c2eed
--- /dev/null
+++ b/lib/screens/myWallets/manage_membership.dart
@@ -0,0 +1,101 @@
+import 'package:flutter/services.dart';
+import 'package:gecko/globals.dart';
+import 'package:flutter/material.dart';
+import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/providers/my_wallets.dart';
+import 'package:gecko/providers/substrate_sdk.dart';
+import 'package:gecko/screens/common_elements.dart';
+import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
+import 'package:gecko/screens/transaction_in_progress.dart';
+import 'package:provider/provider.dart';
+
+class ManageMembership extends StatelessWidget {
+  const ManageMembership({Key? key, required this.address}) : super(key: key);
+  final String address;
+
+  @override
+  Widget build(BuildContext context) {
+    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
+    // HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
+
+    return Scaffold(
+        backgroundColor: backgroundColor,
+        appBar: AppBar(
+            toolbarHeight: 60 * ratio,
+            title: const SizedBox(
+              height: 22,
+              child: Text('Gérer mon adhésion'),
+            )),
+        body: SafeArea(
+          child: Column(children: <Widget>[
+            const SizedBox(height: 20),
+            revokeMyIdentity(context),
+            // const SizedBox(height: 20),
+          ]),
+        ));
+  }
+
+  Widget revokeMyIdentity(BuildContext context) {
+    return InkWell(
+      key: const Key('revokeIdty'),
+      onTap: () async {
+        final _answer = await confirmPopup(context,
+                'Êtes-vous certains de vouloir révoquer définitivement cette identité ?') ??
+            false;
+
+        if (_answer) {
+          MyWalletsProvider _myWalletProvider =
+              Provider.of<MyWalletsProvider>(context, listen: false);
+          SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
+
+          MyWalletsProvider _mw = MyWalletsProvider();
+          final _wallet = _mw.getWalletDataByAddress(address);
+          await _sub.setCurrentWallet(_wallet!);
+
+          WalletData? defaultWallet = _myWalletProvider.getDefaultWallet();
+          String? _pin;
+          if (_myWalletProvider.pinCode == '') {
+            _pin = await Navigator.push(
+              context,
+              MaterialPageRoute(
+                builder: (homeContext) {
+                  return UnlockingWallet(wallet: defaultWallet);
+                },
+              ),
+            );
+          }
+          if (_pin != null || _myWalletProvider.pinCode != '') {
+            _sub.revokeIdentity(address, _myWalletProvider.pinCode);
+          }
+          Navigator.pop(context);
+
+          Navigator.push(
+            context,
+            MaterialPageRoute(builder: (context) {
+              return const TransactionInProgress(transType: 'revokeIdty');
+            }),
+          );
+        }
+        // Navigator.push(
+        //   context,
+        //   MaterialPageRoute(builder: (context) {
+        //     return ManageMembership(
+        //       address: _walletOptions.address.text,
+        //     );
+        //   }),
+        // );
+      },
+      child: SizedBox(
+        height: 40,
+        child: Row(children: const <Widget>[
+          SizedBox(width: 32),
+          // Image.asset(
+          //   'assets/medal.png',
+          //   height: 45,
+          // ),
+          Text('Révoquer mon adhésion', style: TextStyle(fontSize: 20)),
+        ]),
+      ),
+    );
+  }
+}
diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart
index a694f96525319fba2888a584969d9a69f8c1b586..fa1a4bf5657560f29a79cf42b19894d3036f5f8c 100644
--- a/lib/screens/myWallets/wallet_options.dart
+++ b/lib/screens/myWallets/wallet_options.dart
@@ -8,6 +8,8 @@ import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
 import 'package:gecko/providers/wallets_profiles.dart';
+import 'package:gecko/screens/myWallets/manage_membership.dart';
+import 'package:gecko/screens/qrcode_fullscreen.dart';
 import 'package:provider/provider.dart';
 import 'package:flutter/services.dart';
 import 'package:qr_flutter/qr_flutter.dart';
@@ -25,7 +27,7 @@ class WalletOptions extends StatelessWidget {
     WalletsProfilesProvider _historyProvider =
         Provider.of<WalletsProfilesProvider>(context, listen: false);
     MyWalletsProvider _myWalletProvider =
-        Provider.of<MyWalletsProvider>(context);
+        Provider.of<MyWalletsProvider>(context, listen: false);
     HomeProvider _homeProvider =
         Provider.of<HomeProvider>(context, listen: false);
 
@@ -118,30 +120,67 @@ class WalletOptions extends StatelessWidget {
               }),
               Expanded(
                 child: SingleChildScrollView(
-                  child: Column(children: <Widget>[
-                    QrImageWidget(
-                      data: _walletOptions.address.text,
-                      version: QrVersions.auto,
-                      size: isTall ? 300 : 270,
-                    ),
-                    SizedBox(height: 15 * ratio),
-                    Consumer<WalletOptionsProvider>(
-                        builder: (context, walletProvider, _) {
-                      return Column(children: [
-                        pubkeyWidget(walletProvider, ctx),
-                        SizedBox(height: 10 * ratio),
-                        historyWidget(
-                            context, _historyProvider, walletProvider),
-                        SizedBox(height: 12 * ratio),
-                        setDefaultWalletWidget(context, walletProvider,
-                            _myWalletProvider, _walletOptions, _currentChest),
-                        SizedBox(height: 17 * ratio),
-                        if (!walletProvider.isDefaultWallet)
-                          deleteWallet(context, walletProvider,
-                              _myWalletProvider, _currentChest)
-                      ]);
-                    }),
-                  ]),
+                  child: Column(
+                      crossAxisAlignment: CrossAxisAlignment.center,
+                      children: <Widget>[
+                        InkWell(
+                          onTap: () {
+                            Navigator.push(
+                              context,
+                              MaterialPageRoute(builder: (context) {
+                                return QrCodeFullscreen(
+                                  _walletOptions.address.text,
+                                );
+                              }),
+                            );
+                          },
+                          child: QrImageWidget(
+                            data: _walletOptions.address.text,
+                            version: QrVersions.auto,
+                            size: isTall ? 150 : 80,
+                          ),
+                        ),
+                        SizedBox(height: 15 * ratio),
+                        Consumer<WalletOptionsProvider>(
+                            builder: (context, walletProvider, _) {
+                          return Column(children: [
+                            pubkeyWidget(walletProvider, ctx),
+                            SizedBox(height: 10 * ratio),
+                            historyWidget(
+                                context, _historyProvider, walletProvider),
+                            SizedBox(height: 12 * ratio),
+                            setDefaultWalletWidget(
+                                context,
+                                walletProvider,
+                                _myWalletProvider,
+                                _walletOptions,
+                                _currentChest),
+                            SizedBox(height: 17 * ratio),
+                            // walletProvider.isMember(context, _walletOptions.address.text)
+                            FutureBuilder(
+                                future: walletProvider.isMember(
+                                    context, _walletOptions.address.text),
+                                builder: (BuildContext context,
+                                    AsyncSnapshot<bool> _isMember) {
+                                  if (_isMember.connectionState !=
+                                          ConnectionState.done ||
+                                      _isMember.hasError) {
+                                    return const Text('');
+                                  }
+                                  return Column(children: [
+                                    if (!walletProvider.isDefaultWallet &&
+                                        !_isMember.data!)
+                                      deleteWallet(context, walletProvider,
+                                          _myWalletProvider, _currentChest)
+                                    else
+                                      const SizedBox(),
+                                    if (_isMember.data!)
+                                      manageMemberStatus(context)
+                                  ]);
+                                }),
+                          ]);
+                        }),
+                      ]),
                 ),
               ),
             ]),
@@ -356,49 +395,81 @@ class WalletOptions extends StatelessWidget {
     );
   }
 
-  Widget setDefaultWalletWidget(
-      BuildContext context,
-      WalletOptionsProvider walletProvider,
-      MyWalletsProvider _myWalletProvider,
-      WalletOptionsProvider _walletOptions,
-      int _currentChest) {
-    WalletData defaultWallet = _myWalletProvider.getDefaultWallet();
-    _walletOptions.isDefaultWallet = (defaultWallet.number == wallet.id()[1]);
-
+  Widget manageMemberStatus(BuildContext context) {
+    WalletOptionsProvider _walletOptions =
+        Provider.of<WalletOptionsProvider>(context, listen: false);
     return InkWell(
-      key: const Key('setDefaultWallet'),
-      onTap: !walletProvider.isDefaultWallet
-          ? () async {
-              await setDefaultWallet(context, _currentChest);
-            }
-          : null,
+      key: const Key('manageStatus'),
+      onTap: () {
+        Navigator.push(
+          context,
+          MaterialPageRoute(builder: (context) {
+            return ManageMembership(
+              address: _walletOptions.address.text,
+            );
+          }),
+        );
+      },
       child: SizedBox(
-        height: 50,
+        height: 40,
         child: Row(children: <Widget>[
-          const SizedBox(width: 31),
-          CircleAvatar(
-            backgroundColor:
-                Colors.grey[walletProvider.isDefaultWallet ? 300 : 500],
-            child: Image.asset(
-              'assets/walletOptions/android-checkmark.png',
-              height: 25,
-            ),
+          const SizedBox(width: 32),
+          Image.asset(
+            'assets/medal.png',
+            height: 45,
           ),
           const SizedBox(width: 22),
-          Text(
-              walletProvider.isDefaultWallet
-                  ? 'Ce portefeuille est celui par defaut'
-                  : 'Définir comme portefeuille par défaut',
-              style: TextStyle(
-                  fontSize: 20,
-                  color: walletProvider.isDefaultWallet
-                      ? Colors.grey[500]
-                      : Colors.black)),
+          const Text('Gérer mon adhésion', style: TextStyle(fontSize: 20)),
         ]),
       ),
     );
   }
 
+  Widget setDefaultWalletWidget(
+      BuildContext context,
+      WalletOptionsProvider walletProvider,
+      MyWalletsProvider _myWalletProvider,
+      WalletOptionsProvider _walletOptions,
+      int _currentChest) {
+    return Consumer<MyWalletsProvider>(
+        builder: (context, _myWalletProvider, _) {
+      WalletData defaultWallet = _myWalletProvider.getDefaultWallet();
+      _walletOptions.isDefaultWallet = (defaultWallet.number == wallet.id()[1]);
+      return InkWell(
+        key: const Key('setDefaultWallet'),
+        onTap: !walletProvider.isDefaultWallet
+            ? () async {
+                await setDefaultWallet(context, _currentChest);
+              }
+            : null,
+        child: SizedBox(
+          height: 50,
+          child: Row(children: <Widget>[
+            const SizedBox(width: 31),
+            CircleAvatar(
+              backgroundColor:
+                  Colors.grey[walletProvider.isDefaultWallet ? 300 : 500],
+              child: Image.asset(
+                'assets/walletOptions/android-checkmark.png',
+                height: 25,
+              ),
+            ),
+            const SizedBox(width: 22),
+            Text(
+                walletProvider.isDefaultWallet
+                    ? 'Ce portefeuille est celui par defaut'
+                    : 'Définir comme portefeuille par défaut',
+                style: TextStyle(
+                    fontSize: 20,
+                    color: walletProvider.isDefaultWallet
+                        ? Colors.grey[500]
+                        : Colors.black)),
+          ]),
+        ),
+      );
+    });
+  }
+
   Future setDefaultWallet(BuildContext context, int _currentChest) async {
     SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
     MyWalletsProvider _myWalletProvider =
diff --git a/lib/screens/qrcode_fullscreen.dart b/lib/screens/qrcode_fullscreen.dart
new file mode 100644
index 0000000000000000000000000000000000000000..c789e015c02b7e7d65620a185f79e39aa9a613d4
--- /dev/null
+++ b/lib/screens/qrcode_fullscreen.dart
@@ -0,0 +1,56 @@
+import 'package:flutter/services.dart';
+import 'package:gecko/globals.dart';
+import 'package:flutter/material.dart';
+import 'package:gecko/providers/substrate_sdk.dart';
+import 'package:qr_flutter/qr_flutter.dart';
+// import 'package:gecko/models/home.dart';
+// import 'package:provider/provider.dart';
+
+// ignore: must_be_immutable
+class QrCodeFullscreen extends StatelessWidget {
+  TextEditingController tplController = TextEditingController();
+
+  QrCodeFullscreen(this.address, {this.color, Key? key}) : super(key: key);
+  final String address;
+  final Color? color;
+
+  @override
+  Widget build(BuildContext context) {
+    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
+    return Scaffold(
+      appBar: AppBar(
+          elevation: 0,
+          backgroundColor: color ?? Colors.black,
+          toolbarHeight: 60 * ratio,
+          leading: IconButton(
+              icon: Icon(Icons.arrow_back, color: orangeC),
+              onPressed: () {
+                Navigator.pop(context);
+              }),
+          title: SizedBox(
+            height: 22,
+            child: Text(
+              'QR Code de ${getShortPubkey(address)}',
+              style: TextStyle(color: orangeC),
+            ),
+          )),
+      body: SafeArea(
+        child: SizedBox.expand(
+          child: Container(
+              color: color ?? backgroundColor,
+              child: Column(
+                children: [
+                  const Spacer(),
+                  QrImageWidget(
+                    data: address,
+                    version: QrVersions.auto,
+                    size: 350,
+                  ),
+                  const Spacer(flex: 2),
+                ],
+              )),
+        ),
+      ),
+    );
+  }
+}
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
index 18d143866779df57b9d018c54552195425ee59c8..e790fb3379376a1a2e3de4c14f59010dabb389a1 100644
--- a/lib/screens/wallet_view.dart
+++ b/lib/screens/wallet_view.dart
@@ -12,8 +12,10 @@ import 'package:gecko/screens/avatar_fullscreen.dart';
 import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/myWallets/choose_wallet.dart';
 import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
+import 'package:gecko/screens/qrcode_fullscreen.dart';
 import 'package:gecko/screens/transaction_in_progress.dart';
 import 'package:provider/provider.dart';
+import 'package:qr_flutter/qr_flutter.dart';
 
 class WalletViewScreen extends StatelessWidget {
   const WalletViewScreen(
@@ -48,6 +50,25 @@ class WalletViewScreen extends StatelessWidget {
         appBar: AppBar(
           elevation: 0,
           toolbarHeight: 60 * ratio,
+          actions: [
+            InkWell(
+              onTap: () {
+                Navigator.push(
+                  context,
+                  MaterialPageRoute(builder: (context) {
+                    return QrCodeFullscreen(
+                      _walletViewProvider.address!,
+                    );
+                  }),
+                );
+              },
+              child: QrImageWidget(
+                data: _walletViewProvider.address!,
+                version: QrVersions.auto,
+                size: 80,
+              ),
+            ),
+          ],
           title: const SizedBox(
             height: 22,
             child: Text('Voir un portefeuille'),