Build on ARCADE
Build with us
ARCADE is open source and grows by what people add to it. Fix something in the main code, publish a game every arcade can open, or run your own site on your own node, the way this one runs.
Contribute to the main code
The code lives at github.com/martinseeger2002/dogecoin-arcade. Changes come in as pull requests: you work on your own copy, then ask for your change to be taken.
- Fork the repository. On GitHub, press Fork to make your own copy under your account.
- Get it running on your computer. You need git and Python 3.10 or newer.
Tests that need a coin node start a throwaway Pepecoin regtest node as your own user, and skip when there isn't one. Nothing touches real coins.git clone https://github.com/YOUR-NAME/dogecoin-arcade.git cd dogecoin-arcade git remote add upstream https://github.com/martinseeger2002/dogecoin-arcade.git python3 -m venv .venv .venv/bin/pip install -e ".[dev,web]" .venv/bin/python -m pytest - Read the rules first.
AGENTS.mdandCOLLAB-NOTES.mdsay how the team works. If your change touches anything that signs, spends or locks coins, readarcade/web/docs/exchange-safety.mdtoo: it lists the rules that keep coins from being taken, and the test behind each one. - One topic per branch, from the newest main.
git fetch upstream git checkout -b fix-short-name upstream/main - Make the change, with a test. A test that fails without your fix and passes with it is the strongest case you can make. Run the tests you touched, and the quick set:
tests/test_brand.py tests/test_web.py tests/test_public.py tests/test_docs.py. - Keep commits self-contained. If main moves on, rebase onto it (
git rebase upstream/main) rather than merging it in. - Push and open the pull request.
On GitHub, open a pull request intogit push -u origin fix-short-namemain. Say what you changed, why, and which tests you ran. - How it lands. GitHub's main is a public copy of the maintainer's repository, so an accepted change is applied there as a patch and comes back through main with a new commit id. It then ships in the next signed release, and every arcade's updater installs it.
Good first changes: a clearer message on a page, a missing test, a guide that has fallen behind the code, or support for a coin your community uses (see Adding a chain).
Publish an app or game
Every arcade's Apps tab lists every app anyone has inscribed, on every chain it reads. An app is any HTML page with a card: a game, a video call, a voice room, a shop, a tool. There's nothing to register and nobody to ask. It goes on the tab by saying so in its own JSON.
Making an app and listing it
The card, the JSON that lists it, and how players open, star, comment on and tip it.
GuideMultiplayer and trades
Rooms where players on any arcade meet, and trades of pieces, tokens or coins in one transaction.
GuideGame state
Keep your game's own state for its pieces on chain.
GuidePrize pools and referees
Pools players win from, and the judges that decide.
ReferenceThe inscription API
What an inscribed page can ask the arcade for.
How it's kept safeThe sandbox
Why an app must ask before it touches a wallet, camera, microphone or contacts.
The full manual is on every arcade at /docs.
Your own site on your own node
An arcade can be the back end for any website. ashvale.party is a game site whose sign-in, saves and players all come from an arcade, and this site reads its live numbers from one. You can do the same with your own domain.
- Run an arcade. Run an arcade covers the computer and the one install command. The arcade answers on
127.0.0.1:8420, on the machine itself only. - Point your domain at the machine. Behind Cloudflare, use an A record with the proxy on, SSL set to Full (strict), and a Cloudflare origin certificate on your server.
- Put a web server in front. Serve your own pages, and pass everything else to the arcade. With Caddy:
The web server addsyour-site.example { tls /etc/ssl/your-site.pem /etc/ssl/your-site.key @mine path / /index.html /style.css /img/* handle @mine { root * /var/www/your-site file_server } handle { reverse_proxy 127.0.0.1:8420 } }X-Forwarded-For, so the arcade treats every visitor as coming from outside, with its admin pages closed to them. - Add your domain to the arcade's public names. The arcade lets people sign in only on its own names, so add yours to its
public_hostssetting (see Remote access). Your visitors then sign in on your domain, with the same account they use on every arcade. - Use what the arcade knows. Your pages can link into the arcade's own pages (the feed, profiles, apps), and a small job on the same machine can read its numbers, the way this site's network stats are made.
Other ways to help
Run an arcade
Every arcade makes the network harder to switch off, and sharing a chain lets smaller arcades offer it too.
Review pull requests
Read someone's change, try it on your own arcade and say what you found.
Thank the developers
The people who build ARCADE in the open can be tipped from any arcade.