I used Sonic to swap tokens, and when I went to send my tokens back to my NNS Wallet, below the Principle ID line theres a line that states “Optional Sub Account ID”.
Because it said optional, I assumed that it couldn’t hurt to paste my main ICP ID there just as a precaution. After all, I pasted my correct Principe ID on the line that actually matters, so its not like the optional line would effect the transaction. Other than maybe just to further insure that my tokens would arrive at the correct wallet; right?
At least thats what I was thinking at the time. However, the tokens have never arrived and now I’m left here with a pit in my stomach, hoping that I didn’t just lose close to 100 $ICP tokens.
As you can tell I am new to the ICP network, so if anyone who has a heck of a lot more knowledge than me can help me recover my tokens I will be extremely grateful!
In any other situation I wouldn’t even have wasted my energy writing this but I SENT MY TOKENS TO THE CORRECT PRINCIPLE ID ADDRESS. I don’t even know what a Sub Account ID is but its said it was OPTIONAL LOL.
@rem.codes@chepreghy@bjoern@peterparker looks like I’m not the only one who had this issue. Who are the best people to tag on this post? Would be nice to see a utility someday that can make recovery easy.
Can someone please provide me with the correct information I need to recover my funds, or the contact information for someone who can assist me with this. The tokens I transferred are $GOLDAO so maybe you can help me? @GOLDDAO
I submitted a ticket to the Sonic Discord yesterday but they have yet to reply; though it is still the weekend.
I also emailed DFINITY support and they asked me if I sent “them” the correct wallet address, but I’m not sure who the “them” they are referring to is.
Here is a screenshot of the transaction on ICP DASHBOARD:
If you click on the Address my tokens were sent to, you will see that they were sent to my correct Principle ID. I cant post a link on here directly, but if you go on ICP Dashboard here is the full address its under so you can see for yourself.
If you look that address up on ICP DASHBOARD and click on it you will see that my Principle address is correct. but under “Subaccount” it shows my main ICP Account ID.
Im sure theres a way to retrieve my tokens, as they were sent to the correct principle address, but I cant seem to get in touch with the right support to help me with this.
I greatly appreciate any feedback that can help me with this. I also want to thank @wpb for tagging all of those people on this post.
Hey. If you have access to the key pair starting with sleoa-…2eq, then technically you also have access to the subaccounts. In fact, when you transfer to a principal, you’re transferring to the default account with the subaccount 0000…0000. But in your case, you made the transaction to a non-default subaccount. From here, it all depends on the wallet you’re using or the other key manager you rely on. So don’t worry — it’s most likely recoverable.
Hey @rem.codes is this the kind of thing that you can build into the toolkit so it is more user friendly? Hey @bjoern@chepreghy@yhabib do you think the code above would work? Is there any chance of integrating this kind of recovery feature into the NNS dApp?
Absolutely right. The NNS uses a domain-specific account, which can’t be used in a third-party dApp — and it shouldn’t be, as that would be insecure.
If we’re talking about the NNS, then we’re really talking about Internet Identity. As far as I know, those guys store the delegation in an indexed DB. And yes, if you extract and handle it properly, the script should work.
If we’re talking about a DEX, then it’s most likely a wallet/extension or again II. You need to extract the identity data and plug it into the script.
So it’s a very individual task — depends entirely on what you’re working with. But still possible and not really complicated.
Hey @Oleksii Im very new to Internet Identity so I’m a little confused.
Im using the NNS wallet and my principe ID is the sleoa-…2eq address so yes I have access to my wallet but the tokens are not accessible to me and my account balance is $0.
Can you please walk me through the steps I need to take to access my subaccounts.
Keep in mind that I accidentally sent my tokens to the Subaccount address thats actually my main ICP ID address.
Furthermore, I believe that subaccount addresses are less digits than main ICP IDs so that is also another confusing matter to consider.
@cryptosophy I checked — NNS (Internet Identity) stores the identity in CryptoKey format, and it’s not extractable. So you can’t just copy it and plug it into a script — it’s protected by the browser.
If this were a serious necessity, I’d suggest a more advanced workaround: adding a temporary device (or using a recovery phrase) to Internet Identity and requesting a delegation directly through the API. But that’s a longer route and requires technical skills.
I think the best option is to wait for a solution from the DFINITY team — that’s the most appropriate way to handle this situation.
Especially since the team is already on it — the solution shouldn’t be far off.