To see the most recent working version, go to the devel branch.
Android apk: https://rostislavlitovkin.pythonanywhere.com/downloadplutowallet
Other platforms will be available for download probably in November.
git clone https://github.com/RostislavLitovkin/PlutoWallet
git checkout devel
git submodule init
git submodule update
I recommend using Visual Studio 2022: https://visualstudio.microsoft.com/vs/community/
Install .net MAUI: https://learn.microsoft.com/en-us/dotnet/maui/get-started/installation?tabs=vswin
Detailed description on how to run the code: https://docs.microsoft.com/en-us/dotnet/maui/get-started/first-app?tabs=vswin&pivots=devices-android
Multi-platform mobile wallet for substrate-based chains. Focuses on the best UX. First C# mobile wallet in Polkadot ecosystem.
Supported platforms:
- Android & WearOS
- iOS & ipadOS
- MacCatalyst
- Windows
The wallet supports these functionalities:
- generating Mnemonics & creating a privateKey
- showing and sharing your public key and ss58 key
- connecting to any substrate based blockchain/parachain
- getting your actual balance
- transfer of native assets
- fee calculation
- shows transaction status
- Nfts (powered by Uniquery.Net)
- Contracts (Currently just Counter Sample)
- connect to any dApp thanks to Plutonication
3rd party integrations:
The UI/UX is optimised to support multichain out of the box. Instead of having one chain selected at a time, you can have chain groups. This makes the UI more approachable and simple.
- Well prepared video presentation: https://youtu.be/ojU8-w6u5Oo
Extremely important tool for onboarding new users. Not only can you optimise UI layouts to your needs, you can also export them to other users. This can be especially handy for dApp projects:
- In a typical use-case, dApp developers would have to teach new users how to use their wallets. It is usually a big hassle, the user has to find the chain they are looking for and they would still see many confusing crypto functionalities that they would not care about.
- With PlutoLayouts, dApp developers can export the ideal layout (UX optimised for their specific app) and share them to the new users so that they have got the ideal UX out of the box. They will see only features they would actually care about.
- It is highly customisable. When the users decide they want to do more in the ecosystem, they can easily add more functionalities to the wallet. They can learn to use Polkadot on their own pace.
Plutonication allows users to connect PlutoWallet to other dApps seamlessly on any platforms, accross multiple codebases. DApp just generates a QR code and once it is scanned in the wallet, they will pair and the wallet will be able to receive transaction requests from the dApp. To learn more, visit https://github.com/cisar2218/Plutonication.
- It works the same way as WalletConnect protocol.
This project is developed using .net MAUI framework, which allows simple development of native mobile apps on many different platforms from a single codebase. This is crucial for quick (and easier) development while preserving the quality.
The largest NFT support in the whole Polkadot ecosystem, thanks to Uniquery.Net.
Supported Networks/NftStandards:
- Rmrk
- RmrkV2
- Basilisk
- Glmr
- Movr
- Unique
- Quartz
- Opal
- Acala (OnFinality BETA)
- Astar (OnFinality BETA)
- Shiden (OnFinality BETA)
- Statemine/Statemint/Rockmine Nfts pallet
- Statemine/Statemint/Rockmine Uniques pallet
- more to come...
Allows the wallet to communicate with any dApps and sign their respective transaction requests without the risk of compromising the private key.
- 2nd place at Polkadot Global Series hackathon 2023, Europe edition in the Web3 & Tooling category
- Alumnus at Polkadot Blockchain Academy 2023 in Berkeley
- Experienced .net MAUI developer, e.g.:
- Galaxy Logic Game (successful game for watches and mobiles, 50k+ downloads)
- Frontend developer at Calamar explorer
- Successful student at Polkadot DevCamp #2
- Successful student at Solana Summer School
- Polkadot Global Series 2023 (Europe) - second place
- Audience choice prize at EthPrague 2023
- Alumnus at Polkadot Blockchain Academy 2023 in Berkeley
- Student at Faculty of Electrical Engineering Czech Technical University in Prague - Opens Informatics (specialization in computer games and computer graphics)
- Fullstack developer at Universal Scientific Technologies
- Polkadot Global Series 2023 (Europe) - second place
- C# programming language
- .net MAUI
- Substrate.NetApi
- Uniquery.net
- Plutonication
- Plugin.Fingerprint
- CommunityToolkit.Maui
- CommunityToolkit.Mvvm
- MarkDig
- dApp = any application that uses crypto functionalities. In order to use dApps, it needs to communicate with the crypto wallet somehow, or it needs to know your private key (very insecure).
- Substrate key = ss58 encoded key with "42" prefix.
- Chain-specific key = ss58 encoded key with a custom prefix.
- Chain = either standalone blockchain, relay chain, or parachain. (and/or combination of them)
- Extrinsic = A transaction (more info: https://wiki.polkadot.network/docs/learn-extrinsics)
- PlutoLayout = a simple way to save and export custom layouts.
development terminology:
- Entry page - the first screen that the users see (now the Mnemonics page)
-
/Platforms
platform spacific codes, mainly code that ensures the boot on multiple platforms -
/Resources
all resources, including icons, images, fonts, splashscreen... -
/Components
organised by subfolders of different components./<subfolder-name>
contains 1 or more Views (Always a ContentView) and ViewModels. It's respective Model (if existant) lives in/Model
-
/Types
stores custom types. Mainly Ajuna generated ones. -
/Constants
-
/View
stores pages and views shown on pages -
/ViewModel
view's respective ViewModel -
/Properties
nothing important