@meddleware/docs 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/docs/.vitepress/config.ts +45 -28
  3. package/docs/blockchain/index.md +18 -0
  4. package/docs/{access-gate → blockchain/sui/access-gate}/api/index.md +1 -0
  5. package/docs/blockchain/sui/access-gate/api/interfaces/CoreObject.md +31 -0
  6. package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedObjectsClient.md +2 -2
  7. package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/SuiObjectClient.md +2 -2
  8. package/docs/blockchain/sui/access-gate/api/typedoc-sidebar.json +1 -0
  9. package/docs/{access-gate → blockchain/sui/access-gate}/index.md +5 -5
  10. package/docs/{access-gate → blockchain/sui/access-gate}/reference.md +6 -7
  11. package/docs/{access-gate/using.md → blockchain/sui/access-gate/walkthrough.md} +3 -3
  12. package/docs/{architecture.md → blockchain/sui/architecture.md} +6 -6
  13. package/docs/{dao → blockchain/sui/dao}/index.md +3 -3
  14. package/docs/{dao → blockchain/sui/dao}/reference.md +4 -10
  15. package/docs/{getting-started.md → blockchain/sui/getting-started.md} +5 -5
  16. package/docs/blockchain/sui/index.md +41 -0
  17. package/docs/blockchain/sui/sealed-storage/api/typedoc-sidebar.json +1 -0
  18. package/docs/{sealed-storage → blockchain/sui/sealed-storage}/index.md +8 -8
  19. package/docs/{sealed-storage → blockchain/sui/sealed-storage}/policies.md +4 -4
  20. package/docs/{sealed-storage → blockchain/sui/sealed-storage}/reference.md +3 -3
  21. package/docs/{sealed-storage/using.md → blockchain/sui/sealed-storage/walkthrough.md} +3 -3
  22. package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/index.md +2 -0
  23. package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/CreateWalrusClientOptions.md +1 -1
  24. package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/UploadOptions.md +1 -1
  25. package/docs/blockchain/sui/walrus-storage/api/type-aliases/WalrusClientNetwork.md +8 -0
  26. package/docs/blockchain/sui/walrus-storage/api/typedoc-sidebar.json +1 -0
  27. package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/LONG_TERM_EPOCHS.md +1 -1
  28. package/docs/blockchain/sui/walrus-storage/api/variables/MAX_SINGLE_RESERVATION_EPOCHS.md +10 -0
  29. package/docs/{walrus-storage → blockchain/sui/walrus-storage}/index.md +5 -5
  30. package/docs/{walrus-storage → blockchain/sui/walrus-storage}/reference.md +4 -4
  31. package/docs/{walrus-storage/using.md → blockchain/sui/walrus-storage/walkthrough.md} +5 -5
  32. package/docs/index.md +14 -47
  33. package/package.json +4 -4
  34. package/scripts/gen-api.mjs +3 -3
  35. package/docs/access-gate/api/typedoc-sidebar.json +0 -1
  36. package/docs/sealed-storage/api/typedoc-sidebar.json +0 -1
  37. package/docs/walrus-storage/api/typedoc-sidebar.json +0 -1
  38. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildAccessProof.md +0 -0
  39. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildAirdropTx.md +0 -0
  40. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildConsumeTx.md +0 -0
  41. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildCreateGateTx.md +0 -0
  42. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildMakeGateImmutableTx.md +0 -0
  43. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildPurchaseTx.md +0 -0
  44. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetAutoBurnAtZeroTx.md +0 -0
  45. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetDefaultUsesTx.md +0 -0
  46. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetNftDescriptionTx.md +0 -0
  47. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetNftImageUrlTx.md +0 -0
  48. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetNftNameTx.md +0 -0
  49. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetPausedTx.md +0 -0
  50. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetPaymentRecipientTx.md +0 -0
  51. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetPriceTx.md +0 -0
  52. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetSoulboundTx.md +0 -0
  53. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/decodeAccessProof.md +0 -0
  54. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/encodeAccessProof.md +0 -0
  55. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchAccessNftById.md +0 -0
  56. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchAccessNfts.md +0 -0
  57. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchAdminCaps.md +0 -0
  58. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchChallenge.md +0 -0
  59. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchGate.md +0 -0
  60. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchOwnedGates.md +0 -0
  61. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/ownsAccessNft.md +0 -0
  62. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/parseAdminCap.md +0 -0
  63. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/parseGate.md +0 -0
  64. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/parseOwnedAccessNft.md +0 -0
  65. /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/personalMessageForNonce.md +0 -0
  66. /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/AccessGateConfig.md +0 -0
  67. /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/AccessProof.md +0 -0
  68. /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/Challenge.md +0 -0
  69. /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/GateAdminContext.md +0 -0
  70. /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedAccessNft.md +0 -0
  71. /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedGate.md +0 -0
  72. /package/docs/{access-gate → blockchain/sui/access-gate}/api/type-aliases/PersonalMessageSigner.md +0 -0
  73. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/classes/PolicyRegistry.md +0 -0
  74. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/classes/SealController.md +0 -0
  75. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/buildPublishSealedContentTx.md +0 -0
  76. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/bytesToHex.md +0 -0
  77. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/concatBytes.md +0 -0
  78. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/createDefaultRegistry.md +0 -0
  79. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/createNftGateProvider.md +0 -0
  80. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/hexToBytes.md +0 -0
  81. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/objectIdBytes.md +0 -0
  82. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/randomBytes.md +0 -0
  83. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/sealedContentEventType.md +0 -0
  84. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/u64beBytes.md +0 -0
  85. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/index.md +0 -0
  86. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/EncryptResult.md +0 -0
  87. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/FieldSpec.md +0 -0
  88. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/FieldSuggestion.md +0 -0
  89. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/KeyServerConfig.md +0 -0
  90. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/NftGateParams.md +0 -0
  91. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/PolicyDescriptor.md +0 -0
  92. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealControllerConfig.md +0 -0
  93. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealPolicyProvider.md +0 -0
  94. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealSuggestClient.md +0 -0
  95. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealedContentInput.md +0 -0
  96. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealedContentPointer.md +0 -0
  97. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealedManifest.md +0 -0
  98. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SuggestContext.md +0 -0
  99. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/TimeLockParams.md +0 -0
  100. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/type-aliases/SignPersonalMessage.md +0 -0
  101. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/variables/nftGateProvider.md +0 -0
  102. /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/variables/timeLockProvider.md +0 -0
  103. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/classes/RetryableWalrusClientError.md +0 -0
  104. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/classes/WalrusFile.md +0 -0
  105. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/buildAccessProofToken.md +0 -0
  106. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/certifyBlobTransaction.md +0 -0
  107. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createBlobUploadFlow.md +0 -0
  108. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createRelayAccessToken.md +0 -0
  109. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createUploadFlow.md +0 -0
  110. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createWalrusClient.md +0 -0
  111. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/estimateStorageCost.md +0 -0
  112. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/extendBlobLifetime.md +0 -0
  113. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/extendBlobLifetimeTransaction.md +0 -0
  114. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/fetchOwnedWalrusBlobs.md +0 -0
  115. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/fetchRelayChallenge.md +0 -0
  116. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/getWalrusPackageConfig.md +0 -0
  117. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/personalMessageForNonce.md +0 -0
  118. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/readBlobAttributes.md +0 -0
  119. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/setBlobAttributes.md +0 -0
  120. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/setBlobAttributesTransaction.md +0 -0
  121. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/uploadBytes.md +0 -0
  122. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/uploadImageBytes.md +0 -0
  123. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/uploadLocalFile.md +0 -0
  124. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/walrusBlobUrl.md +0 -0
  125. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/interfaces/CertifyOptions.md +0 -0
  126. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/interfaces/StorageCost.md +0 -0
  127. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/AccessProofInput.md +0 -0
  128. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/ExtendOptions.md +0 -0
  129. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/OwnedBlob.md +0 -0
  130. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/PersonalMessageSigner.md +0 -0
  131. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/RelayChallenge.md +0 -0
  132. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/UploadResult.md +0 -0
  133. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/WalrusClient.md +0 -0
  134. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/WalrusNetwork.md +0 -0
  135. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/DEFAULT_RPC_URLS.md +0 -0
  136. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/MAINNET_WALRUS_PACKAGE_CONFIG.md +0 -0
  137. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/PUBLIC_UPLOAD_RELAY_HOSTS.md +0 -0
  138. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/TESTNET_WALRUS_PACKAGE_CONFIG.md +0 -0
  139. /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/WALRUS_AGGREGATOR_HOSTS.md +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to `@meddleware/docs` are documented here.
