First, issue your tokens. Create an offer on the Stellar decentralized exchange, so users will be able to buy the token directly from you for Stellar lumens.
You can also integrate some third party crypto payments processor to be able to receive payments in BTC, ETH, LTC, XRP, XMR etc. In this case you will be responsible for creating Stellar accounts for your users.
Once your own blockchain is ready, you can create a simple app that tracks payments on some Stellar account (let's call it "exchnager") and sends the corresponding number of tokens to the sender address in your network.
GA4B...23A9 sends you 50
TEMP_TOKENs to address
GD54...E5BA on Stellar Network. Your app receives the notification and transfers 50 tokens to the address
GA4B...23A9 on your new blockchain.
I want to prove that once a Stellar token is sent to an account X, it will never be spent by X anymore.
Oh, that's easy. When you lock the issuing account after all required tokens are issued, it becomes "frozen", and cannot mint new tokens or make any other transactions. All tokens sent to the issuing account are automatically destroyed. So when user sends 50
TEMP_TOKEN from account Y to your issuing account X, noone will be able to use those tokens, even if he has access to account X secret key.
I want to somehow allow a person to prove that they own the account Y that sent the tokens to X, so we can issue a corresponding amount of tokens to them on our blockchain?
Here is the detailed walk-through:
- User visit's a page where he can see one single input field and "Exchange old tokens" button.
- He copy-pastes a secret key of his wallet into this field and presses the button.
- On the client side you create a Stellar transaction with 2 operations:
- Transfer all
TEMP_TOKEN owned by user's account to the issuing account X
- Remove the trustline
- Then you send the transaction signed with user secret key and user's account address (can be easily derived from account secret) to the server. Secret key is never send on over the network.
- On the server side you verify transaction signature and submit the transaction to Stellar Network.
- If the transaction was applied successfully, you are creating a new account on your blockchain and transfer the corresponding amount of tokens to this address. New account public and secret keys are returned back to user's browser.
- User copy-pastes and saves new credentials.
There are also some slightly more complex scenarios that won't require user to share his secret key.