Launching the Beta GraphQL RPC service

Hi everyone, the upgrade to GraphQL Beta is now live for both mainnet and testnet via https://graphql-beta.mainnet.sui.io and https://graphql-beta.testnet.sui.io respectively.

Thank you to everyone who tried out the service and submitted feedback to help us improve, please keep it coming!

Release Notes

This release adds support for querying dynamic fields, CoinMetadata, timestamps for TransactionBlocks, coinType for BalanceChanges and a top-level coinConnection, adds partial support for querying fields on modules in Move packages, renames Stake to StakedSui, and addresses a number of bugs.

Please see the schema diff and the changelog to follow for full details.

Changelog

  • #14382, #14670: Fixes a bug where some outputs did not canonicalize types by normalizing address lengths to a 64 character lowercase hex representation with a leading ‘0x’.
    BUGFIX
  • #14960: Adds ability to customise the title of GraphiQL IDE.
  • #14965: Filters that expect a Coin Type accept non-canonicalized types (with short addresses).

Address

  • #14896: Fixes a bug where Address.objectConnection returns objects not owned by that address.
    BUGFIX

BalanceChange

  • #14734: Implements coinType so that we know the coin type of the balance that was changed in transaction effects.

CoinMetadata

  • #14818: Implements the CoinMetadata type, MoveObject.asCoinMetadata to downcast an existing object, and Query.coinMetadata to fetch them.

MoveModule

  • #14930: Implements the following fields: moduleId, bytes, disassembly.
  • #14935: Implements friendConnection.

Owner

  • #14687: Implements dynamicFieldConnection for iterating over all an object’s dynamic fields and dynamic object fields, in a paginated query.
  • #14714: Implements dynamicField and dynamicObjectField for fetching dynamic fields and dynamic object fields from an object.
  • #14804: Fixes a bug where not supplying a coin type for coinConnection queries defaulted to supplying all coins, rather than the existing JSON-RPC behaviour of supplying gas coins.
    BUGFIX

Query

  • #14954: Adds a top-level coinConnection.

ServiceConfig

  • #14715, #14792: Removes limits on number of fragments and variables, in favor of a limit on overall request payload size.
    Breaking Change
  • #14949: Max page size becomes a configurable parameter, and defaults to 50.
    Breaking Change

StakedSui

  • #14816: Renames Stake to StakedSui to match the name of its corresponding Move type.
    Breaking Change

TransactionBlock

  • #14688: Fixes a bug where checkpoint always fetched the latest checkpoint, rather than the checkpoint the transaction was originally from.
    BUGFIX
  • #14694: Implements timestamp field.

TransactionBlockKind

  • #14743: Introduces a new system transaction kind (RandomnessStateUpdate) corresponding to an upcoming change in the protocol.
3 Likes