Token Freeze

We will be doing a Token Sale on Waves shortly and want to ensure no Token can be traded (other than the initial trade from us to the purchaser) until the Token Sale finishes.

I can’t find any information on how you can do that, only a couple of threads that it might not be possible yet.

Can someone from Waves please let me know if it’s possible and if so, how do you do it.



I don’t know if it is already possible through smart contract.

Two alternative options are:

  1. You could ask your buyers to pay you immediately and promise them to send their tokens after a certain date.

  2. You could consider a service like this ICO service on Angry Panda Shop

In both cases, you have to convince investors to trust you or a 3rd part service.

I am currently developing an intelligent contract for “crownfunding” purposes. If you want to review the features offered by Waves, you can visit this link: manually.html

There, this subject is explained a little better. In any case, you must first familiarize yourself with the console, because if you can not understand it, it will be difficult in the face of subsequent activities. It has been difficult for me, but everything can be done. You can ask for help in the post: “DevTools: IDE + REPL” in developers. Greetings from Chile!

Hi Emerson,

Thanks for the reply.

Am I correct in thinking that what you’ve done is create a contract where it requires 2 parties to agree it’s been executed, before the 3rd party can trade??

Like this:
3 Parties:

  1. Token Sale
  2. Token Sale Go Live
  3. Purchaser

Token Sale issues Tokens with Smart Contract to Purchaser that requires 2 out of 3 parties to execute
Purchaser can’t do anything with the Tokens until Token Sale Go Live executes their part of the contract

So is. I am trying the same as you. However, I think I still lack more experience to continue understanding the console. Keep in touch with me when you need it !, I will be attentive to any update that I get and send it to you.

You can msg me for private channel

Hello …I’m trying to do the same thing … but i’m not really sure how can i do this. there’s no examples that guide us about … do you wrote some code that help us to understand this idea?

Hi, currently it’s impossible to freeze your tokens, but this ability will be open in a few months with Smart Assets feature. Details are here: [Proposal] Smart Assets

ok. thanks.

I have seen that it is possible to do something similar to freezing the token using multising functionality. if I understood … I can sell the token during ICO for wallets that would have a script that would prevent transfers. these transfers could only be made if our company signs them. and this will occur after ICO.

Do you think this is reasonable?

There’s not really any point writing individual scripts to unfreeze them, you can just issue the tokens at the time you want to issue them, you can issue them in bulk, just click on the “Send” tab of your token and there’s an option on the second tab.

It will be a hug advantage to be able to issue tokens with a Freeze, as purchasers can just buy them direct from the DEX, so no manual handling.

1 Like

I have taken the time to study the RIDE language and it has been difficult to express the language in the console. I can understand everything that is said in the wavesplatform post, but there is still weakness in personally forming the scripts. If someone managed to create a system in the IDE console for the collection ICO would be a tremendous contribution in this thread.

I think the same …

I need to freeze and not unfreeze the token … i guess not understood you. excuse, could you be more clear please?!

Freeze - Now
UnFreeze - 3 months time

Can’t be done in bulk now, you have to do one account at a time, so there is no point in doing it for an ICO/Token Sale.

You can issue tokens in bulk, so you can issue all tokens at the same time, you import a csv file, something like wavesaddress,numbertokens

Because you can issue all tokens at once, it’s basically the same thing as unfreezing, only about a million times less work.

The current system of having to write scripts to do things is woeful. If WAVES want’s people to use it, they have to make a simple to use GUI.

i will send our responses to @Siem.
i suggest that in this forum we can solved this problem together. Also Waves platform is from Russia, then the collaboration is fundamental to follow this purpose, purpose that can change a community through our knowledge. We not programmers or software enginner but im social entrepreneur with a passion for start this higgest travel

guildmate! If you can send a screenshot for each step to follow, I and many would be very grateful for your contribution. Meanwhile I will continue learning more, I will not give up. I presume that each of you has a purpose and wants to make it known. It is not the option to withdraw from one platform and go to another. The solution is to promote the activity of informing oneself and promoting knowledge. I am happy when I share my ideas and build beneficial contributions to the community. It’s something similar to blockchain, when technology seeks for everyone to win. :slight_smile:
Greetings my friends, from Chile!

@alexkof have already answered the question. There is no way to freeze your token right now. As soon as you token goes to another account, there is nothing to restrict it.
What you can do now is freeze funds you’ve collected and force yourself to burn unsold tokens to gain access to funds after certain amount of time:

  1. Issue the token. Maybe make it reissuable so everyone knows there will be certain amount of tokens max.
  2. Set account script with two rules.
    a) Only allow exchange transaction, and, after certain amount of time(e.x. 3 months), allow burn transaction.
    b) If no tokens left on account, there is no more restrictions.
  3. Sell your tokens on DEX.

That way you freeze funds, but nothing restricts reselling your tokens.

Is it possible if you can teach the scripts step by step to achieve this purpose? (point number two that noted)

for all it would be a great opportunity to promote interesting projects. Always appreciating your good disposition

Here is example account script that does p2.

# define target blockchain height. After this target we allow burn transaction
let targetHeight = 10000

# if no more toneks left allow any transactions(just validate signature)
if (assetBalance(addressFromPublicKey(tx.senderPublicKey), base58'yourAsset') == 0) then {
   sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
} else {
    if (height < targetHeight) then {
        # Only allow exchange transations
        match (tx) {
            case t:ExchangeTransaction => {
                sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey)
            case _ => false
    } else {
        # height is greater than target. We also allow burn transactions
        match (tx) {
            case t:ExchangeTransaction => {
                sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey)
            case t:BurnTransaction => {
                sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey)
            case _ => false