@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.
- package/CHANGELOG.md +22 -0
- package/docs/.vitepress/config.ts +45 -28
- package/docs/blockchain/index.md +18 -0
- package/docs/{access-gate → blockchain/sui/access-gate}/api/index.md +1 -0
- package/docs/blockchain/sui/access-gate/api/interfaces/CoreObject.md +31 -0
- package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedObjectsClient.md +2 -2
- package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/SuiObjectClient.md +2 -2
- package/docs/blockchain/sui/access-gate/api/typedoc-sidebar.json +1 -0
- package/docs/{access-gate → blockchain/sui/access-gate}/index.md +5 -5
- package/docs/{access-gate → blockchain/sui/access-gate}/reference.md +6 -7
- package/docs/{access-gate/using.md → blockchain/sui/access-gate/walkthrough.md} +3 -3
- package/docs/{architecture.md → blockchain/sui/architecture.md} +6 -6
- package/docs/{dao → blockchain/sui/dao}/index.md +3 -3
- package/docs/{dao → blockchain/sui/dao}/reference.md +4 -10
- package/docs/{getting-started.md → blockchain/sui/getting-started.md} +5 -5
- package/docs/blockchain/sui/index.md +41 -0
- package/docs/blockchain/sui/sealed-storage/api/typedoc-sidebar.json +1 -0
- package/docs/{sealed-storage → blockchain/sui/sealed-storage}/index.md +8 -8
- package/docs/{sealed-storage → blockchain/sui/sealed-storage}/policies.md +4 -4
- package/docs/{sealed-storage → blockchain/sui/sealed-storage}/reference.md +3 -3
- package/docs/{sealed-storage/using.md → blockchain/sui/sealed-storage/walkthrough.md} +3 -3
- package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/index.md +2 -0
- package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/CreateWalrusClientOptions.md +1 -1
- package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/UploadOptions.md +1 -1
- package/docs/blockchain/sui/walrus-storage/api/type-aliases/WalrusClientNetwork.md +8 -0
- package/docs/blockchain/sui/walrus-storage/api/typedoc-sidebar.json +1 -0
- package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/LONG_TERM_EPOCHS.md +1 -1
- package/docs/blockchain/sui/walrus-storage/api/variables/MAX_SINGLE_RESERVATION_EPOCHS.md +10 -0
- package/docs/{walrus-storage → blockchain/sui/walrus-storage}/index.md +5 -5
- package/docs/{walrus-storage → blockchain/sui/walrus-storage}/reference.md +4 -4
- package/docs/{walrus-storage/using.md → blockchain/sui/walrus-storage/walkthrough.md} +5 -5
- package/docs/index.md +14 -47
- package/package.json +4 -4
- package/scripts/gen-api.mjs +3 -3
- package/docs/access-gate/api/typedoc-sidebar.json +0 -1
- package/docs/sealed-storage/api/typedoc-sidebar.json +0 -1
- package/docs/walrus-storage/api/typedoc-sidebar.json +0 -1
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildAccessProof.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildAirdropTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildConsumeTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildCreateGateTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildMakeGateImmutableTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildPurchaseTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetAutoBurnAtZeroTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetDefaultUsesTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetNftDescriptionTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetNftImageUrlTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetNftNameTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetPausedTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetPaymentRecipientTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetPriceTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/buildSetSoulboundTx.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/decodeAccessProof.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/encodeAccessProof.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchAccessNftById.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchAccessNfts.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchAdminCaps.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchChallenge.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchGate.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/fetchOwnedGates.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/ownsAccessNft.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/parseAdminCap.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/parseGate.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/parseOwnedAccessNft.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/functions/personalMessageForNonce.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/AccessGateConfig.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/AccessProof.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/Challenge.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/GateAdminContext.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedAccessNft.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedGate.md +0 -0
- /package/docs/{access-gate → blockchain/sui/access-gate}/api/type-aliases/PersonalMessageSigner.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/classes/PolicyRegistry.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/classes/SealController.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/buildPublishSealedContentTx.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/bytesToHex.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/concatBytes.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/createDefaultRegistry.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/createNftGateProvider.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/hexToBytes.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/objectIdBytes.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/randomBytes.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/sealedContentEventType.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/functions/u64beBytes.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/index.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/EncryptResult.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/FieldSpec.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/FieldSuggestion.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/KeyServerConfig.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/NftGateParams.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/PolicyDescriptor.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealControllerConfig.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealPolicyProvider.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealSuggestClient.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealedContentInput.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealedContentPointer.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SealedManifest.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/SuggestContext.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/interfaces/TimeLockParams.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/type-aliases/SignPersonalMessage.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/variables/nftGateProvider.md +0 -0
- /package/docs/{sealed-storage → blockchain/sui/sealed-storage}/api/variables/timeLockProvider.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/classes/RetryableWalrusClientError.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/classes/WalrusFile.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/buildAccessProofToken.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/certifyBlobTransaction.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createBlobUploadFlow.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createRelayAccessToken.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createUploadFlow.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/createWalrusClient.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/estimateStorageCost.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/extendBlobLifetime.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/extendBlobLifetimeTransaction.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/fetchOwnedWalrusBlobs.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/fetchRelayChallenge.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/getWalrusPackageConfig.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/personalMessageForNonce.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/readBlobAttributes.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/setBlobAttributes.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/setBlobAttributesTransaction.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/uploadBytes.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/uploadImageBytes.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/uploadLocalFile.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/functions/walrusBlobUrl.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/interfaces/CertifyOptions.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/interfaces/StorageCost.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/AccessProofInput.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/ExtendOptions.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/OwnedBlob.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/PersonalMessageSigner.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/RelayChallenge.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/UploadResult.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/WalrusClient.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/type-aliases/WalrusNetwork.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/DEFAULT_RPC_URLS.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/MAINNET_WALRUS_PACKAGE_CONFIG.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/PUBLIC_UPLOAD_RELAY_HOSTS.md +0 -0
- /package/docs/{walrus-storage → blockchain/sui/walrus-storage}/api/variables/TESTNET_WALRUS_PACKAGE_CONFIG.md +0 -0
- /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
|
|
5
|
-
// Output is pinned to the repo-root dist/ so
|
|
6
|
-
//
|
|
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
|
-
'
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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
|
|
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
|
package/docs/{access-gate → blockchain/sui/access-gate}/api/interfaces/OwnedObjectsClient.md
RENAMED
|
@@ -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
|
-
- **[
|
|
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
|
|
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
|
|
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
|
-
|
|
110
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
92
|
-
|
|
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
|
-
- **[
|
|
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
|
|
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
|
|
51
|
-
|
|
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
|
|
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
|
|
78
|
-
|
|
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
|
|
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
|