Incsmile - pstore.app - A platform for building privacy applications

Objective

Hello world,
In fact, the core team has still not accepted any pull requests from the community yet so pEthereum is only tool (and very helpful foundation, of course) for any arbitrary developers from around the world to be able to build their own privacy applications without the need to upgrade the network.

For that reason, I decided to change my direction to building a platform that enables developers to build their own privacy applications upon the provided base/common functions (a.k.a shield, deploy, execute, undeploy and unshield) as defined in pEthereum’s spec instead of just building Multisig wallet as in the original idea. We can think of this platform as an App Store where people can build their privacy apps, integrate with the exposed apis and submit pApps to it - and Multisig wallet will be the first pApp listing on the store.

Timeline

The development would be split into 3 phases with rough estimation:

  • 1st: a simple web-based wallet along with shield and unshield Ether/ERC20 tokens functionality - by the end of July 2020.
  • 2nd: deploy and undeploy functionality along with the first pApp ever on the platform (Multisig) - by the end of August 2020.
  • 3rd: a complete platform with exposed APIs that is ready for integration - by the end of September 2020.

Notes

  • I don’t tend to build another web wallet (or a competitor of the current wallet app built by the core team). The web-based wallet in my 1st phase is just a entry point so that people can proceed to subsequent features.
  • The MVP version is still needing something (eg., validations, more tokens supported, …) to be able to become a production-ready version. Please play around our MVP version at https://pstore.app and feedback is very welcome.
  • Since this is still on heavy testing time, it’s pointing to testnet environment to avoid any risk of losses.

Documentation (in progress)

User Manual

Github: https://github.com/INC-PSTORE

19 Likes

Hey, i just updated the new hosting IP for my product to http://34.72.75.15:8000. Please use the new one if you’d like to play with it. thanks.

1 Like

Is there additional documentation somewhere? I’m especially curious about how you protect private keys. :thinking:

3 Likes

Hey world, this is documentation in detail of the current functionality provided by my product (a.k.a pStore.app or pStore for short). Basically, there are 4 main features so far:

  • Accounts management.
  • Transfer coins privately.
  • Shield: turn public coins (ETH/ERC20) into private coins (pETH/pERC20).
  • Unshield: turn private coins (pETH/pERC20) back into public coins.

The pStore manages 2 main accounts: one for Incognito and one for Ethereum. Unlike what Incognito app is doing, pStore requires have Ethereum account in order for a user to interact directly with Incognito smart contract. In other words, the user can create and sign a transaction right at client-side (or browser particularly) which will call functions provided by Incognito contract (eg., shield ETH/ERC20 to turn coins into private coins, or unshield pETH/pERC20 to turn private coins into normal coins that can be used on Ethereum network).

The approach might be different a bit from what Incognito wallet app is doing but it would guarantee that the processes would be operated completely in a decentralized fashion. It means user’s money would flow back and forth directly between pStore and Incognito contract and no need to transfer the money to any temporary/middle Ethereum account controlling by a centralized party.

And all transactions of both Incognito and Ethereum would be signed at client-side (a.k.a user’s browser) and sent to the respective networks without enclosing user’s private keys and pStore has also never sent these private keys out of the browser (to anywhere/servers), you can catch/inspect all requests out of the browser for double-checking.

Note: pStore is pointing to Incognito testnet and Ethereum Kovan testnet so you can give it a try with coins you have on these networks. I don’t want to point pStore to mainnet at this point when it would be very risky for user’s money since it’s still under active development.

And now that’s time to start our journey with pStore…

ACCOUNTS

Navigate to pStore’s home page, if this is the first time you visit pStore or Incognito and Ethereum accounts have not existed on your browser yet then you would need to create or import them first.


Create or import Ethereum account


Create or import Incognito account

Once you have accounts set, your addresses and token balances have also loaded. These balances are real numbers that would be loaded from the networks of the respective accounts (a.k.a Ethereum and Incognito networks)


