Archived Collections
Collections can be archived to temporarily or permanently disable all transactions while keeping the collection data verifiable and public on-chain.
Key Concepts
Archive State
Controlled by the
isArchivedTimeline
fieldWhen archived, all transactions fail until unarchived
Collection remains readable and verifiable on-chain
Does not delete the collection, only makes it read-only
Timeline-Based Archiving
Collections can be archived for specific time periods:
Temporary archiving - Archive for maintenance or security
Permanent archiving - Sunset collections while preserving data
Scheduled archiving - Pre-planned archive periods
Implementation
isArchivedTimeline Structure
"isArchivedTimeline": [
{
"timelineTimes": [{"start": "1672531200000", "end": "18446744073709551615"}],
"isArchived": true
}
]
Permission Control
Archiving is controlled by the canArchiveCollection
permission:
"canArchiveCollection": [
{
"permanentlyPermittedTimes": [{"start": "1", "end": "18446744073709551615"}],
"permanentlyForbiddenTimes": []
}
]
Note that the canArchiveCollection
permission is for the updatability of the isArchivedTimeline
field. It has no bearing on the current value of the isArchived
field.
For example, when you permanently forbid updating the archive status forever, it could be locked as true
forever or false
forever.
Transaction Behavior
When Archived
All transactions fail - No updates, transfers, or changes allowed
Read operations continue - Queries and data access remain available
Unarchiving exception - Only unarchiving transactions can succeed
When Unarchived
Normal operations resume - All transaction types are allowed
No data loss - All collection data remains intact
Permissions apply - Standard permission checks resume
Archiving a Collection
During Collection Creation
{
"creator": "bb1...",
"isArchivedTimeline": [
{
"timelineTimes": [{ "start": "1", "end": "18446744073709551615" }],
"isArchived": false
}
],
"collectionPermissions": {
"canArchiveCollection": [
{
"permanentlyPermittedTimes": [
{ "start": "1", "end": "18446744073709551615" }
],
"permanentlyForbiddenTimes": []
}
]
}
}
During Collection Updates
Use MsgUpdateCollection to update the archive status:
{
"creator": "bb1...",
"collectionId": "1",
"updateIsArchivedTimeline": true,
"isArchivedTimeline": [
{
"timelineTimes": [
{ "start": "1672531200000", "end": "18446744073709551615" }
],
"isArchived": true
}
]
}
Last updated