diff --git a/docs/general/common-mistakes.md b/docs/general/common-mistakes.md new file mode 100644 index 0000000..204ad16 --- /dev/null +++ b/docs/general/common-mistakes.md @@ -0,0 +1,44 @@ +--- +sidebar_label: '❌ Common Mistakes & Misconceptions' +sidebar_position: 4 +description: Description of common mistakes and errors that users should understand and prevent from doing +--- + +# Common Mistakes & Misconceptions + +## Mistakes to avoid! + +### Can I send Ether / LYXe or any Token from Ethereum to my Universal Profile? + +No you cannot send any Ethers, [LYXe (the ERC20 token on Ethereum)](https://etherscan.io/token/0xA8b919680258d369114910511cc87595aec0be6D) or any tokens on Ethereum to your Universal Profile address. + +⚠️ **Users who try to send Ether, LYXe or any token on Ethereum to their Universal Profile address will result in their assets / funds being lost and not accessible anymore.** + +The reason is because currently Universal Profiles are only deployed on the LUKSO network and your Universal Profile does not exists as a smart contract on the Ethereum network. + +:::danger LYXe vs LYX Transactions + +‼️⚠️ If you hold LYXe, **do not send them to your Universal Profile's address!** + +- LYXe is the token deployed on Ethereum. +- LYX is the native currency of the LUKSO Network + +Therefore, you cannot send LYXe to your Universal Profile's address, as your Universal Profile is deployed and only exists on the LUKSO network. + +To transfer your LYXe to your UP, **you must first, migrate your LYXe to LYX the [LUKSO Migration Service](https://migrate.lukso.network/)**. + +For further details, please visit the [Migration Support](../migration/introduction.md) page. + +::: + +## Common misconceptions + +### Can I control assets using Universal Profiles on any blockchain? + +You can manage your assets through a Universal Profile on any blockchain the contract is deployed on. If a service or project would allow you to create Universal Profiles on Ethereum, you could manage your assets through it. + +### Is it possible to create a profile with the same address as my wallet? + +The Universal Profile is a smart contract account deployed on its own with its own unique address. + +Because of the nature of how addresses are created and controlled on a Blockchain, it is not possible to deploy a Universal Profile smart contract at the same EOA address that you own. Deploying a UP cannot _overwrite or have the same address as an existing EOA wallet (browser or hardware wallet)_. diff --git a/docs/general/faq/faq.md b/docs/general/faq.md similarity index 56% rename from docs/general/faq/faq.md rename to docs/general/faq.md index f9c2cf5..2076cb9 100644 --- a/docs/general/faq/faq.md +++ b/docs/general/faq.md @@ -12,7 +12,7 @@ Yes, absolutely! Please go to our main [grants program page](https://lukso.netwo ## Why can't I delete my old private keys? -At the moment, the Universal Profile Browser Extension only allows to disable permissions of old controller keys. If you want to improve security, please disable all permissions of an old controller. You can learn more within the [Controllers](../../Extension/controllers.md) page. Soon, there will be a feature to manually remove controllers completely. +At the moment, the Universal Profile Browser Extension only allows to disable permissions of old controller keys. If you want to improve security, please disable all permissions of an old controller. You can learn more within the [Controllers](../Extension/controllers.md) page. Soon, there will be a feature to manually remove controllers completely. ## Why I can't I see all my controllers? @@ -30,4 +30,18 @@ If your deployed assets do not appear on your profile on [universalprofile.cloud Due to some changes in how data is added to the Universal Profile in the early days, it might happen that your profile does not have a name to it or shows completely anonymous on [universalprofile.cloud](https://universalprofile.cloud/) without any pictures. If you experience such an issue, please **edit and deploy your profile metadata** again within the Universal Profile Browser Extension as shown in the following picture: -![Edit Universal Profile](../../../static/img/general/edit-profile.png) +![Edit Universal Profile](/img/general/edit-profile.png) + +## Why do Universal Profile transactions show up as internal transactions? + +Unlike regular wallets that are Externally Owned Accounts (EOA), a Universal Profile is an account powered by a **smart contract**. + +With EOA wallets, _transactions are made directly by the address itself_ (which own the funds like native tokens, ERC20 tokens or NFTs). + +With a Universal Profile, transactions are _executed either via a relayer or directly by one of it's controllers_. + +When you use your Universal Profile to transfer LYX or any assets (tokens or NFTs), some custom logic must be executed before transferring the asset itself (_this includes checking the permissions, if the UP has enough LYX that it is trying to send, EVM internal logic, etc..._). Therefore the actual _"transfer"_ is part of a larger execution logic. This is the reason why actual LYX and token transfers appear as internal transactions. + +In a transaction on the block explorer, you can see the actual transfer being made as part of the **internal transactions**. For example in the screenshot below, you can see the LYX transfer being one of the internal transactions (the other internal transactions before and after are related to what is mentioned above). + +![Internal transaction value transfer](/img/universalprofilecloud/internal-tx-value-transfer.png) diff --git a/docs/general/getting-started/_category_.yml b/docs/general/getting-started/_category_.yml deleted file mode 100644 index c9e705d..0000000 --- a/docs/general/getting-started/_category_.yml +++ /dev/null @@ -1,3 +0,0 @@ -label: ' 👨‍🚀 Getting Started' -collapsed: false -position: 2 diff --git a/docs/general/getting-started/popular-dapps.md b/docs/general/getting-started/popular-dapps.md deleted file mode 100644 index b4d477e..0000000 --- a/docs/general/getting-started/popular-dapps.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_label: '🤖 Popular Dapps' -sidebar_position: 4 -description: Some interesting dapps built on LUKSO ---- - -# Popular Dapps and Projects - -:::info -This page is under construction -::: diff --git a/docs/general/getting-started/using-exchanges.md b/docs/general/using-exchanges.md similarity index 100% rename from docs/general/getting-started/using-exchanges.md rename to docs/general/using-exchanges.md diff --git a/docs/migration/migration-on-exchanges.md b/docs/migration/migration-on-exchanges.md index 6b35298..c4edb66 100644 --- a/docs/migration/migration-on-exchanges.md +++ b/docs/migration/migration-on-exchanges.md @@ -29,6 +29,6 @@ You can trade or swap LYX using the following platforms: :::danger Smart Contract Transactions -Never send LYX directly from your Universal Profile to an Exchange. This might result in your funds being locked. Please check out the [Exchange Guide](docs/general/getting-started/using-exchanges.md) in case you want to send your migrated LYX back to the exchange. +Never send LYX directly from your Universal Profile to an Exchange. This might result in your funds being locked. Please check out the [Exchange Guide](docs/general/using-exchanges.md) in case you want to send your migrated LYX back to the exchange. ::: diff --git a/docs/universalprofilecloud/Recovery/_category_.yml b/docs/universalprofilecloud/Recovery/_category_.yml index dcf4e4d..a1607ed 100644 --- a/docs/universalprofilecloud/Recovery/_category_.yml +++ b/docs/universalprofilecloud/Recovery/_category_.yml @@ -1,3 +1,3 @@ -label: '🔄 Recovery' +label: '🌱 Recovery' collapsed: false -position: 2 +position: 4 diff --git a/docs/universalprofilecloud/Recovery/set-wallet-recovery.md b/docs/universalprofilecloud/Recovery/set-wallet-recovery.md index 78ed7aa..581fcbd 100644 --- a/docs/universalprofilecloud/Recovery/set-wallet-recovery.md +++ b/docs/universalprofilecloud/Recovery/set-wallet-recovery.md @@ -1,5 +1,5 @@ --- -sidebar_label: '👛 Set Wallet Recovery' +sidebar_label: '👛 Set 3rd party Wallet Recovery' sidebar_position: 6 description: 'How to set up wallet recovery on the LUKSO Universal Profile Extension?' --- diff --git a/docs/universalprofilecloud/Recovery/wallet-recovery.md b/docs/universalprofilecloud/Recovery/wallet-recovery.md index 418aa3d..aa75a7a 100644 --- a/docs/universalprofilecloud/Recovery/wallet-recovery.md +++ b/docs/universalprofilecloud/Recovery/wallet-recovery.md @@ -1,5 +1,5 @@ --- -sidebar_label: '🔐 Recover from Wallet' +sidebar_label: '🔐 Recover from 3rd party Wallet' sidebar_position: 7 description: 'How to recover a Universal Profile using your private key or 3rd-party wallet' --- diff --git a/docs/universalprofilecloud/dashboard.md b/docs/universalprofilecloud/dashboard.md new file mode 100644 index 0000000..463dd36 --- /dev/null +++ b/docs/universalprofilecloud/dashboard.md @@ -0,0 +1,43 @@ +--- +sidebar_label: '🎛️ Dashboard & UP Management' +sidebar_position: 1 +--- + +# Dashboard & UP Management + +## See my Universal Profile + +You have two ways to visualise your Universal Profile: + +### via the global search bar + +You can find your Universal Profile on the Universal Profile Explorer at [universalprofile.cloud](https://universalprofile.cloud/). + +1. Select the correct network on the bottom left corner. +2. Type the name of your Universal Profile in the **input search field**. +3. Select from the list that appears. + +![Universal Profile Explorer](/img/general/up-cloud.png) + +### via the dashboard + +You can also view your profile via your dashboard: + +1. click on your profile icon / image on the top right to show the hamburger menu. +2. click on **"Dashboard"**. +3. in the dashboard, click on the **"view profile"** button. + +!(profile dashboard in hamburger menu)[/universalprofilecloud/profile-dashboard-hamburger-menu.png] +!(View profile button dashboard)[/universalprofilecloud/view-profile-button-dashboard.png] + +## Manage my Universal Profile + +You can connect your Universal Profile to [my.universalprofile.cloud](https://my.universalprofile.cloud/) to manage it. From the dashboard, you can: + +- See the Universal Profiles you have created. +- Add Recovery with 2FA authentication. +- Recover a Universal Profile you have created. +- See your quota left on relayer +- View your universal profile and edit it (pictures, infos, etc...) + +![Universal Profile Management](/img/general/recovery-dashboard.png) diff --git a/docs/universalprofilecloud/faq.md b/docs/universalprofilecloud/faq.md new file mode 100644 index 0000000..81e151c --- /dev/null +++ b/docs/universalprofilecloud/faq.md @@ -0,0 +1,55 @@ +--- +sidebar_label: '❓ FAQ' +sidebar_position: 5 +description: General questions related to universalprofile.cloud +--- + +# FAQ + +## General + +### Where can I see my Universal Profile? + +You can find your Universal Profile on the Universal Profile Explorer at [universalprofile.cloud](https://universalprofile.cloud/). Just select the correct network on the bottom left corner and use the global search bar to search by your UP name or address. + +### Where can I manage my Universal Profile? + +You can manage your Universal Profile from the dashboard on universalprofile.cloud. Follow our guide [**"How to manage my Universal Profile"**](./dashboard.md#manage-my-universal-profile) to learn more. + +### Is my Universal Profile name unique? + +![Universal Profile's name](/img/general/profile-name.png) + +The profile name displayed on dApps is retrieved from the metadata linked to the smart contract. + +Such metadata, images, or descriptions can be set when creating or updating your Universal Profile. Therefore, multiple users can choose similar names or pictures, which does not guarantee its uniqueness + +What is unique about a Universal Profile is its address and associated identicon. The address is indicated with the first four characters behind the profile name (_`0F41` in the example above_). In case the first characters of the address are similar or identical, you can compare the full address to see that they will remain different (aside of the first four characters). + +For anonymous profiles, the identicon further helps to distinguish between two profiles if the first four characters of the address are similar. The combination of attributes was done to allow complete customization without lacking authentication. + +### How can I delete profiles I have created? + +Currently, **there is no way to delete Universal Profiles that you have created** and that are showing up on the [universalprofile.cloud](https://universalprofile.cloud/) explorer. _This includes if you lost access to it or the deployment was not completed fully_. + +One alternative for profiles that you can still have access to within the Universal Profile Browser Extension is to edit the metadata and remove all the contents like pictures and names. This way the profile will show as anonymous and only the address and identicons will show up in the universalprofile.cloud explorer and your dashboard, helping you in distinguishing them. + +:::info Potential upcoming feature + +Removing profiles is planned for upcoming releases of the _Universal Profile Browser Extension_ and [universalprofile.cloud](https://universalprofile.cloud). + +::: + +## Wallet & Assets + +### Which tokens and NFTs can my Universal Profile hold? + +A Universal Profile can hold any asset on the same network it's deployed on. On LUKSO, the native coin is LYX. While native coins from other networks can't be held directly in Universal Profiles deployed on LUKSO, external services might also create token bridges for external assets. + +### How can I send assets from my Universal Profile? + +See our dedicated page [**"Wallet & Assets"**](./wallet.md) for support and guides on how to transfer assets from your 🆙. + +### My Tokens or NFTs are missing from universalprofile.cloud, how do I add them? + +Follow our guide [**"Add missing assets not showing in your wallet"**](./wallet.md#add-missing-assets-not-displayed) to display the assets you hold that are not showing in your wallet on universalprofile.cloud diff --git a/docs/universalprofilecloud/universal-profiles.md b/docs/universalprofilecloud/universal-profiles.md deleted file mode 100644 index 384f399..0000000 --- a/docs/universalprofilecloud/universal-profiles.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -sidebar_label: '🆙 universalprofile.cloud' -sidebar_position: 1 -description: Support Page for Universal Profiles ---- - -import React from 'react' -import LoomVideo from '../../src/components/LoomVideo' - -# Universal Profiles - -## Where can I see my Universal Profile ? - -You can find your Universal Profile on the Universal Profile Explorer at [universalprofile.cloud](https://universalprofile.cloud/). Just select the correct network on the bottom left corner and use the global search bar to search for your name. - -![Universal Profile Explorer](../../static/img/general/up-cloud.png) - -## How can I send assets from my Universal Profile? - -The Universal Profile Extension **does not directly manage token information**. Instead, it is designed to work with various decentralized applications (dApps) that can seamlessly integrate with your Universal Profile and interact with its information and controllers. You can connect your Universal Profile to [wallet.universalprofile.cloud](https://wallet.universalprofile.cloud/) to send token transactions. - - - -## Where can I manage my Universal Profile? - -You can connect your Universal Profile to [my.universalprofile.cloud](https://my.universalprofile.cloud/) to check and add 2FA recovery or create new profiles. - -![Universal Profile Management](../../static/img/general/recovery-dashboard.png) - -## Is my Universal Profile name unique? - -The profile name displayed on platforms and services is retrieved from the metadata linked to the smart contract. Such metadata, images, or descriptions can be individually set when creating or updating the Universal Profile. Therefore, multiple users can choose similar names or pictures. - -
- -Universal Profile Name - -
- -What is unique about a Universal Profile are its address and the identicon. The address is indicated with the first four characters behind the profile name. In case the first characters of the address should be similar or identical, the identicon further helps to distinguish them. The combination of attributes was done to allow complete customization without lacking authentication. - -## Can I send Ether and Token from Ethereum to my Universal Profile? - -You can't send any assets to the address if you do not deploy the Universal Profile on Ethereum. Users will lose their assets if they send them to other networks without having access to the controller key. - -:::danger LYXe vs LYX Transactions - -‼️⚠️ If you hold LYXe, **do not send them to your Universal Profile's address!** - -- LYXe is the token deployed on Ethereum. -- LYX is the native currency of the LUKSO Network - -Therefore, you cannot send LYXe to your Universal Profile's address, as your Universal Profile is deployed and only exists on the LUKSO network. - -To transfer your LYXe to your UP, **you must first, migrate your LYXe to LYX the [LUKSO Migration Service](https://migrate.lukso.network/)**. - -For further details, please visit the [Migration Support](../migration/introduction.md) page. - -::: - -## Which tokens and coins can my Universal Profile hold? - -A Universal Profile can hold any asset on the same network it's deployed on. On LUKSO, the native coin is LYX. While native coins from other networks can't be held directly in Universal Profiles deployed on LUKSO, external services might also create token bridges for external assets. - -## Can I control assets using Universal Profiles on any blockchain? - -You can manage your assets through a Universal Profile on any blockchain the contract is deployed on. This would also include cases where the standardization was rewritten in a different language. If a service or project would allow you to create Universal Profiles on Ethereum, you could manage your assets through it. - -## Why do Universal Profile transactions show up as internal transactions? - -The Universal Profile is a **smart contract**. Unlike a regular wallet, where _transactions are made directly by the address owning the funds_, the transactions on the Universal Profile are **executed by one of it's controllers**. This division of execution and ownership of assets requires the execution of custom logic of the smart contract. The key manager has to check the permissions of the controller, before any on-chain action is made. This additional logic, established using [LSP smart contracts](https://docs.lukso.tech/standards/introduction) is the reason for transactions appearing as internal. - -## Is it possible to create a profile with the same address as my wallet? - -The Universal Profile is a smart contract account deployed using a regular wallet key (EOA). Hence it _cannot overwrite or have the same address as an existing browser- or hardware wallet_. - -## How can I delete profiles on the explorer? - -Currently, there's no way to delete profiles showing up on [universalprofile.cloud](https://universalprofile.cloud/) if you lost access or the deployment was not completed. To delete a profile that you can still access within the Universal Profile Browser Extension, please edit the metadata and remove all the contents like pictures and names. - -:::success Upcoming Feature - -Removing profiles is planned for upcoming releases of the _Universal Profile Browser Extension_ and [universalprofile.cloud](https://universalprofile.cloud). - -::: - -## My Tokens or NFTs are missing from universalprofile.cloud, how do I add them? - -If your assets are not getting added to your Universal Profile, it is likely that the Universal Receiver is not able to edit the storage elements of your Universal Profile. - -To solve this issue, [watch this video](https://www.loom.com/share/ff12158265e6482d837d5f9d420b87dd) or follow the steps below: - -1. First, 🆙 extension: - -- Open the Universal Profile Browser Extension and click the "controllers" tab -- Find your "UP Receiver" -- Enable the "Profile data" as well as "Re-entrancy" permissions - -2. Then, wallet: - -- After that, go to our [Missing Assets](https://wallet.universalprofile.cloud/settings/missing-assets) page -- Connect your profile -- Add the token or NFT contract address and click "continue" diff --git a/docs/universalprofilecloud/wallet.md b/docs/universalprofilecloud/wallet.md new file mode 100644 index 0000000..e270a5a --- /dev/null +++ b/docs/universalprofilecloud/wallet.md @@ -0,0 +1,64 @@ +--- +sidebar_label: '🪙 Wallet & Assets' +sidebar_position: 2 +--- + +# Wallet & Assets + +import React from 'react' +import LoomVideo from '@site/src/components/LoomVideo' + +## Transfer Tokens & NFTs from my Univeral Profile + +The Universal Profile Extension **does not enable you to transfer tokens directly from the extension itself**. + +Instead, it is designed to work with various decentralized applications (dApps) that can seamlessly integrate wallet features in their UI. + +You can connect your Universal Profile to [wallet.universalprofile.cloud](https://wallet.universalprofile.cloud/) to send native tokens (LYX) or any token or NFT. + + + +## Add missing assets not displayed + +If your assets are not showing up in your list of Tokens or NFTs on your Universal Profile page, it is likely that the Universal Receiver has not been able to add them in your list of received assets at the time you received them. + +You can solve this issue by watching this video or following the steps below. + + + +
+ +First, you can check that you have a balance for this asset. To do so, go the [LUKSO block explorer](https://explorer.lukso.network): + +1. Type the token name, symbol or paste the address of the asset you are missing. +2. In the next page, click on **"Contract" > tab "Read Contract"**. +3. Open the `balanceOf` function by clicking on it. +4. Paste your UP address under the input field next to `tokenOwner`. +5. Click on the **"Read"** button + +If your UP has a balance for this asset, you can process to the next steps below to add the missing asset in your list of received assets for your 🆙. + +![Show balance of asset on Blockscout](/img/universalprofilecloud/see-asset-balance-blockscout.png) + +### Step 1 - Check that your Universal Receiver Delegate has the right permissions + +This step will ensure that the Universal Receiver connected to your Universal Profile is correctly set up with the right permissions, so that it can register any new tokens and NFTs that your UP receives. + +1. Open the Universal Profile Browser Extension +2. Click the "controllers" tab +3. Find your "UP Receiver" +4. Check that the permissions **"Profile data"** and **"Re-entrancy"** are switch on. If they are not, switch them on. + +### Step 2 - Add the asset not showing on universalprofile.cloud + +1. Go to [universalprofile.cloud](https://universalprofile.cloud/) and click on the top right button **"Login"** to connect your UP to the dApp. +2. In the page for your Universal Profile, go to the **"Settings > Add missing assets"** page. + +> You can also click on this link to access the page directly 🙂: [Add missing assets](https://universalprofile.cloud/settings/missing-assets) + +3. Paste the address of the asset and click on **"Continue"**. +4. In the next screen, click on the **"Add missing asset"** button. +5. A transaction should popup in your UP Browser extension. You can confirm it to add the missing asset. + +![Add missing asset input field](/img/universalprofilecloud/add-missing-asset-input-field.png) +![Add missing asset screen](/img/universalprofilecloud/add-missing-asset-screen.png) diff --git a/docusaurus.config.js b/docusaurus.config.js index 505381d..08ad5c0 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -84,7 +84,7 @@ export default { }, { type: 'doc', - docId: 'universalprofilecloud/universal-profiles', + docId: 'universalprofilecloud/dashboard', position: 'left', label: 'UniversalProfile.cloud', }, diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..c2b962f --- /dev/null +++ b/src/index.js @@ -0,0 +1,76 @@ +function generatePDFOnFormSubmit() { + var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); + + var folder = DriveApp.getFolderById('1pjWLMfl9ZCISRB7nkPiV1CIDuO3QH8y4'); // Replace with your folder ID + + var lastRow = sheet.getLastRow(); + + // Get the data from the last form submission + + var formData = sheet + .getRange(lastRow, 1, 1, sheet.getLastColumn()) + .getValues()[0]; + + var sheet = SpreadsheetApp.getUi(); + + // TODO: extract the second tab sheet wuth the Fiche Incident with right layout + + // If you want to create a new sheet with form responses: + + var newSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet( + 'Form_Responses_' + lastRow, + ); + + newSheet.appendRow(sheet.getRange('1:1').getValues()[0]); // Add header + + newSheet.appendRow(formData); // Add latest form submission data + + // Define PDF export parameters + + var url = + 'https://docs.google.com/spreadsheets/d/' + + SpreadsheetApp.getActiveSpreadsheet().getId() + + '/export?' + + 'format=pdf&' + + 'size=letter&' + // Paper size + 'portrait=true&' + // Orientation + 'fitw=true&' + // Fit to width + 'sheetnames=false&' + // Hide sheet names + 'printtitle=false&' + // Don't repeat row headers + 'pagenumbers=true&' + // Include page numbers + 'gridlines=false&' + // Hide gridlines + 'fzr=false&' + // Freeze rows + 'gid=' + + sheet.getSheetId(); // Get the current sheet ID + + // Get the Blob (PDF) from the URL + + var token = ScriptApp.getOAuthToken(); + + var response = UrlFetchApp.fetch(url, { + headers: { + Authorization: 'Bearer ' + token, + }, + }); + + var pdfBlob = response + .getBlob() + .setName('Fiche_Incident_generée_' + lastRow + +'.pdf'); + + // Save the PDF to the designated folder in Drive + + folder.createFile(pdfBlob); + + // Optionally, you can email the PDF as an attachment + + // TODO: retrieve the email from the form and set as recipient + + MailApp.sendEmail( + 'claudia.cavallera@veolia.com', + 'Your PDF', + 'Here is your PDF', + { + attachments: [pdfBlob], + }, + ); +} diff --git a/static/img/universalprofilecloud/add-missing-asset-input-field.png b/static/img/universalprofilecloud/add-missing-asset-input-field.png new file mode 100644 index 0000000..8619757 Binary files /dev/null and b/static/img/universalprofilecloud/add-missing-asset-input-field.png differ diff --git a/static/img/universalprofilecloud/add-missing-asset-screen.png b/static/img/universalprofilecloud/add-missing-asset-screen.png new file mode 100644 index 0000000..fb54a35 Binary files /dev/null and b/static/img/universalprofilecloud/add-missing-asset-screen.png differ diff --git a/static/img/universalprofilecloud/internal-tx-value-transfer.png b/static/img/universalprofilecloud/internal-tx-value-transfer.png new file mode 100644 index 0000000..3a05896 Binary files /dev/null and b/static/img/universalprofilecloud/internal-tx-value-transfer.png differ diff --git a/static/img/universalprofilecloud/profile-dashboard-hamburger-menu.png b/static/img/universalprofilecloud/profile-dashboard-hamburger-menu.png new file mode 100644 index 0000000..01101ec Binary files /dev/null and b/static/img/universalprofilecloud/profile-dashboard-hamburger-menu.png differ diff --git a/static/img/universalprofilecloud/see-asset-balance-blockscout.png b/static/img/universalprofilecloud/see-asset-balance-blockscout.png new file mode 100644 index 0000000..2cbfc73 Binary files /dev/null and b/static/img/universalprofilecloud/see-asset-balance-blockscout.png differ diff --git a/static/img/universalprofilecloud/view-profile-button-dashboard.png b/static/img/universalprofilecloud/view-profile-button-dashboard.png new file mode 100644 index 0000000..134038a Binary files /dev/null and b/static/img/universalprofilecloud/view-profile-button-dashboard.png differ