AM dashboard: MVP Investors page
GOAL We will create a new dashboard for asset managers/fund admins to control the day to day operations of their pools. By the time we build out the full dashboard, we will no longer need the following pages: Liquidity, Fees, Issuer pages (Access, Pricing, Investors, Configuration) and NAV management.
Note: there is no change in access to the pools. Wallet addresses that today trigger the Issuer pages as well as NAV management tab, will now be able to see the Dashboard icon in the menu on the left hand side, above Pools. It should not be visible as an option if that wallet address does not have any pools listed under it.
DESIGNS Figma
INVESTORS PAGE Main page
- The pools listed under that wallet address should be preselected. User has the option to unselect.
- The table below should show the data for all the selected pools. Note, there is a search function for
Walletand filter option forNetwork. Total number of investors should be above the table.
- When the user clicks on a row, side panel should open up with the
token name,realized & unrealized P&L,WalletandTransaction history. - For the wallet, the user has the option to Enable and Disable a wallet. When the wallet is disabled, user can still redeem and transfer tokens to an active user, but not invest nor receive new tokens from transfers. Freeze and Unfreeze a wallet. Stop all operations this user is allowed to do, including transfers, redemptions, investments Copy: Copy the wallet address
- Clicking on
View allfor theTransaction historyshould take the user to theInvestor transactionsreport underDatafiltered for that particular wallet address.
Supported networks
- Above the table, the first CTA is
Supported networks. - Users need to select the
Networks, then thepoolwhich will automatically list out the tranche tokens for that pool. They can then select thetokenswhich is the currencies the tranche tokens will be deployed on. They have the ability to do this for multiple networks at once. - The user has to only click
Update, and we will management the 2-step deployment in the back-end. - Once the tokens have been deployed, the user should see the green checkmark next to the tranche tokens, with the address that they can click out to.
Onboarding settings
- Select the pool, which should auto-populate all the existing onboarding settings for that pool.
- Users can edit the settings, add/delete documents etc.
- If using
Centrifuge onboarding, there is a list of countries that Shuftipro does not support. Those cannot be deleted. But the user can add more and delete those. - If not using Centrifuge onboarding, we will still give users the option to add
Restricted countriesthat they can delete. - Note: For MVP, we will not segment by KYB and KYC and keep it to the same list.
Add investor
- For adding new investors, first select the pool
- If the pool is single tranche, the token should be preselected. If it is multi-tranche, there is a dropdown to select one
- Add
Wallet addressandNetworkas mandatory fields
IMPLICATIONS FOR THE APP
- Once the above has been done, we will no longer need
InvestorsandConfigurationpages - We will also remove the
Historypage from the menu bar
@hieronx wondering if you can help me out:
Enable and Disable a wallet. When the wallet is disabled, user can still redeem and transfer tokens to an active user, but not invest nor receive new tokens from transfers. Freeze and Unfreeze a wallet. Stop all operations this user is allowed to do, including transfers, redemptions, investments
For enable/disable this is what I had in mind, would this still allow users to redeem and transfer tokens?
enable: api.tx.permissions.add(PoolRole: TrancheInvestor) & api.tx.liquidityPools.updateMember())
disable: api.tx.permissions.remove(PoolRole: TrancheInvestor) & api.tx.liquidityPools.updateMember())
I remember there being a time block when trying to remove investor permissions, can you please confirm what the minimum time is on demo and production? Currently we have it set to 7 days. Would we be able to show some kind of in between state while the wallet is being disabled?
Not sure how to handle freezing account, what's your recommendation? I'm not sure how to disallow transfers.
enable: api.tx.permissions.add(PoolRole: TrancheInvestor) & api.tx.liquidityPools.updateMember()) disable: api.tx.permissions.remove(PoolRole: TrancheInvestor) & api.tx.liquidityPools.updateMember())
That looks right to me
I remember there being a time block when trying to remove investor permissions, can you please confirm what the minimum time is on demo and production? Currently we have it set to 7 days. Would we be able to show some kind of in between state while the wallet is being disabled?
I wouldn't worry about this, since the 7 day delay will not apply anymore in the new protocol, would just leave out this state in the UI
Not sure how to handle freezing account, what's your recommendation? I'm not sure how to disallow transfers.
Basically api.tx.liquidityPools.freeze() and api.tx.liquidityPools.unfreeze()
I'm not sure how to disallow transfers.
That is automatic when freezing
If not using Centrifuge onboarding, we will still give users the option to add Restricted countries that they can delete.
@sonam-jo Wondering why we want to collected restricted countries from users if they're not using our onboarding? What purpose would they serve? Currently the lists of countries only apply to shuftipro verifications because they're the ones that are restricting us
For use cases like Vino, where we can enable permissionless distribution, they may still have a requirement to geo-fence investments from certain countries based on their own legal/jurisdiction requirements. We need to support this use case, since most of the issuers are unlikely to use Centrifuge onboarding and prefer their own providers/setup.
@hieronx how do I query if a wallet address is frozen/unfrozen?
You unfortunately can only query this on the LP side. There, it's a call on the hook() of the tranche token. Specifically trancheToken.hook().isFrozen(token, user)
I've done some design QA on the investors page of the dashboard. You can see the feedback here