Address along with public token balances from Ethereum


Address along with private token balances from Incognito

From now on, there would be three more tabs displaying on App bar: SHIELD, UNSHIELD, and PAPPS

PRIVATE TRANSFER

After accounts created/imported, you can transfer PRV (Incognito’s native coin) or pCoin (pETH/pERC20) privately.

Click on pCoin you want to send, a popup would be shown up in which you can fill recipient’s Incognito address as well as sending amount. And then press Send button to transfer.


Click on pCoin item to select token for transfer


Transfer pCoin privately

SHIELD

Click on Shield tab item, now you’re ready to turn your public coins to private coins. There are two steps for the process: Deposit ETH/ERC20 to Incognito contract and Get & Submit proof to Incognito chain.

At step 1, you just need to select a token you want to shield along with its amount and then press Deposit button, pStore would create a transaction that is signed by the created/imported Ethereum private key in the previous section. The responsibility of the transaction is for sending the selected coin to Incognito contract (0x31F7293dEebCEd75d035De0843498D87B90a3eee - the Incognito contract address on Kovan testnet)


Deposit coins to Incognito contract

After deposit, you would be navigating to step 2, and then deposit transaction detail is displayed. If you see the status is Succeeded then the deposit seems to be perfect.


Get & Submit deposit proof to Incognito chain

The left thing is waiting for pStore’s workers to help you get and submit deposit proof to Incognito chain for pCoin request. The process’s statuses would be updated continually and you can press the Refresh button to see what’s going on with your request. The process would take some time to finish and once it’s done, the Check Balances would be shown up. You can press this button to check your pCoin balances.


Shield succeeded


Check pCoin balances after shielding

UNSHIELD

Similar to Shield, there would be two steps for Unshield process: Burn pCoin to Unshield and Get & Submit proof.

At step 1, fill out the form for Ethereum address you want to receive your coin, pCoin you want to unshield along with its amount then press Burn To Unshield button, pStore would create a transaction that is signed by the created/imported Incognito private key in the previous section. The responsibility of the transaction is for sending pCoin to Incognito chain’s burning address.


Burn pCoin to unshield

After burn, you would be navigating to step 2, and then burn transaction detail is displayed. If you see the status is Submitted then the burn seems to be okay.


Get burn-proof

Press Get Proof button to get the burn-proof, it’s a preparation step for signing and sending a transaction to Incognito contract that requests unlock public coin to the pre-selected Ethereum address in the previous step (0x3ea83820b473368df77ae02e65a8607b901e96cd).

Once all actions get completed, a similar success screen with a Check Balance button would be displayed, press this button to check public coin balance.


Check public coin balances after unshielding

PAPPS

I’m building a platform where any developer can utilize the foundation (base components and APIs) to build their own pApps upon it and list or host these pApps on our platform. I personally think that this would be the right way to be able to make Incognito stronger and run faster instead of counting only on the core team. That being said the more developers build privacy applications, the more robust Incognito would be but they would need an easy and convenient tool to do it.

The first pApp ever hosting on pStore will be pMultisig that I’ll be building next month. Stay tuned!

5 Likes

Hi @Josh_Hamon, please take a look at my comment above or the link, it’s a more detailed document of my product’s situation so far - pstore.app. Let me know if you have any further questions, thanks.

Hey @incsmile, is the tutorial on how to use your product ready yet?

1 Like

hey @Ducky, i just hosted my product at https://pstore.app. It’s ready for you guys to give it a try now (again it’s still pointing to testnet environment for now). Also, i’m going to create a couple of accounts and send them to you via DM so that you and the core team can play with it quickly.

2 Likes

Hi @Ducky, I’ve just DM_ed you for 2 pairs of accounts that have some money so that you can start trying my product in real quick. Just let me know in case you need anything else, thanks.

