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. You can also use other SDKs (e.g., Rust or community Go SDK) based on your tech stack.
Example: Bring Assembly Online
This script borrows OwnerCap from a character, calls the assembly online function, then returns the cap:
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:
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 without submitting any transaction. Use it when you need to read state programmatically — for example, fetching an assembly's current config or checking ownership before building a transaction.
GraphQL
Use Sui's GraphQL RPC to query objects by type, owner, or filters.
Example: Get objects by type
Try it: GraphQL Testnet IDE. Pass variables in the IDE's Variables panel, e.g.:
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. Store and subscribe to events off-chain for dashboards, analytics, or game services.