4
4
 
5
+ ## [0.0.4] — 2026-09-17
6
+
7
+ Heading cleanup and naming improvements.
8
+
9
+ - Renamed `using.md` → `walkthrough.md` across all three tool sections (Walrus Storage, Sealed Storage, Access Gate); URLs updated accordingly
10
+ - Replaced all `# Feature — noun` H1 patterns with clean unhyphenated titles (`# Using Walrus Storage`, `# DAO reference`, `# Sealed Storage policies`, etc.)
11
+ - Sidebar and "Next" section links updated to "Walkthrough"
12
+ - Removed "fundraising/" qualifier from DAO governance placeholder copy
13
+
14
+ ## [0.0.3] — 2026-09-17
15
+
16
+ Restructured to a blockchain-agnostic architecture with Sui as the first active chain.
17
+
18
+ - All Sui content moved under `/blockchain/sui/` URL hierarchy
19
+ - New blockchain-agnostic home page — hero + Sui card + "more blockchains coming soon" card
20
+ - New `/blockchain/` chain picker landing page
21
+ - New `/blockchain/sui/` Sui section landing page
22
+ - Navbar: `Blockchain` dropdown (Active / Coming soon groups) + `Sui Tools` dropdown
23
+ - Sidebar: per-path keyed — full Sui sidebar under `/blockchain/sui/`, minimal chain sidebar under `/blockchain/`
24
+ - Removed all references to the inactive `dev.meddleware.co.uk` URL; replaced with "forthcoming developer documentation"
25
+ - Bumped gen-api autodoc output paths to match new `/blockchain/sui/` hierarchy
26
+
5
27
  ## [0.0.1] — 2026-09-17
6
28
 
7
29
  Initial release. VitePress documentation site for `docs.meddleware.co.uk` covering the four
@@ -1,15 +1,15 @@
1
1
  import { defineConfig } from 'vitepress'
2
2
  import { fileURLToPath } from 'node:url'
3
3
 
4
- // User-facing documentation for the Meddleware Sui tools. One site, one section per service.
5
- // Output is pinned to the repo-root dist/ so the Dockerfile's `COPY --from=build /app/dist`
6
- // (the shared static-server image pattern) works unchanged.
4
+ // User-facing documentation for the Meddleware developer tools. Blockchain-agnostic site with
5
+ // per-chain sections; Sui is the first active chain. Output is pinned to the repo-root dist/ so
6
+ // the Dockerfile's `COPY --from=build /app/dist` (shared static-server pattern) works unchanged.
7
7
  const outDir = fileURLToPath(new URL('../../dist', import.meta.url))
8
8
 
