Interfacing with the World
Overview
You interact with the EVE Frontier world in two ways:
- Write path — Submit transactions to Move public functions to mutate on-chain state (create assemblies, bring them online, deposit items, etc.).
- Read path — Query on-chain state and events via GraphQL, gRPC, or custom indexers.
Writing to the World Contracts
Write operations use the Sui TypeScript SDK to build and submit transactions. The world-contracts ts-scripts provide examples on how to interact with the EVE Frontier world.
Example: Bring Assembly Online
This script borrows OwnerCap from a character, calls the assembly online function, then returns the cap:
See ts-scripts/assembly/online.ts for the full script.
Example: Sponsored Transactions
Many world operations require server-side validation (e.g., proximity checks). These use sponsored transactions — the player signs the intent, and an authorized sponsor (e.g., EVE Frontier) pays gas and submits:
Reading from the World Contracts
SuiClient is the main entry point for read operations in the TypeScript SDK. It connects to a Sui full node and exposes methods for querying objects, events, and transactions.
GraphQL
Use Sui’s GraphQL RPC to query objects by type, owner, or filters.
Try it: GraphQL Testnet IDE.
gRPC
For higher throughput and streaming (e.g., checkpoints), use gRPC — Sui’s preferred read path. Requires a gRPC-enabled Sui full node.
Events
State changes emit events on transactions. Use suix_queryEvents to filter by module, type, or sender:
World events include JumpEvent (gate traversal), inventory updates, and deployment changes.
References
- world-contracts ts-scripts — TypeScript examples for world interactions
- Sui GraphQL
- Sui gRPC
- Sui Events
- EVE Frontier World Explainer
Tip
Use the menu on the left hand side to find the article you are looking for. You can also use search at the top to search for specific terms.