Also for those who want to play with my product and need accounts with some tokens on Ethereum Kovan and Incognito, feel free to ping me. I’d love to give you a hand :blush:

2 Likes

I received your DM :ok_hand:

2 Likes

Any update on the progress @incsmile?

hi @Ducky, hope things go well :slight_smile:
A quick update for my platform:

  • The complete building blocks of the platform will be released by the end of the week. People can “deploy” and “undeploy” their pTokens on Incognito contract then.
  • I’m also starting working on Multisig wallet. This one will be the first papp integrating with pStore platform and people with “deployed” pToken will be able to start creating and using their own multisig wallet. The tentative release of this will be around end of the month.

I’m gonna update the change log right on the thread once there is a new release. Thanks.

2 Likes

Hey @incsmile,
what do you think about integrating the ethereum part directly with metamask ? users do not need to transfer their ETH, but instantly log in with it.

1 Like

@andrey, that was a great idea, how stupid i am when didn’t think of it in the beginning. I just added it to my TODO list that should be implemented next month.
I actually have a plan to work on UI/UX improvement next month when the basic functionality get released and would really appreciate any kinds of feedback like yours. Thanks a lot!

3 Likes

If you want someone to bounce ui stuff off of, let me know. I’ll help.

2 Likes

Thanks a lot @JoyRaptor, im racing with time to finish the functionality this month first and will focus on UI/UX as well as exposing apis later, maybe next month.
Any feedback on those is very welcome. Im personally really happy if the product/platform has collaboration with great builders around the world.
Btw, your design at Sexy New UI/UX Concept Design Idea! was really impressive to me, cant wait to learn from you… :love_you_gesture:

1 Like

Hey friends, hope you guys are doing well :smiley:
I just released a new version of the platform and wanted to get you guys updated.

Changes:

  • Deploy - deploys pToken to Incognito smart contract, this is a preparation step for users to be able to spend these tokens on pApps hosting on Ethereum network.
  • Undeploy - turns deployed tokens on Incognito smart contract back to pToken on Incognito chain.
  • User experience improvement on processes - it’s updating statuses automatically in near real-time and user doesn’t need to press “Refresh” button manually anymore.
  • UI re-skin - yes, it’s not perfect yet but a little bit better I guess.

A platform usage tutorial (maybe a video) will be published in a few days when I finish the first pApp (a.k.a pMultisig). Hopefully, I can get it done by Sunday night :face_with_monocle:

For those who would like to experience the platform, feel free to ping me via the forum or telegram (@incsmile), I’ll get you a couple of accounts having some tokens so that you can play around with at https://pstore.app/

Any feedback would be appreciated :pray:

4 Likes

Hi guys, I just created a post about User Manual for my platform- https://pstore.app which illustrates step by step how to use it along the way with the first pApp (pMultisig at https://psafe.app). You can check it out at [pStore.App] User Manual.
If you have any questions or concerns, feel free to leave comments on that post. Would love talking to you then.

1 Like

I just want to know how to get testnet prv token.

1 Like

hey @lld, thanks for your interest, you can use the following account that’s having 100 prv.

  • address: 12RyZZH47mDDxa7Mv5MqfsSL9Z5u1z4x8884pzLLcCD6PxxBoJvVB7NpnnFBrcLdZG3eJ2aTGhBLGiGqtpzX9v9ioDNmxUTsBFcyhuz
  • private key: 112t8rnXLhCsTLGAen31DQfjss4mQbVTzAfaW7uoAULnfehwogfEDhHVcN4Uotk5aVSXyUYLbXfCkQJPPwvqfybhEdRsqEHsCHbviAcU5WeE

In case you had an existing address already, just give me your Incognito address, i’ll send you some prv then.

12S2gBeTTNRFMG4N7sbDu97tdKm8CZikwMVdKBq6qq2HxZqhJp3jea1y9tXb12zAvbpjZgQampkSRQsSv5jz6ac3uWA9n7NgWu4aHaY

1 Like