Shield transactions programmatically

Hello.

I would like to have an opportunity to shield transactions programmatically. I need to build my own system and plug Incognito into it. I have tried to shield transactions via NodeJS SDK (https://github.com/incognitochain/sdk-v2#nodejs) but found out that the SDK does not support shielding.

I need to plug an already implemented thing into my system and use it (of course it has to be built on Incognito and support shielding). The only one that I have found yet is https://github.com/incognitochain/incognito-wallet. Is it possible to plug this wallet into my own system? Or are there any other solutions which you could recommend? Maybe GO SDK will be more helpful in my case? Thanks.

UPDATE: I have just found this one - https://github.com/incognitochain/papp-sdk but haven’t investigated what it can do yet. Can this SDK be useful for me?

2 Likes

“Soon” there will be an option to mint ethereum assets by interacting directly with the smart contract. If that’s what you’re interested in, that will be coming, and it will be very easy.

2 Likes

The features present in that papp-sdk are demonstrated in the hello-world branch. Not sure shielding is one of them. Install and check, would be my advice.

2 Likes

Thanks. Will this feature be provided by the SDK?

1 Like

I think the team is months away from release, let alone the SDK—but I would hope it gets added once that feature gets implemented. It seems in general that integrations are going to be easier and result in better products for end users towards the last half of the year. :grin:

1 Like

hey @a.furmenkov, may i ask what exact requirement do you want to build for your system/app? For example, if you wanted to implement a shielding flow for Incognito ethereum bridge programmatically yourself then I might provide you some code snippets as a start point.

2 Likes

Hey. I just want to build a shielding app which will use Incognito under the hood. Now I am investigating how to perform a shielding. Can you please advise me how to do it? Is GO SDK suitable for that?

1 Like

Maybe be a bit more specific @a.furmenkov or maybe PM duc. What you’re asking for is not available readily right now but it sounds like it’s developed enough that duc might help you if he likes what you’re building :wink:

2 Likes

The main use case is:
A user wants to send their BTC from their wallet to the destination user and to
ensure no one can track that the source user sent funds.

Imagine you and me have a BTC address. I want to send you BTC so that no one could track it. So, my app will work the following way:

  1. Create two temporary Incognito wallets (for sender and recipient).
  2. Convert BTC of the sender to pBTC.
  3. Send pBTC inside the Incognito network from sender to recipient wallet.
  4. After receiving, convert received pBTC to BTC.

Currently, I am investigating how to convert BTC to pBTC programmatically. I have found out that JS SDKs are not suitable for that. @duc is GO SDK suitable for that? Could you please advise?

Thank you guys.

2 Likes

This won’t work as you expect. Incognito is not a mixer but Incognito can help you to implement your own mixer.

2 Likes

Could you please explain why it will not work this way? As I understand, Incognito gives an opportunity to convert BTC to pBTC (and vice versa) and send pBTC inside the Incognito network.

1 Like

Inside Incognito Chain, there is no problem. If you unshield some crypto, you are pseudo-anonym anymore. Please take a look at mixer, chain analysis etc. subjects.

1 Like

It is fine for me.

For example, when I am sending you, I need to build the following path of the transaction:

  1. My BTC address -> Temporary Incognito wallet address.
  2. Temporary Incognito wallet address -> your BTC address.

The main goal is to hide the fact that I have sent money to you.

Is it achievable via Incognito or it is better to use mixer?

1 Like

The problem is, you are sending the same amounts in and out the chain. If people are looking for it, they can easily identify those transactions and connect the dots.

1 Like

We should just code it to where it looks like a transaction goes to one place then really send it to our wallet and send the fake address as a confirmation. In other words on call it’ll just give send and receive address that are fake and will confirm at the correct address but posing as the fake one. Would be funny just to screw the entire Ethereun block chain up :rofl::ok_hand:t3:

GET and POST probably wouldn’t be that difficult to do if say your wallet you designed has a secondary key stored or just run an extra line of code that switches the correct variable in right before sending :rofl::+1:t4:

Those asshats ETH all their fees knowing good and well they were glad to weep the benefits better be glad I don’t have the time to invest in doing such. But damn that would be FUNNY af :grin:

1 Like