9
9
  export default defineConfig({
10
10
  title: 'Meddleware Docs',
11
11
  description:
12
- 'How to use the Meddleware Sui tools the DAO console, Walrus Storage, Sealed Storage, and Access Gate.',
12
+ 'Developer tools for decentralised applications documentation for the Meddleware Sui platform and beyond.',
13
13
  lang: 'en-GB',
14
14
  outDir,
15
15
  cleanUrls: true,
@@ -25,13 +25,21 @@ export default defineConfig({
25
25
  search: { provider: 'local' },
26
26
 
27
27
  nav: [
28
- { text: 'Start here', link: '/getting-started' },
29
- { text: 'DAO', link: '/dao/' },
30
- { text: 'Walrus Storage', link: '/walrus-storage/' },
31
- { text: 'Sealed Storage', link: '/sealed-storage/' },
32
- { text: 'Access Gate', link: '/access-gate/' },
33
28
  {
34
- text: 'Tools',
29
+ text: 'Blockchain',
30
+ items: [
31
+ {
32
+ text: 'Active',
33
+ items: [{ text: 'Sui', link: '/blockchain/sui/' }],
34
+ },
35
+ {
36
+ text: 'Coming soon',
37
+ items: [{ text: 'More blockchains', link: '/blockchain/' }],
38
+ },
39
+ ],
40
+ },
41
+ {
42
+ text: 'Sui Tools',
35
43
  items: [
36
44
  { text: 'Tools hub', link: 'https://sui.meddleware.co.uk' },
37
45
  { text: 'DAO console', link: 'https://sui-dao.meddleware.co.uk' },
@@ -43,49 +51,58 @@ export default defineConfig({
43
51
  ],
44
52
 
45
53
  sidebar: {
46
- '/': [
54
+ '/blockchain/sui/': [
47
55
  {
48
- text: 'Introduction',
56
+ text: 'Sui',
49
57
  items: [
50
- { text: 'Overview', link: '/' },
51
- { text: 'Getting started', link: '/getting-started' },
52
- { text: 'How the tools fit together', link: '/architecture' },
58
+ { text: 'Overview', link: '/blockchain/sui/' },
59
+ { text: 'Getting started', link: '/blockchain/sui/getting-started' },
60
+ { text: 'How the tools fit together', link: '/blockchain/sui/architecture' },
53
61
  ],
54
62
  },
55
63
  {
56
64
  text: 'DAO',
57
65
  collapsed: false,
58
66
  items: [
59
- { text: 'Overview', link: '/dao/' },
60
- { text: 'Reference', link: '/dao/reference' },
67
+ { text: 'Overview', link: '/blockchain/sui/dao/' },
68
+ { text: 'Reference', link: '/blockchain/sui/dao/reference' },
61
69
  ],
62
70
  },
63
71
  {
64
72
  text: 'Walrus Storage',
65
73
  collapsed: false,
66
74
  items: [
67
- { text: 'Overview', link: '/walrus-storage/' },
68
- { text: 'Using it', link: '/walrus-storage/using' },
69
- { text: 'Reference', link: '/walrus-storage/reference' },
75
+ { text: 'Overview', link: '/blockchain/sui/walrus-storage/' },
76
+ { text: 'Walkthrough', link: '/blockchain/sui/walrus-storage/walkthrough' },
77
+ { text: 'Reference', link: '/blockchain/sui/walrus-storage/reference' },
70
78
  ],
71
79
  },
72
80
  {
73
81
  text: 'Sealed Storage',
74
82
  collapsed: false,
75
83
  items: [
76
- { text: 'Overview', link: '/sealed-storage/' },
77
- { text: 'Using it', link: '/sealed-storage/using' },
78
- { text: 'Policies', link: '/sealed-storage/policies' },
79
- { text: 'Reference', link: '/sealed-storage/reference' },
84
+ { text: 'Overview', link: '/blockchain/sui/sealed-storage/' },
85
+ { text: 'Walkthrough', link: '/blockchain/sui/sealed-storage/walkthrough' },
86
+ { text: 'Policies', link: '/blockchain/sui/sealed-storage/policies' },
87
+ { text: 'Reference', link: '/blockchain/sui/sealed-storage/reference' },
80
88
  ],
81
89
  },
82
90
  {
83
91
  text: 'Access Gate',
84
92
  collapsed: false,
85
93
  items: [
86
- { text: 'Overview', link: '/access-gate/' },
87
- { text: 'Using it', link: '/access-gate/using' },
88
- { text: 'Reference', link: '/access-gate/reference' },
94
+ { text: 'Overview', link: '/blockchain/sui/access-gate/' },
95
+ { text: 'Walkthrough', link: '/blockchain/sui/access-gate/walkthrough' },
96
+ { text: 'Reference', link: '/blockchain/sui/access-gate/reference' },
97
+ ],
98
+ },
99
+ ],
100
+ '/blockchain/': [
101
+ {
102
+ text: 'Blockchains',
103
+ items: [
104
+ { text: 'Overview', link: '/blockchain/' },
105
+ { text: 'Sui', link: '/blockchain/sui/' },
89
106
  ],
90
107
  },
91
108
  ],
@@ -94,7 +111,7 @@ export default defineConfig({
94
111
  socialLinks: [{ icon: 'github', link: 'https://github.com/meddleware-org' }],
95
112
 
96
113
  footer: {
97
- message: 'Documentation for the Meddleware Sui tools.',
114
+ message: 'Documentation for the Meddleware developer tools.',
98
115
  copyright: 'Meddleware · 0BSD',
99
116
  },
100
117
  },
@@ -0,0 +1,18 @@
1
+ # Blockchains
2
+
3
+ Meddleware builds developer tools across blockchain ecosystems. This page is your starting point for
4
+ blockchain-specific documentation.
5
+
6
+ ## Available now
7
+
8
+ ### Sui
9
+
10
+ Four tools, one connected platform — decentralised storage, threshold encryption, NFT access control,
11
+ and a transparent DAO console. Built for Sui's object model and Walrus decentralised storage.
12
+
13
+ **[Go to the Sui docs →](/blockchain/sui/)**
14
+
15
+ ## Coming soon
16
+
17
+ More blockchain ecosystems are being evaluated. The platform is designed from the ground up to be
18
+ blockchain-agnostic, so new chains can be added without changing the existing tooling.
@@ -5,6 +5,7 @@
5
5
  - [AccessGateConfig](interfaces/AccessGateConfig.md)
6
6
  - [AccessProof](interfaces/AccessProof.md)
7
7
  - [Challenge](interfaces/Challenge.md)
8
+ - [CoreObject](interfaces/CoreObject.md)
8
9
  - [GateAdminContext](interfaces/GateAdminContext.md)
9
10
  - [OwnedAccessNft](interfaces/OwnedAccessNft.md)
10
11
  - [OwnedGate](interfaces/OwnedGate.md)
@@ -0,0 +1,31 @@
1
+ # Interface: CoreObject
2
+
3
+ Defined in: types.ts:104
4
+
5
+ A single owned/read object as returned by the unified core API (`SuiGrpcClient`): the id and
6
+ Move struct type are top-level; the struct fields come back under `json` (opt-in). Kept as a
7
+ structural subset so any client exposing the core API satisfies it without importing the SDK.
8
+
9
+ ## Properties
10
+
11
+ ### json?
12
+
13
+ > `optional` **json?**: `Record`\<`string`, `unknown`\>
14
+
15
+ Defined in: types.ts:107
16
+
17
+ ***
18
+
19
+ ### objectId
20
+
21
+ > **objectId**: `string`
22
+
23
+ Defined in: types.ts:105
24
+
25
+ ***
26
+
27
+ ### type?
28
+
29
+ > `optional` **type?**: `string`
30
+
31
+ Defined in: types.ts:106
@@ -14,7 +14,7 @@ Defined in: types.ts:112
14
14
 
15
15
  #### listOwnedObjects()
16
16
 
17
- > **listOwnedObjects**(`options`): `Promise`\<\{ `cursor`: `string`; `hasNextPage`: `boolean`; `objects`: `CoreObject`[]; \}\>
17
+ > **listOwnedObjects**(`options`): `Promise`\<\{ `cursor`: `string`; `hasNextPage`: `boolean`; `objects`: [`CoreObject`](CoreObject.md)[]; \}\>
18
18
 
19
19
  ##### Parameters
20
20
 
@@ -46,4 +46,4 @@ Defined in: types.ts:112
46
46
 
47
47
  ##### Returns
48
48
 
49
- `Promise`\<\{ `cursor`: `string`; `hasNextPage`: `boolean`; `objects`: `CoreObject`[]; \}\>
49
+ `Promise`\<\{ `cursor`: `string`; `hasNextPage`: `boolean`; `objects`: [`CoreObject`](CoreObject.md)[]; \}\>
@@ -14,7 +14,7 @@ Defined in: types.ts:125
14
14
 
15
15
  #### getObject()
16
16
 
17
- > **getObject**(`options`): `Promise`\<\{ `object`: `CoreObject`; \}\>
17
+ > **getObject**(`options`): `Promise`\<\{ `object`: [`CoreObject`](CoreObject.md); \}\>
18
18
 
19
19
  ##### Parameters
20
20
 
@@ -34,4 +34,4 @@ Defined in: types.ts:125
34
34
 
35
35
  ##### Returns
36
36
 
37
- `Promise`\<\{ `object`: `CoreObject`; \}\>
37
+ `Promise`\<\{ `object`: [`CoreObject`](CoreObject.md); \}\>
@@ -0,0 +1 @@
1
+ [{"text":"Interfaces","collapsed":true,"items":[{"text":"AccessGateConfig","link":"/docs/blockchain/sui/access-gate/api/interfaces/AccessGateConfig.md"},{"text":"AccessProof","link":"/docs/blockchain/sui/access-gate/api/interfaces/AccessProof.md"},{"text":"Challenge","link":"/docs/blockchain/sui/access-gate/api/interfaces/Challenge.md"},{"text":"CoreObject","link":"/docs/blockchain/sui/access-gate/api/interfaces/CoreObject.md"},{"text":"GateAdminContext","link":"/docs/blockchain/sui/access-gate/api/interfaces/GateAdminContext.md"},{"text":"OwnedAccessNft","link":"/docs/blockchain/sui/access-gate/api/interfaces/OwnedAccessNft.md"},{"text":"OwnedGate","link":"/docs/blockchain/sui/access-gate/api/interfaces/OwnedGate.md"},{"text":"OwnedObjectsClient","link":"/docs/blockchain/sui/access-gate/api/interfaces/OwnedObjectsClient.md"},{"text":"SuiObjectClient","link":"/docs/blockchain/sui/access-gate/api/interfaces/SuiObjectClient.md"}]},{"text":"Type Aliases","collapsed":true,"items":[{"text":"PersonalMessageSigner","link":"/docs/blockchain/sui/access-gate/api/type-aliases/PersonalMessageSigner.md"}]},{"text":"Functions","collapsed":true,"items":[{"text":"buildAccessProof","link":"/docs/blockchain/sui/access-gate/api/functions/buildAccessProof.md"},{"text":"buildAirdropTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildAirdropTx.md"},{"text":"buildConsumeTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildConsumeTx.md"},{"text":"buildCreateGateTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildCreateGateTx.md"},{"text":"buildMakeGateImmutableTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildMakeGateImmutableTx.md"},{"text":"buildPurchaseTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildPurchaseTx.md"},{"text":"buildSetAutoBurnAtZeroTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetAutoBurnAtZeroTx.md"},{"text":"buildSetDefaultUsesTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetDefaultUsesTx.md"},{"text":"buildSetNftDescriptionTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetNftDescriptionTx.md"},{"text":"buildSetNftImageUrlTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetNftImageUrlTx.md"},{"text":"buildSetNftNameTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetNftNameTx.md"},{"text":"buildSetPausedTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetPausedTx.md"},{"text":"buildSetPaymentRecipientTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetPaymentRecipientTx.md"},{"text":"buildSetPriceTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetPriceTx.md"},{"text":"buildSetSoulboundTx","link":"/docs/blockchain/sui/access-gate/api/functions/buildSetSoulboundTx.md"},{"text":"decodeAccessProof","link":"/docs/blockchain/sui/access-gate/api/functions/decodeAccessProof.md"},{"text":"encodeAccessProof","link":"/docs/blockchain/sui/access-gate/api/functions/encodeAccessProof.md"},{"text":"fetchAccessNftById","link":"/docs/blockchain/sui/access-gate/api/functions/fetchAccessNftById.md"},{"text":"fetchAccessNfts","link":"/docs/blockchain/sui/access-gate/api/functions/fetchAccessNfts.md"},{"text":"fetchAdminCaps","link":"/docs/blockchain/sui/access-gate/api/functions/fetchAdminCaps.md"},{"text":"fetchChallenge","link":"/docs/blockchain/sui/access-gate/api/functions/fetchChallenge.md"},{"text":"fetchGate","link":"/docs/blockchain/sui/access-gate/api/functions/fetchGate.md"},{"text":"fetchOwnedGates","link":"/docs/blockchain/sui/access-gate/api/functions/fetchOwnedGates.md"},{"text":"ownsAccessNft","link":"/docs/blockchain/sui/access-gate/api/functions/ownsAccessNft.md"},{"text":"parseAdminCap","link":"/docs/blockchain/sui/access-gate/api/functions/parseAdminCap.md"},{"text":"parseGate","link":"/docs/blockchain/sui/access-gate/api/functions/parseGate.md"},{"text":"parseOwnedAccessNft","link":"/docs/blockchain/sui/access-gate/api/functions/parseOwnedAccessNft.md"},{"text":"personalMessageForNonce","link":"/docs/blockchain/sui/access-gate/api/functions/personalMessageForNonce.md"}]}]
@@ -19,8 +19,8 @@ There are two perspectives:
19
19
 
20
20
  - You want to **sell access** — a paid community, premium content, a members' area.
21
21
  - You want to **gate an API or app** behind on-chain ownership (pair it with the
22
- [nft-gate gateway](/access-gate/reference), which puts any HTTP service behind a gate).
23
- - You want to gate **encrypted content** — combine it with [Sealed Storage](/sealed-storage/), where
22
+ [nft-gate gateway](/blockchain/sui/access-gate/reference), which puts any HTTP service behind a gate).
23
+ - You want to gate **encrypted content** — combine it with [Sealed Storage](/blockchain/sui/sealed-storage/), where
24
24
  a pass becomes the key.
25
25
  - You want **single-use tickets** or **memberships** represented as NFTs.
26
26
 
@@ -52,10 +52,10 @@ identity and not resold. The non-transferability is enforced at the contract lev
52
52
 
53
53
  Every purchase routes a commission (in basis points, capped on-chain at 10%) to the platform
54
54
  treasury; the rest goes to the operator. The rate is set in shared on-chain config and shown in the
55
- [DAO console](/dao/). Operators don't set the commission — only the price.
55
+ [DAO console](/blockchain/sui/dao/). Operators don't set the commission — only the price.
56
56
 
57
57
  ## Next
58
58
 
59
- - **[Using it](/access-gate/using)** — create and manage a gate; buy and use a pass.
60
- - **[Reference](/access-gate/reference)** — objects, entry functions, events, the gateway, and the
59
+ - **[Walkthrough](/blockchain/sui/access-gate/walkthrough)** — create and manage a gate; buy and use a pass.
60
+ - **[Reference](/blockchain/sui/access-gate/reference)** — objects, entry functions, events, the gateway, and the
61
61
  SDK API.
@@ -1,4 +1,4 @@
1
- # Access Gate reference
1
+ # Access Gate reference
2
2
 
3
3
  The on-chain `access_gate` contract, its gateway, and the client SDK. Move tables are curated from
4
4
  source; the TypeScript SDK reference is [auto-generated](#sdk-api).
@@ -67,7 +67,7 @@ Owned capability authorising management of one gate (`{ gate_id }`). Authorisati
67
67
  ::: warning Event pruning
68
68
  Sui testnet prunes old events after ~3 months. Systems that need a reliable gate list should read
69
69
  **`AdminCap` ownership → `Gate`** rather than replaying `GateCreatedEvent` (this is what the
70
- [DAO console](/dao/) does).
70
+ [DAO console](/blockchain/sui/dao/) does).
71
71
  :::
72
72
 
73
73
  ## Error codes
@@ -94,7 +94,7 @@ signed proof and on-chain pass ownership, failing **closed** on any ambiguity.
94
94
 
95
95
  The gateway consumes the nonce immediately (single-use replay protection) and, for single-use passes,
96
96
  verifies the on-chain consumption by digest. Two wire-identical implementations exist (Cloudflare
97
- Workers and Rust); running one is a [self-host / `dev.`](#developer-note) topic.
97
+ Workers and Rust); running one is covered in the forthcoming developer documentation.
98
98
 
99
99
  ## SDK API
100
100
 
@@ -105,7 +105,6 @@ airdrop, admin setters), ownership reads, and the challenge/proof helpers — is
105
105
 
106
106
  ## Developer note
107
107
 
108
- Deploying the gateway, integrating the SDK into your own app, and white-label operation are
109
- `dev.meddleware.co.uk` topics, planned in the `access-gate-sui`, `nft-gate`, and `nft-gate-client`
110
- package docs. This page is the on-chain contract and wire-protocol reference users and bots can rely
111
- on.
108
+ Deploying the gateway, integrating the SDK into your own app, and white-label operation are covered
109
+ in the forthcoming developer documentation. This page is the on-chain contract and wire-protocol
110
+ reference users and bots can rely on.
@@ -1,11 +1,11 @@
1
- # Access Gate — using it
1
+ # Using Access Gate
2
2
 
3
3
  Two audiences: **operators** who run gates, and **buyers** who hold passes.
4
4
 
5
5
  ## For operators
6
6
 
7
7
  Manage gates in the [operator console](https://sui-access-gate.meddleware.co.uk). You'll need a
8
- [Sui wallet](/getting-started).
8
+ [Sui wallet](/blockchain/sui/getting-started).
9
9
 
10
10
  ### Create a gate
11
11
 
@@ -53,7 +53,7 @@ receive the pass NFT. Overpayment is refunded automatically.
53
53
 
54
54
  ### Use a pass to unlock encrypted content
55
55
 
56
- If content was sealed to a gate with [Sealed Storage](/sealed-storage/), holding a valid pass lets you
56
+ If content was sealed to a gate with [Sealed Storage](/blockchain/sui/sealed-storage/), holding a valid pass lets you
57
57
  **decrypt** it — provide your pass when unlocking.
58
58
 
59
59
  ## Common questions
@@ -1,4 +1,4 @@
1
- # How the tools fit together
1
+ # How the Sui tools fit together
2
2
 
3
3
  The four tools are useful on their own, but they're designed to compose. This page shows how.
4
4
 
@@ -13,7 +13,7 @@ The four tools are useful on their own, but they're designed to compose. This pa
13
13
 
14
14
  ## Sealed Storage = Walrus + Seal + Access Gate
15
15
 
16
- The clearest example of composition is **[Sealed Storage](/sealed-storage/)**. When you seal a file:
16
+ The clearest example of composition is **[Sealed Storage](/blockchain/sui/sealed-storage/)**. When you seal a file:
17
17
 
18
18
  1. **Seal** encrypts it in your browser, under a **policy** you choose.
19
19
  2. **Walrus** stores the resulting ciphertext — publicly, because it's useless without the key.
@@ -36,14 +36,14 @@ So an Access Gate pass can act as the key to encrypted Walrus content — three
36
36
 
37
37
  ## How gated Walrus uploads work
38
38
 
39
- **[Walrus Storage](/walrus-storage/)** can route uploads through a **relay**. Meddleware's relay can
39
+ **[Walrus Storage](/blockchain/sui/walrus-storage/)** can route uploads through a **relay**. Meddleware's relay can
40
40
  be **gated** by an Access Gate NFT: you prove you hold a valid pass, and the relay accepts your
41
41
  upload. A commission on gate purchases funds the service. If you don't need the gated relay, uploads
42
42
  fall back to the public relay.
43
43
 
44
44
  ## Where the DAO fits
45
45
 
46
- The **[DAO console](/dao/)** doesn't create anything — it *observes*. It reads the platform's
46
+ The **[DAO console](/blockchain/sui/dao/)** doesn't create anything — it *observes*. It reads the platform's
47
47
  on-chain configuration: the treasury address, the **commission rate** charged on Access Gate
48
48
  purchases, the community gates the treasury controls, and a live feed of gate activity (passes sold,
49
49
  used, burned). It's the transparency window over the Access Gate economics.
@@ -57,5 +57,5 @@ capability can. This is the pattern throughout: **economics live in the smart co
57
57
 
58
58
  ## Next
59
59
 
60
- - [DAO](/dao/) · [Walrus Storage](/walrus-storage/) · [Sealed Storage](/sealed-storage/) ·
61
- [Access Gate](/access-gate/)
60
+ - [DAO](/blockchain/sui/dao/) · [Walrus Storage](/blockchain/sui/walrus-storage/) · [Sealed Storage](/blockchain/sui/sealed-storage/) ·
61
+ [Access Gate](/blockchain/sui/access-gate/)
@@ -23,7 +23,7 @@ You do **not** need to connect a wallet to browse it — everything shown is pub
23
23
  - You hold a platform admin capability and want to confirm the tool **detects** it (see
24
24
  [Governance](#governance)).
25
25
 
26
- If you want to *create* a gate, that's the [Access Gate](/access-gate/) tool, not this one.
26
+ If you want to *create* a gate, that's the [Access Gate](/blockchain/sui/access-gate/) tool, not this one.
27
27
 
28
28
  ## The tabs
29
29
 
@@ -41,7 +41,7 @@ name, price, and object ID (linked to a Sui explorer).
41
41
  ### Proposals
42
42
 
43
43
  Reserved for on-chain governance proposals. This is a **placeholder** today — the governance module
44
- isn't deployed yet, so the tab shows an empty state. It will list fundraising/governance proposals
44
+ isn't deployed yet, so the tab shows an empty state. It will list governance proposals
45
45
  when that module ships.
46
46
 
47
47
  ### Governance
@@ -62,7 +62,7 @@ The console finds gates by looking up the **admin capabilities** the treasury ow
62
62
  gate each one controls — rather than replaying historical events. This matters because Sui testnet
63
63
  **prunes** old events after a few months, which would otherwise make a naive event-based count read
64
64
  as zero. The capability-based approach always reflects live reality. (The technical details are in
65
- [Reference](/dao/reference).)
65
+ [Reference](/blockchain/sui/dao/reference).)
66
66
 
67
67
  ## Commission, in one line
68
68
 
@@ -1,4 +1,4 @@
1
- # DAO reference
1
+ # DAO reference
2
2
 
3
3
  Shapes and identifiers the DAO console reads. These are **on-chain** objects and events from the
4
4
  `access_gate` package; the console only displays them.
@@ -81,14 +81,8 @@ Example (as decoded JSON):
81
81
  The console queries each event type independently and merges them, sorted by checkpoint
82
82
  (newest first), tolerating any single type being pruned or unavailable.
83
83
 
84
- ## Roadmap: `vault_dao`
85
-
86
- The **Proposals** and **Governance actions** are placeholders pending an on-chain `vault_dao` module.
87
- When it ships, proposals will be read from its registry; the console's display shapes are already
88
- stable so wiring it in won't change the UI.
89
-
90
84
  ::: tip Developer note
91
- Full SDK/contract API reference (entry functions, exhaustive event schemas) is being consolidated for
92
- `dev.meddleware.co.uk`. The [Access Gate reference](/access-gate/reference) already lists the gate
93
- contract's entry points and events, which is the on-chain source these DAO views read.
85
+ Full SDK/contract API reference (entry functions, exhaustive event schemas) is covered in the
86
+ forthcoming developer documentation. The [Access Gate reference](/blockchain/sui/access-gate/reference) already
87
+ lists the gate contract's entry points and events, which is the on-chain source these DAO views read.
94
88
  :::
@@ -1,4 +1,4 @@
1
- # Getting started
1
+ # Getting started with Sui
2
2
 
3
3
  Everything here runs on [Sui](https://sui.io). You interact with each tool through its hosted web app
4
4
  using a **Sui wallet**. This page covers the basics that apply to all of them.
@@ -41,7 +41,7 @@ Each tool has its own subdomain, and they're all linked from the **tools hub**:
41
41
  Click **Connect** and approve the connection in your wallet. The tools hub shares one wallet
42
42
  connection across every tool embedded in it.
43
43
 
44
- - **Browsing** the [DAO console](/dao/) needs **no wallet** — it's read-only.
44
+ - **Browsing** the [DAO console](/blockchain/sui/dao/) needs **no wallet** — it's read-only.
45
45
  - **Uploading, encrypting, buying, or managing** needs a connected wallet to sign transactions.
46
46
 
47
47
  ## 4. Understand what's on-chain
@@ -54,6 +54,6 @@ the chain says. Anything an app displays can be independently verified on a
54
54
 
55
55
  ## Next steps
56
56
 
57
- - **[How the tools fit together](/architecture)** — the big picture.
58
- - Jump into a tool: [DAO](/dao/) · [Walrus Storage](/walrus-storage/) ·
59
- [Sealed Storage](/sealed-storage/) · [Access Gate](/access-gate/).
57
+ - **[How the tools fit together](/blockchain/sui/architecture)** — the big picture.
58
+ - Jump into a tool: [DAO](/blockchain/sui/dao/) · [Walrus Storage](/blockchain/sui/walrus-storage/) ·
59
+ [Sealed Storage](/blockchain/sui/sealed-storage/) · [Access Gate](/blockchain/sui/access-gate/).
@@ -0,0 +1,41 @@
1
+ # Sui
2
+
3
+ Meddleware's Sui platform is a set of four connected tools — each useful on its own, designed to
4
+ compose. They run against Sui's object model and use Walrus for decentralised storage where needed.
5
+
6
+ ## The tools
7
+
8
+ | Tool | What it does |
9
+ | --- | --- |
10
+ | [DAO](/blockchain/sui/dao/) | A read-only console showing the platform's treasury, commission rate, community access gates, and live on-chain activity |
11
+ | [Walrus Storage](/blockchain/sui/walrus-storage/) | Upload files to Walrus (decentralised blob storage on Sui) and manage how long they live |
12
+ | [Sealed Storage](/blockchain/sui/sealed-storage/) | Client-side encryption layered on Walrus, with the access rule enforced on-chain by a policy you choose |
13
+ | [Access Gate](/blockchain/sui/access-gate/) | Create NFT passes that gate access to content, APIs, or apps — ownership checked on-chain |
14
+
15
+ ## How they fit together
16
+
17
+ The tools are designed to compose. [Sealed Storage](/blockchain/sui/sealed-storage/) uses Walrus for
18
+ storage and optionally [Access Gate](/blockchain/sui/access-gate/) passes as the decryption key. The
19
+ [DAO](/blockchain/sui/dao/) reads the live economics of the Access Gate platform — commission rate,
20
+ treasury, active gates.
21
+
22
+ See **[How the tools fit together](/blockchain/sui/architecture)** for the full picture.
23
+
24
+ ## Apps
25
+
26
+ Each tool has a hosted web app:
27
+
28
+ | Tool | App |
29
+ | --- | --- |
30
+ | Tools hub | [sui.meddleware.co.uk](https://sui.meddleware.co.uk) |
31
+ | DAO console | [sui-dao.meddleware.co.uk](https://sui-dao.meddleware.co.uk) |
32
+ | Walrus Storage | [sui-walrus.meddleware.co.uk](https://sui-walrus.meddleware.co.uk) |
33
+ | Sealed Storage | [sui-seal.meddleware.co.uk](https://sui-seal.meddleware.co.uk) |
34
+ | Access Gate | [sui-access-gate.meddleware.co.uk](https://sui-access-gate.meddleware.co.uk) |
35
+
36
+ New here? **[Getting started with Sui →](/blockchain/sui/getting-started)**
37
+
38
+ ::: tip Developer documentation
39
+ This site covers using the tools. SDK integration, self-hosting, and white-label deployment are
40
+ covered in the forthcoming developer documentation.
41
+ :::
@@ -0,0 +1 @@
1
+ [{"text":"Classes","collapsed":true,"items":[{"text":"PolicyRegistry","link":"/docs/blockchain/sui/sealed-storage/api/classes/PolicyRegistry.md"},{"text":"SealController","link":"/docs/blockchain/sui/sealed-storage/api/classes/SealController.md"}]},{"text":"Interfaces","collapsed":true,"items":[{"text":"EncryptResult","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/EncryptResult.md"},{"text":"FieldSpec","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/FieldSpec.md"},{"text":"FieldSuggestion","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/FieldSuggestion.md"},{"text":"KeyServerConfig","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/KeyServerConfig.md"},{"text":"NftGateParams","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/NftGateParams.md"},{"text":"PolicyDescriptor","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/PolicyDescriptor.md"},{"text":"SealControllerConfig","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SealControllerConfig.md"},{"text":"SealedContentInput","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SealedContentInput.md"},{"text":"SealedContentPointer","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SealedContentPointer.md"},{"text":"SealedManifest","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SealedManifest.md"},{"text":"SealPolicyProvider","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SealPolicyProvider.md"},{"text":"SealSuggestClient","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SealSuggestClient.md"},{"text":"SuggestContext","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/SuggestContext.md"},{"text":"TimeLockParams","link":"/docs/blockchain/sui/sealed-storage/api/interfaces/TimeLockParams.md"}]},{"text":"Type Aliases","collapsed":true,"items":[{"text":"SignPersonalMessage","link":"/docs/blockchain/sui/sealed-storage/api/type-aliases/SignPersonalMessage.md"}]},{"text":"Variables","collapsed":true,"items":[{"text":"nftGateProvider","link":"/docs/blockchain/sui/sealed-storage/api/variables/nftGateProvider.md"},{"text":"timeLockProvider","link":"/docs/blockchain/sui/sealed-storage/api/variables/timeLockProvider.md"}]},{"text":"Functions","collapsed":true,"items":[{"text":"buildPublishSealedContentTx","link":"/docs/blockchain/sui/sealed-storage/api/functions/buildPublishSealedContentTx.md"},{"text":"bytesToHex","link":"/docs/blockchain/sui/sealed-storage/api/functions/bytesToHex.md"},{"text":"concatBytes","link":"/docs/blockchain/sui/sealed-storage/api/functions/concatBytes.md"},{"text":"createDefaultRegistry","link":"/docs/blockchain/sui/sealed-storage/api/functions/createDefaultRegistry.md"},{"text":"createNftGateProvider","link":"/docs/blockchain/sui/sealed-storage/api/functions/createNftGateProvider.md"},{"text":"hexToBytes","link":"/docs/blockchain/sui/sealed-storage/api/functions/hexToBytes.md"},{"text":"objectIdBytes","link":"/docs/blockchain/sui/sealed-storage/api/functions/objectIdBytes.md"},{"text":"randomBytes","link":"/docs/blockchain/sui/sealed-storage/api/functions/randomBytes.md"},{"text":"sealedContentEventType","link":"/docs/blockchain/sui/sealed-storage/api/functions/sealedContentEventType.md"},{"text":"u64beBytes","link":"/docs/blockchain/sui/sealed-storage/api/functions/u64beBytes.md"}]}]
@@ -1,6 +1,6 @@
1
1
  # Sealed Storage
2
2
 
3
- Encrypt a file in your browser, store the ciphertext on [Walrus](/walrus-storage/), and let only the
3
+ Encrypt a file in your browser, store the ciphertext on [Walrus](/blockchain/sui/walrus-storage/), and let only the
4
4
  right people decrypt it — with the access rule enforced **on-chain**. Open the app at
5
5
  [sui-seal.meddleware.co.uk](https://sui-seal.meddleware.co.uk).
6
6
 
@@ -10,7 +10,7 @@ Sealed Storage combines three things:
10
10
 
11
11
  - **[Seal](https://seal-docs.wal.app/)** — threshold encryption where the decryption keys are held by
12
12
  a committee of independent **key servers**, not by any single party (or by Meddleware).
13
- - **[Walrus](/walrus-storage/)** — decentralised storage for the encrypted bytes.
13
+ - **[Walrus](/blockchain/sui/walrus-storage/)** — decentralised storage for the encrypted bytes.
14
14
  - A **policy** — an on-chain rule that decides who is allowed to decrypt.
15
15
 
16
16
  You encrypt under a policy, share a small **manifest** (a pointer), and anyone who satisfies the
@@ -20,11 +20,11 @@ policy can decrypt. Nobody else can — even though the ciphertext itself is sto
20
20
 
21
21
  - You want to store something **private** on public/decentralised storage.
22
22
  - You want access tied to an **on-chain condition** — for example, "only holders of this
23
- [Access Gate](/access-gate/) pass" or "only after a certain time".
23
+ [Access Gate](/blockchain/sui/access-gate/) pass" or "only after a certain time".
24
24
  - You want to **share** encrypted content without running your own key server or handing anyone a raw
25
25
  key.
26
26
 
27
- When plain [Walrus Storage](/walrus-storage/) is enough: if the content isn't sensitive, skip
27
+ When plain [Walrus Storage](/blockchain/sui/walrus-storage/) is enough: if the content isn't sensitive, skip
28
28
  encryption.
29
29
 
30
30
  ## How it works, in three steps
@@ -48,7 +48,7 @@ encryption.
48
48
  Sealing produces a small **manifest** — the portable pointer you share or save. It records the policy
49
49
  type, the encryption **identity**, the Walrus blob ID, the network, and any non-secret parameters
50
50
  (like which gate). It contains **no secrets**; it's just enough to locate the ciphertext and rebuild
51
- the on-chain access check. See [Reference](/sealed-storage/reference).
51
+ the on-chain access check. See [Reference](/blockchain/sui/sealed-storage/reference).
52
52
 
53
53
  ## Who holds the keys?
54
54
 
@@ -63,6 +63,6 @@ committee is available — the app shows a clear notice until then.
63
63
 
64
64
  ## Next
65
65
 
66
- - **[Using it](/sealed-storage/using)** — encrypt, share, and decrypt step by step.
67
- - **[Policies](/sealed-storage/policies)** — the access rules you can choose, and when to use each.
68
- - **[Reference](/sealed-storage/reference)** — manifest shape and the SDK API.
66
+ - **[Walkthrough](/blockchain/sui/sealed-storage/walkthrough)** — encrypt, share, and decrypt step by step.
67
+ - **[Policies](/blockchain/sui/sealed-storage/policies)** — the access rules you can choose, and when to use each.
68
+ - **[Reference](/blockchain/sui/sealed-storage/reference)** — manifest shape and the SDK API.
@@ -1,4 +1,4 @@
1
- # Sealed Storage policies
1
+ # Sealed Storage policies
2
2
 
3
3
  A **policy** is the on-chain rule that decides who may decrypt sealed content. You choose one when you
4
4
  encrypt. Each policy is a self-contained on-chain module with a matching option in the app.
@@ -7,7 +7,7 @@ encrypt. Each policy is a self-contained on-chain module with a matching option
7
7
 
8
8
  ### Access-gate NFT (`nft-gate`)
9
9
 
10
- **Only holders of a valid pass for a chosen [Access Gate](/access-gate/) can decrypt.**
10
+ **Only holders of a valid pass for a chosen [Access Gate](/blockchain/sui/access-gate/) can decrypt.**
11
11
 
12
12
  - **Encrypt with:** the gate's object ID.
13
13
  - **Decrypt with:** the pass NFT you hold for that gate (and whether it's soulbound).
@@ -47,6 +47,6 @@ policy picker automatically as they ship.
47
47
 
48
48
  ::: tip Developer note
49
49
  The mechanics of writing a new policy (the on-chain `seal_approve` module + the matching client
50
- provider) are `dev.meddleware.co.uk` material, planned in the `seal-policies` and `seal-client`
51
- package docs. The [Reference](/sealed-storage/reference) lists the current policy identifiers.
50
+ provider) are covered in the forthcoming developer documentation. The
51
+ [Reference](/blockchain/sui/sealed-storage/reference) lists the current policy identifiers.
52
52
  :::
@@ -1,4 +1,4 @@
1
- # Sealed Storage reference
1
+ # Sealed Storage reference
2
2
 
3
3
  Shapes and identifiers behind Sealed Storage. The **exhaustive, always-current API** is auto-generated
4
4
  from the `@meddleware/seal-client` SDK — see [SDK API](#sdk-api).
@@ -74,6 +74,6 @@ providers, and the manifest/byte helpers — is generated here:
74
74
  - [Seal client API](./api/)
75
75
 
76
76
  ::: tip Writing your own policy?
77
- That's `dev.meddleware.co.uk` material (a `seal_policies` Move module + a matching client provider),
78
- planned in the package docs.
77
+ That's covered in the forthcoming developer documentation (a `seal_policies` Move module + a matching
78
+ client provider).
79
79
  :::
@@ -1,13 +1,13 @@
1
- # Sealed Storage — using it
1
+ # Using Sealed Storage
2
2
 
3
3
  A walkthrough of the [Sealed Storage app](https://sui-seal.meddleware.co.uk). You'll need a
4
- [Sui wallet](/getting-started); browsing policies needs nothing, but decrypting requires a signature.
4
+ [Sui wallet](/blockchain/sui/getting-started); browsing policies needs nothing, but decrypting requires a signature.
5
5
 
6
6
  ## Encrypt and store
7
7
 
8
8
  1. Open the **Encrypt** tab.
9
9
  2. **Choose a file.**
10
- 3. **Pick a policy** (see [Policies](/sealed-storage/policies)). The form adapts to the policy — for
10
+ 3. **Pick a policy** (see [Policies](/blockchain/sui/sealed-storage/policies)). The form adapts to the policy — for
11
11
  an Access Gate policy you select the gate; for a time-lock you pick an unlock time.
12
12
  4. Encrypt. The file is sealed **in your browser** and the ciphertext is uploaded to Walrus.
13
13
  5. You receive a **manifest** — save or share it. It's the pointer needed to decrypt later, and it