Dark Forest

zkSNARK space warfare

How do I start playing Dark Forest?

Do I need to install or purchase anything to play Dark Forest v0.4?

Nope! As of Dark Forest v0.4, we use burner wallets, inspired by Austin Griffith, so you don’t need to install a wallet extension to play - your keys are generated and stored in your browser’s local storage. Additionally, we automatically send a very small amount of testnet ether to all burner wallets, so that you can start playing immediately without needing to transfer crypto.

How can I get an invite key?

Subscribe to our mailing list (see the bottom of https://zkga.me), or follow us on Twitter.

Why do I need xDAI and what can I use it for?

xDAI is used for gas fees on the xDAI L2 network. When you enter your whitelist key, we automatically send you about $0.05 of xDAI, which should cover your first several dozen moves. You can also use xDAI to buy planet HATs.

xDAI is obtained by swapping mainnet DAI on an xDAI token bridge. See here for more detailed instructions.

How does the game work?

How long should it take to find a HOME PLANET?

On average, finding a home planet should take about a minute. On slower computers it may take up to several minutes.

Which of the planets in the game screen do I own?

Planets you owned are outlined in white. If you’ve just joined the game but you don’t see any white-bordered planets, try refreshing.

Why is the background color different in different areas?

All players spawn in NEBULA, the safest regions of the universe. Darker regions contain rarer and more powerful planets, but are more vulnerable to attack by other players.

Why do some planets have a yellow number?

The yellow number represents the amount of silver held by the planet. Silver is mined on asteroid fields, and can be used to purchase planet upgrades.

How are scores calculated?

Your score is the sum of the sizes (energy capacities) of your top ten planets, plus 0.10 times the total silver you’ve mined (specifically, silver you’ve spent on upgrading planets you own, plus silver held on your planets).

I have a question about account management.

Can I play using an imported Ethereum account that I use to hold other funds?

We strongly recommend that you do not do this. Your Dark Forest account’s private keys are stored in your browser’s local storage, which is very insecure compared to wallet-management tools such as Metamask.

Can I use my own injected web3 provider (such as Metamask) to play?

At the moment, no. We removed support for Metamask in response to user feedback in a previous round.

I initialized an account and started playing on one browser/computer, but now I want to move to another one.

You’ll need to copy three things from your old browser into your new browser:

  1. The private key of your Dark Forest burner wallet. Click the lock icon on the menu bar in the top-left of the game screen for instructions on copying your private key.
  2. The coordinates of a planet you own. Your planet coordinates are secret data used to validate your account. Click on any planet you own, and hover over its Location ID.
  3. Your secret map data. Click the share icon on the menu bar in the top-left of the game screen for instructions on copying your map data.

On your new computer, select “Import account” when prompted on the loading screen, and copy in your private key. Next, enter in your planet coordinates. Finally, once you’ve entered the game screen, click the share icon in the menu bar to paste in your map data.

I’m having issues playing Dark Forest.

My account address isn’t showing up in the loading screen.

You may have cleared your browser’s cache or history. You should never do this without exporting your account data (instructions above). Dark Forest’s zero-knowledge construction works by storing private data locally in your browser; if you clear your browser’s storage, your account data is lost forever.

My move disappeared, or never went through.

This may be due to several reasons:

  • You ran out of xDAI. This occurs if you’ve used up all the complimentary xDAI that the Dark Forest admin account has “dripped” into your burner wallet. You can check by viewing your balance - click the lock icon in the menu bar, at the top-left of the game screen.
    • xDAI is the “ether” of the xDAI L2 chain that Dark Forest is currently running on. To obtain more xDAI, you’ll need to purchase DAI on the Ethereum mainnet and exchange it for xDAI on an xDAI token bridge; then, you’ll need to send it to your Dark Forest address. See here for more detailed instructions.
  • Your client dropped an event due to a small chain re-org.
    • This happens from time to time. Try refreshing the page.
  • You’re having a network/connection issue.
    • Try refreshing the page and checking your Internet connection.

I’m a developer. How can I interact with Dark Forest programmatically?

How do I interact with the terminal?

The terminal allows you to run arbitrary javascript code. Inside the terminal, you can also run functions on the df object, which is injected into global scope. The API for interacting with df can be seen here. For starters, try running df.getAccount(). We also expose a uiManager object (for programmatically interacting with the UI) and a terminal object (you can log to the terminal with terminal.println(message)).

Unless you are absolutely certain of what you’re doing, you should never run scripts that other players send you in the terminal.

How do I run a modded client?

You can build and run a client by going to our Github client repository here.

Is the game running on the Ethereum mainnet yet?

Nope! Current gas usage makes Dark Forest infeasible to run on the Eth1 mainnet. Dark Forest v0.4 is running on the xDAI STAKE network, an proof-of-authority “staging” chain for Ethereum. We’re using this as a staging environment, as Dark Forest is still in the early stages of development.

An RPC endpoint for the xDAI STAKE network is https://rpc.xdaichain.com/, and the block explorer can be found at https://blockscout.com/poa/xdai.

What is xDAI? Why are you running on xDAI?

xDAI is a proof-of-authority “staging” chain that conforms exactly to EVM specifications. It’s useful as a testing environment for dapps: gas fees are much lower, while dapps with small amounts of economic value in play can still be tested safely. For more information, see the xDAI docs.

We ran previous rounds of Dark Forest on the Ropsten test network. Due to long reorgs and less reliable block times, we’re experimenting with the xDAI network. It will be a while before Dark Forest is available to play on mainnet.

Can I interact with the Dark Forest smart contracts programmatically?

The source code for our contracts are available here. The core contract address is 0xa8688cCF5E407C1C782CF0c19b3Ab2cE477Fd739.