Sui Move smart contracts for EVE Frontier.
This repository contains code intended for future use. While its not currently active in game or production ready, it is being shared early for visibility, collaboration, review and reference.
The project is actively under development, and changes should be expected as work progresses.
For more context around this feel free to check out the press release.
If you are looking for the current contracts used in game they can be found here: projectawakening/world-chain-contracts
- Docker (only for containerized deployment)
- OR Sui CLI + Node.js (for local development)
-
Create environment file and configure:
cp env.example .env
-
Get your private key:
# If you have an existing Sui wallet: sui keytool export --address YOUR_ADDRESS # Or generate a new one: sui keytool generate ed25519 # Copy the private key (without 0x prefix) to .env
docker build -t world-contracts:latest --target release-stage -f docker/Dockerfile .docker run --rm \
-v "$(pwd)/.env:/app/.env:ro" \
-v "$(pwd)/deployments:/app/deployments" \
world-contracts:latestOn failure, check deployments/<env>/deploy.log for details.
For a pre-baked Sui localnet Docker image (deployed contracts, Postgres-backed indexer, and object IDs for downstream integration tests), see docker/README.md. It covers how to run the stack with docker/docker-compose-snapshot-image.yml and where the image is published on GitHub Container Registry.
npm installnpm run buildnpm run test# Uses SUI_NETWORK from .env (default: localnet)
pnpm deploy-worldWhenever changes are pushed to main, the workflow at
.github/workflows/docs-update.yml
automatically creates a draft pull request in
evefrontier/builder-documentation
with a @copilot comment that instructs Copilot to update the relevant docs.
- The workflow triggers on
pushtomain. - It resolves the merged PR associated with the push’s merge commit via
GET /repos/{owner}/{repo}/commits/{sha}/pulls(skipping if none is found). - It fetches the list of changed files from the merged PR via the GitHub API.
- It consults
.github/docs-mapping.jsonto map changed source paths to documentation files inbuilder-documentation.- If no mapping matches, the fallback targets
smart-contracts/eve-frontier-world-explainer.md.
- If no mapping matches, the fallback targets
- A new branch (
docs/world-contracts-pr-<number>) is created inevefrontier/builder-documentationwith a scaffold placeholder commit. - A draft PR is opened in
builder-documentationwhose body contains:- A link to the merged
world-contractsPR - A summary of changed files
- Explicit
@copilotinstructions to update the identified docs
- A link to the merged
- A follow-up PR comment is posted to ensure
@copilotis notified.
Add the following secret to the evefrontier/world-contracts repository
(Settings → Secrets and variables → Actions):
| Secret name | Description |
|---|---|
DOCS_REPO_PAT |
A GitHub Personal Access Token (classic) or a fine-grained PAT with the following permissions on evefrontier/builder-documentation: Contents: Read and write, Pull requests: Read and write. |
Fine-grained PAT scopes (recommended): resource owner =
evefrontier, repository =builder-documentation, permissions =Contents (read/write)+Pull requests (read/write).Classic PAT scopes:
repo(full repository access).
Edit .github/docs-mapping.json to add or adjust
mappings. Each entry has:
A fallback entry covers changes that don't match any specific path.
The workflow is scoped to evefrontier/world-contracts only and writes to a
different repository (evefrontier/builder-documentation). Changes in
builder-documentation do not trigger this workflow, so there is no
risk of an automation loop.
{ "paths": ["contracts/world/sources/assemblies/storage_unit"], // path prefixes to match "docs": ["smart-assemblies/storage-unit/README.md"], // docs files to update "section": "Smart Assemblies - Storage Unit" // human-readable label }