DevTools: IDE + REPL


encourage mate! … if you continue, you get it. Today at night (chile time) I will start to try it like you, since I also want to show my idea to the world, you have to persis


I think I will succeed, the main thing is to know how to do it correctly, at the current moment the token is created, but you need to learn the console, there’s a lot to learn and do - it’s not too late to learn, the main thing is to manul because at the moment the finger in the sky.


Emir you’re right. How do I download the console ?. Please tell me a little more. unfortunately I have had many complications of how to understand … Greetings friend, I’m online


  2. Screenshot


Ok, so i should put my private seed (personal seed by waveswallet)??


In case you want to interact with mainnet, yes. But i strongly recommend you to use testnet first for any type of action. You can use any seed, get an address via address() function, and then get testnet coins using faucet at


There are two things to remember when you work with the console:

  1. The console is javascript console. Just like in chrome dev tools. You can declare your own variables, functions etc. or you can run any arbitrary js code. In your case you have declared constant ‘coin’, and constants cannot be changed. You can refresh the page to make the console blank.
  2. There are predefined functions in this console such as issue(), reissue(), transfer() etc. These are functions from the waves-transactions library. The only difference is that you don’t need to pass seed as first parameter. There are also functions-helpers like address(), publicKey() etc. Full description of the REPL(console) project can be found here


Thank you very much, I’m starting with TESTNET.
My doubts are the following:
Once included and verified in the TESTNET the random seed key, according to the explanatory video ( and following step by step we find the “adress”, there we must place the address of our wallet? and then the “public key” and "private are the ones in your wallet Amigo @siem I would like to know what is the purpose of delivering the public key and the private key In this case, we need to make an intelligent contract for an ICO, It is difficult to understand the programming of the video, it is not difficult to follow the tutorial step by step, it is difficult to understand what each function is for, otherwise we would be creating a contract that is neither intelligible to us and in the future not We could have good faith for us and less for those who know the project, please ask for help to achieve success.
PD: We regret our poor English


The video is outdated. We plan to update it soon, but for now it is better for you to use console docs at github. Sorry, I’m not sure I understand your question. The only thing that identifies account is seed phrase. Key pair and address are derived from it.
If you have some specific question feel free to ask, but the more specific you are the higher my chance to help you.


Thanks for your comment.
I will be as specific as possible: We want to make an intelligent contract for a ICO project. I am using the testnet before any real test.

  1. I put env.seed random
  2. I put the address
  3. A random address was delivered
  4. I opened a new tab and put
  5. then I went to Misc
  6. then TESTNET explorer
  7. then faucet
  8. I put the address they gave me
  9. I accepted the captcha and done.

  1. then I put “keypair” in the console, I pressed “enter” and I got two keys: a public and a private one that in this case would be the private and public key of the address obtained randomly.

My specific question is: what functions should I place so that my intelligent contract destined to an ICO can be carried out successfully?

In other words, could you implement a special “type of contract” for ICO developers?
If at this moment it becomes tedious, please could you indicate which are the functions that should be placed for:

  1. Activate token for validation in waves platform
  2. Have an immutable wallet, that is, that can not withdraw funds or me, or anyone else to meet the collection
  3. Is there a function that can connect a personal mobile application directly with the intelligent contract?
    I will be attentive and I will continue studying the console, since it has been difficult but not impossible to understand it. Regards from Chile!


this comments was for you


First of all: do not change env.SEED variable. Use settings instead. In future releases it will be impossible to use change “env” variable directly.

Second thing: functions in console have nothing in common with smart contracts. They are just utility functions to get address, keypairs, construct and sign transactions. You don’t even need console to work with waves blockchain. It is just chrome dev tools javascript console! You don’t need to study it. This console is made for javascript programmers.

Activate token for validation:
You don’t need smart contract to create a token. You can create it via wallet or with issue transaction by hand.

Have an immutable wallet:
You need to write contract using RIDE language. Take a look at docs

Is there a function that can connect a personal…
As I said. Console functions have nothing to do with smart contracts. You need to write your own application to do it.


thank you very much @siem. I always believed it was for the creation of an intelligent contract.
Today we have our token, its quantity and its decimals. This was created in the same wave wallet.
The console would serve to obtain an immutable wallet. That’s the idea. The idea is that nobody can withdraw funds while collecting money in an ICO. Once finished, in case there are some ‘token’, burn them. Can all this be achieved through the console?
If I continue to persist, it is due that for the first time I face it, we have a social project and we are very committed to learn all about waves, in addition to carrying it out. best regards

Also, I have another question that disturbs me:
in the waves wallet, once the token is created, my token points to “false”, how to change it to “true”? How to validate my assets with you? What do I need in this case?


The setScript tx broadcasting doesn’t work. What problem?

let prms = {
  fee: 100000,
  chainId: 'T'
let signedScriptTx = setScript(prms, env.SEED)
await broadcast(signedScriptTx)

  Request failed with status code 400


There is a problem with contract itself.
We will fix error reporting soon, but for now, it is better to invoke async functions without ‘await’. That way you can expand returned promise to see actual error.


But what does mean “ScriptParseError(VarNames: duplicate variable names are temporarily denied: ‘tx’)”?


Can you please pm me source code of the contract?


IDE and REPL has been updated. Here is what changed:


  1. Multisignature contract generator with deploy function available at
  2. Moved to material-ui v3


  1. Now has help() function with documetation for all available commands
  2. Added link to REPL project documentation
  3. Added deploy() function. Shortcut to broadcast(setScript({script:compile(contract)}))
  4. Improved error reporting. broadcast() and deploy() now show error message received from node
  5. Removed monaco editor from RELP. We plan to add simple autocomplete instead soon. For now, use help() and the docs


IDE and REPL has been updated. Here is what changed:


  1. IDE now have accounts tab. You can add many accounts, new accounts have random bip39 seed. Select active one, which will be used in REPL by default. You can label accounts.
  2. Accounts are saved to localStorage. On first visit IDE now creates random account.
  3. Fixed some issues with autocomplete: transactionHeightById removed, throw and toBytes fixed


  1. Account seed phrases available using “env.accounts” variable


IDE and REPL has been updated. Here is what changed:


  1. Transfer transaction generator available via route.
  2. GUI for signing arbitrary transactions available via route. Tx can also be published.


  1. Now has terminal-like autocompletion via ‘tab’ key.