Skip to content

SyloDataPermissions pallet

Derived from live runtime metadata on TRN root (pallet index 55, captured 2026-05-02). For prose-style documentation see SyloDataPermissions on the curated reference side.

Pallet index
55
Calls
6
Events
8
Errors
14
Storage items
6
Constants
9

Calls (extrinsics)

SyloDataPermissions.grant_data_permissions

See [Pallet::grant_data_permissions].

ts
api.tx.syloDataPermissions.grant_data_permissions(data_author: [u8;20], grantee: [u8;20], data_ids: Vec<Bytes>, permission: {"_enum":["VIEW","MODIFY","DISTRIBUTE"]}, expiry: Option<u32>, irrevocable: bool)
ArgumentTypeDoc
data_author[u8;20]T::AccountId
grantee[u8;20]T::AccountId
data_idsVec&lt;Bytes&gt;BoundedVec<DataId<T::StringLimit>, T::MaxPermissions>
permission{"_enum":["VIEW","MODIFY","DISTRIBUTE"]}DataPermission
expiryOption&lt;u32&gt;Option<BlockNumberFor<T>>
irrevocableboolbool

Call index: 0

SyloDataPermissions.revoke_data_permission

See [Pallet::revoke_data_permission].

ts
api.tx.syloDataPermissions.revoke_data_permission(data_author: [u8;20], permission_id: u32, grantee: [u8;20], data_id: Bytes)
ArgumentTypeDoc
data_author[u8;20]T::AccountId
permission_idu32u32
grantee[u8;20]T::AccountId
data_idBytesDataId<T::StringLimit>

Call index: 1

SyloDataPermissions.grant_tagged_permissions

See [Pallet::grant_tagged_permissions].

ts
api.tx.syloDataPermissions.grant_tagged_permissions(grantee: [u8;20], permission: {"_enum":["VIEW","MODIFY","DISTRIBUTE"]}, tags: Vec<Bytes>, expiry: Option<u32>, irrevocable: bool)
ArgumentTypeDoc
grantee[u8;20]T::AccountId
permission{"_enum":["VIEW","MODIFY","DISTRIBUTE"]}DataPermission
tagsVec&lt;Bytes&gt;BoundedVec<BoundedVec<u8, T::StringLimit>, T::MaxTags>
expiryOption&lt;u32&gt;Option<BlockNumberFor<T>>
irrevocableboolbool

Call index: 2

SyloDataPermissions.revoke_tagged_permission

See [Pallet::revoke_tagged_permission].

ts
api.tx.syloDataPermissions.revoke_tagged_permission(grantee: [u8;20], permission_id: u32)
ArgumentTypeDoc
grantee[u8;20]T::AccountId
permission_idu32u32

Call index: 3

SyloDataPermissions.grant_permission_reference

See [Pallet::grant_permission_reference].

ts
api.tx.syloDataPermissions.grant_permission_reference(grantee: [u8;20], permission_record_id: Bytes)
ArgumentTypeDoc
grantee[u8;20]T::AccountId
permission_record_idBytesBoundedVec<u8, T::StringLimit>

Call index: 4

SyloDataPermissions.revoke_permission_reference

See [Pallet::revoke_permission_reference].

ts
api.tx.syloDataPermissions.revoke_permission_reference(grantee: [u8;20])
ArgumentTypeDoc
grantee[u8;20]T::AccountId

Call index: 5

Events

SyloDataPermissions.DataPermissionGranted

An account has been granted permission for a given data record

FieldTypeDoc
data_author[u8;20]
grantor[u8;20]
grantee[u8;20]
data_idBytes
permission{"_enum":["VIEW","MODIFY","DISTRIBUTE"]}
expiryOption&lt;u32&gt;
irrevocablebool

SyloDataPermissions.DataPermissionRevoked

An account's permission has been revoked for a given data record

FieldTypeDoc
revoker[u8;20]
grantee[u8;20]
permission{"_enum":["VIEW","MODIFY","DISTRIBUTE"]}
data_idBytes

SyloDataPermissions.TaggedDataPermissionsGranted

An account has been granted tagged permissions

FieldTypeDoc
grantor[u8;20]
grantee[u8;20]
permission{"_enum":["VIEW","MODIFY","DISTRIBUTE"]}
tagsVec&lt;Bytes&gt;
expiryOption&lt;u32&gt;
irrevocablebool

SyloDataPermissions.TaggedDataPermissionsRevoked

One of the tagged permissions for an account has been revoked

FieldTypeDoc
revoker[u8;20]
grantee[u8;20]
permission{"_enum":["VIEW","MODIFY","DISTRIBUTE"]}
tagsVec&lt;Bytes&gt;

SyloDataPermissions.PermissionReferenceGranted

An account has been granted a permission reference

FieldTypeDoc
grantor[u8;20]
grantee[u8;20]
permission_record_idBytes

SyloDataPermissions.PermissionReferenceRevoked

An account's permission reference has been revoked

FieldTypeDoc
grantor[u8;20]
grantee[u8;20]
permission_record_idBytes

SyloDataPermissions.ExpiredDataPermissionRemoved

An expired permission has been automatically removed

FieldTypeDoc
data_author[u8;20]
grantee[u8;20]
data_idBytes
permission_idu32

