{{# page.prerequisites }}
<div class="prerequisites">
  {{# helpers.info }}

  __Prerequisites__:<br>
  All tutorials require Vanadium <a href="/installation/">installation</a>, and must run in a <a href="/tutorials/faq.html#why-bash-">bash shell</a>.
  {{# scenario }}
  <br>Further, please <a href="/sh/scenario-{{ scenario }}-setup.sh" download="scenario-{{ scenario }}-setup.sh"> download this script</a> then <a href="/tutorials/faq.html#why-source-">source</a> it:
  ```
  source ~/Downloads/scenario-{{ scenario }}-setup.sh
  ```

  This command wipes tutorial files and defines shell environment variables. If you start a new terminal, and just want to re-establish the environment, see instructions <a href="/tutorials/setup.html">here</a>.
  {{/ scenario }}

  {{# also }}Also:<ul>
    {{# jsSpecial }}<li>
      Please see the <a href="/tutorials/basics.html">Client/Server Basics tutorial</a> and the <a href="/tutorials/javascript/hellopeer.html">Hello Peer tutorial</a> for background concepts.
    </li>{{/ jsSpecial }}{{# chrome }}<li>
      Please install the <a href="https://chrome.google.com/webstore/detail/vanadium-extension/jcaelnibllfoobpedofhlaobfcoknpap">Vanadium Chrome extension from the Chrome web store</a>.
    </li>{{/ chrome }}{{# account }}<li>
      This tutorial requires a <a href="https://accounts.google.com">Google account</a>.
    </li>{{/ account }}
  </ul>{{/ also }}

  {{# completer }}
  If you would like to generate files from this tutorial without the copy/paste steps, download and source <a href="/sh/tut-completer-{{ completer }}.sh" download="tut-completer-{{ completer }}.sh">this script</a>. Files will be created in the `$V_TUT` <a href="/tutorials/setup.html">directory</a>.
  {{/ completer }}

  {{/ helpers.info }}
</div>
{{/ page.prerequisites }}
