Skip to main content

WAX Testnet Quickstart

In this guide, you'll learn how to create Testnet accounts and deploy your smart contracts to the WAX Testnet.

Tip: Every smart contract requires a blockchain account. It's recommended that you name your accounts based on your smart contract's functionality (e.g., mywaxnftgame). Account names must be 12 characters and only contain letters [a-z] and numbers [1-5].

Create and Fund Testnet Accounts

  1. Create a Testnet Account. Save your private and public keys in a safe place.
  2. From the Testnet homepage, get free WAX Tokens to fund your new account.

  3. To deploy your smart contracts, you'll need to create a wallet using your public and private keys. You can use the wallet features on, or use our Docker imagesto manage your wallet.

    To create a wallet from a Docker container, use the cleos wallet command:

    cleos rm -f ~/eosio-wallet/{}.wallet &&
    cleos wallet create -n {} --to-console &&
    cleos wallet import -n {} --private-key {active.privatekey} &&
    cleos wallet import -n {} --private-key {owner.privatekey}

    Store your wallet password in a safe place - you'll need it to run blockchain commands.

  4. Once you have a wallet configured with your Testnet account, you can stake NET, CPU, and RAM from or your Docker container.

    Buy RAM:

    cleos -u system buyram {} {} "3.00000000 WAX"

    Stake NET and CPU (to yourself, from the same account):

    cleos -u system delegatebw {} {} "4.00000000 WAX" "5.00000000 WAX"

Deploy Smart Contracts to the WAX Testnet

Tip: To complete these steps, make sure that your wallet is opened and unlocked. Refer to Troubleshooting below for more information.
  1. From an interactive Docker bash session, navigate to your smart contracts directory and build your smart contract.

    eosio-cpp -abigen waxnft.cpp -o waxnft.wasm 
  2. If you're calling external contract actions from your smart contract (e.g., WAX RNG or Simple Assets), make sure to elevate your account permissions:

    cleos -u set account permission {} active --add-code
  3. Deploy. From the command line, set your contract with the cleos set contract command:

    cleos -u set contract {} $(pwd) waxnft.wasm waxnft.abi   

Your smart contract is now live on the WAX Testnet!


If you receive wallet and/or authorization errors, you may need to open and unlock your wallet:

cleos wallet open -n {} &&
cleos wallet unlock -n {} --password {wallet.pwd}