SyloDataPermissions.ExpiredTaggedPermissionRemoved

An expired tagged permission has been automatically removed

FieldTypeDoc
data_author[u8;20]
grantee[u8;20]
permission_idu32

Errors

SyloDataPermissions.DataRecordDoesNotExist

Attempted to grant permissions for a data record that does not exist

SyloDataPermissions.IrrevocableCannotBeExpirable

A permission that is set to irrevocable cannot also set to have an expiry

SyloDataPermissions.InvalidExpiry

Expiry value for permission record is invalid

SyloDataPermissions.ExceededMaxPermissions

Exceeded the maximum number of record permissions granted to a given account

SyloDataPermissions.MissingDistributePermission

Attempted to grant a permission as a delegate without the required DISTRIBUTE permission

SyloDataPermissions.CannotGrantDistributePermission

Distribute permissions can only be granted by the data author

SyloDataPermissions.CannotGrantIrrevocablePermission

Irrevocable permissions can only be granted by the data author

SyloDataPermissions.PermissionIrrevocable

An irrevocable permission can not be revoked

SyloDataPermissions.NotPermissionGrantor

Only the account that granted a permission or the data author themselves can revoke a permission

SyloDataPermissions.PermissionNotFound

Cannot revoke a permission that does not exist

SyloDataPermissions.MissingValidationRecord

An accompanying verification record for the offchain permission does not exist

SyloDataPermissions.PermissionReferenceAlreadyExists

An existing permission reference has already been granted

SyloDataPermissions.ExceededMaxExpiringPermissions

Exceeded the maximum number of permissions that can expired on the same block

SyloDataPermissions.InvalidString

String values in an RPC call, in either the inputs or outputs are invalid

Storage

SyloDataPermissions.NextPermissionRecordId

ts
await api.query.syloDataPermissions.nextPermissionRecordId(key1)
  • Key: [u8;20] (hasher: Twox64Concat)
  • Returns: u32

Modifier: Default

SyloDataPermissions.PermissionRecords

ts
await api.query.syloDataPermissions.permissionRecords(key1, key2, key3)
  • Key: (SeedPrimitivesSignatureAccountId20,SeedPrimitivesSignatureAccountId20,Bytes) (hashers: Twox64Concat, Twox64Concat, Twox64Concat)
  • Returns: Vec<(u32,PalletSyloDataPermissionsPermissionRecord)>

Modifier: Default

SyloDataPermissions.ExpiringPermissionRecords

ts
await api.query.syloDataPermissions.expiringPermissionRecords(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: Vec<(SeedPrimitivesSignatureAccountId20,SeedPrimitivesSignatureAccountId20,Bytes,u32)>

Modifier: Default

SyloDataPermissions.TaggedPermissionRecords

ts
await api.query.syloDataPermissions.taggedPermissionRecords(key1, key2)
  • Key: (SeedPrimitivesSignatureAccountId20,SeedPrimitivesSignatureAccountId20) (hashers: Twox64Concat, Twox64Concat)
  • Returns: Vec<(u32,PalletSyloDataPermissionsTaggedPermissionRecord)>

Modifier: Default

SyloDataPermissions.ExpiringTaggedPermissionRecords

ts
await api.query.syloDataPermissions.expiringTaggedPermissionRecords(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: Vec<(SeedPrimitivesSignatureAccountId20,SeedPrimitivesSignatureAccountId20,u32)>

Modifier: Default

SyloDataPermissions.PermissionReferences

ts
await api.query.syloDataPermissions.permissionReferences(key1, key2)
  • Key: (SeedPrimitivesSignatureAccountId20,SeedPrimitivesSignatureAccountId20) (hashers: Twox64Concat, Twox64Concat)
  • Returns: {"permissionRecordId":"Bytes"}

Modifier: Optional

Constants

SyloDataPermissions.MaxPermissions

Limit on the number of permissions that can be granted at once

Type: u32
SCALE-encoded value: 0x64000000

SyloDataPermissions.MaxExpiringPermissions

Limits the number of permissions that can expire on the same block

Type: u32
SCALE-encoded value: 0x0a000000

SyloDataPermissions.MaxTags

The maximum number of tags that can be used in a tagged permission record

Type: u32
SCALE-encoded value: 0x0a000000

SyloDataPermissions.MaxResolvers

The maximim number of resolvers in a validation record.

Type: u32
SCALE-encoded value: 0x0a000000

SyloDataPermissions.MaxEntries

The maximum number of entries in a validation record.

Type: u32
SCALE-encoded value: 0x64000000

SyloDataPermissions.MaxServiceEndpoints

The maximum number of service endpoints for a registered resolver.

Type: u32
SCALE-encoded value: 0x0a000000

SyloDataPermissions.MaxPermissionRecords

The maximum number of tagged permission records that can be granted to an account

Type: u32
SCALE-encoded value: 0x64000000

SyloDataPermissions.StringLimit

The max length used for data ids

Type: u32
SCALE-encoded value: 0xf4010000

SyloDataPermissions.PermissionRemovalDelay

The number of blocks an expired permission will persist on-chain before being automatically removed

Type: u32
SCALE-encoded value: 0x40e30900

Source: live chain metadata from wss://root.rootnet.live/archive/ws · captured 2026-05-02

Curated independently by Codeology. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.