Skip to main content

Sui Archive Data

A Sui archive is a history of all transaction data on Sui. In some cases, peer nodes might not catch up with all transactions and effects through synchronization if they lag behind the current epoch by more than the latest few epochs. In such cases, instead of relying on synchronization, peer nodes can fall back to downloading the relevant information from an archive.

info

Starting with the 1.51 release, the default archive bucket for Mainnet switches to a requester-pays model. See the following section for a configuration example.

https://checkpoints.mainnet.sui.io and https://checkpoints.testnet.sui.io retain only the most recent 30 days of checkpoints and are not suitable for full-retention backfill. For full checkpoint retention, use gs://mysten-mainnet-checkpoints-use4 for Mainnet or gs://mysten-testnet-checkpoints-use4 for Testnet with Requester Pays enabled. For standing up a new fullnode, always start it from a snapshot.

Set up archival fallback

To enable your node to fall back to an archive in case of lag, add the following to your fullnode.yaml file:

state-archive-read-config:
- ingestion-url: "https://s3.us-west-2.amazonaws.com/mysten-mainnet-checkpoints"
# How many objects to read ahead when catching up
concurrency: 5
remote-store-options:
# Required for this Requester Pays bucket
- ["aws_request_payer", "true"]
info

Mainnet archival fallback requires AWS credentials for the S3 Requester Pays bucket. Run the node on EC2 with an instance profile that grants access to the bucket; the archive client retrieves these credentials from EC2 instance metadata. Do not put access keys in fullnode.yaml: the node configuration can be exposed through administrative diagnostics. Other AWS credential providers, including environment variables, ECS task roles, and IRSA, are not loaded by this configuration. State sync explicitly rejects checkpoints.mainnet.sui.io as an archive source. Testnet uses a public HTTPS endpoint that does not require credentials.

Verify archival fallback

After adding the configuration and restarting your node, check the node logs for archive-related messages. You can also monitor the checkpoints_synced_from_archive Prometheus metric to confirm the node is fetching data from the archive:

$ curl -s http://localhost:9184/metrics | grep checkpoints_synced_from_archive

If the counter increases over time, the archival fallback is active.

When to use each archive source

SourceRetentionCredentialsUse case
https://s3.us-west-2.amazonaws.com/mysten-mainnet-checkpointsFull historyAWS credentialsMainnet archival fallback and full-retention backfill
https://checkpoints.testnet.sui.io30 daysNoneTestnet archival fallback
gs://mysten-mainnet-checkpoints-use4Full historyGCS credentials and x-goog-user-project billing headerMainnet checkpoint ingestion for indexers (GCS Requester Pays)
gs://mysten-testnet-checkpoints-use4Full historyGCS credentials and x-goog-user-project billing headerTestnet checkpoint ingestion for indexers (GCS Requester Pays)
caution

Do not use https://checkpoints.mainnet.sui.io for Mainnet archival fallback. State sync rejects this endpoint. Use the S3 or GCS bucket instead. When you use a GCS Requester Pays bucket, configure credentials and pass your billing project in the x-goog-user-project header; see Requester Pays checkpoint buckets.

For starting a new full node, always use a snapshot rather than syncing from the archive.