@mysten/docs 0.1.1

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 (108) hide show
  1. package/README.md +24 -0
  2. package/dist/bcs/index.md +358 -0
  3. package/dist/bcs/llms-index.md +4 -0
  4. package/dist/codegen/index.md +441 -0
  5. package/dist/codegen/llms-index.md +4 -0
  6. package/dist/dapp-kit/actions/connect-wallet.md +69 -0
  7. package/dist/dapp-kit/actions/disconnect-wallet.md +38 -0
  8. package/dist/dapp-kit/actions/sign-and-execute-transaction.md +96 -0
  9. package/dist/dapp-kit/actions/sign-personal-message.md +58 -0
  10. package/dist/dapp-kit/actions/sign-transaction.md +65 -0
  11. package/dist/dapp-kit/actions/switch-account.md +37 -0
  12. package/dist/dapp-kit/actions/switch-network.md +37 -0
  13. package/dist/dapp-kit/dapp-kit-instance.md +162 -0
  14. package/dist/dapp-kit/getting-started/create-dapp.md +151 -0
  15. package/dist/dapp-kit/getting-started/next-js.md +162 -0
  16. package/dist/dapp-kit/getting-started/react.md +172 -0
  17. package/dist/dapp-kit/getting-started/vue.md +193 -0
  18. package/dist/dapp-kit/index.md +70 -0
  19. package/dist/dapp-kit/llms-index.md +26 -0
  20. package/dist/dapp-kit/react/components/connect-button.md +42 -0
  21. package/dist/dapp-kit/react/components/connect-modal.md +51 -0
  22. package/dist/dapp-kit/react/components/index.md +13 -0
  23. package/dist/dapp-kit/react/dapp-kit-provider.md +86 -0
  24. package/dist/dapp-kit/react/hooks/index.md +25 -0
  25. package/dist/dapp-kit/react/hooks/use-current-account.md +33 -0
  26. package/dist/dapp-kit/react/hooks/use-current-client.md +36 -0
  27. package/dist/dapp-kit/react/hooks/use-current-network.md +28 -0
  28. package/dist/dapp-kit/react/hooks/use-current-wallet.md +36 -0
  29. package/dist/dapp-kit/react/hooks/use-dapp-kit.md +100 -0
  30. package/dist/dapp-kit/react/hooks/use-wallet-connection.md +48 -0
  31. package/dist/dapp-kit/react/hooks/use-wallets.md +33 -0
  32. package/dist/dapp-kit/state.md +169 -0
  33. package/dist/dapp-kit/theming.md +196 -0
  34. package/dist/dapp-kit/web-components/connect-button.md +89 -0
  35. package/dist/dapp-kit/web-components/connect-modal.md +177 -0
  36. package/dist/kiosk/advanced-examples.md +101 -0
  37. package/dist/kiosk/from-v1.md +320 -0
  38. package/dist/kiosk/index.md +22 -0
  39. package/dist/kiosk/kiosk-client/introduction.md +52 -0
  40. package/dist/kiosk/kiosk-client/kiosk-transaction/examples.md +119 -0
  41. package/dist/kiosk/kiosk-client/kiosk-transaction/kiosk-transaction.md +103 -0
  42. package/dist/kiosk/kiosk-client/kiosk-transaction/managing.md +235 -0
  43. package/dist/kiosk/kiosk-client/kiosk-transaction/purchasing.md +110 -0
  44. package/dist/kiosk/kiosk-client/querying.md +237 -0
  45. package/dist/kiosk/kiosk-client/transfer-policy-transaction/introduction.md +79 -0
  46. package/dist/kiosk/kiosk-client/transfer-policy-transaction/using-the-manager.md +115 -0
  47. package/dist/kiosk/llms-index.md +8 -0
  48. package/dist/llms-index.md +125 -0
  49. package/dist/payment-kit/getting-started.md +256 -0
  50. package/dist/payment-kit/index.md +132 -0
  51. package/dist/payment-kit/llms-index.md +8 -0
  52. package/dist/payment-kit/payment-kit-sdk.md +747 -0
  53. package/dist/payment-kit/payment-processing.md +372 -0
  54. package/dist/payment-kit/registry-management.md +529 -0
  55. package/dist/seal/index.md +85 -0
  56. package/dist/seal/llms-index.md +4 -0
  57. package/dist/slush-wallet/dapp.md +95 -0
  58. package/dist/slush-wallet/deep-linking.md +465 -0
  59. package/dist/slush-wallet/index.md +7 -0
  60. package/dist/slush-wallet/llms-index.md +6 -0
  61. package/dist/sui/bcs.md +134 -0
  62. package/dist/sui/clients/core.md +606 -0
  63. package/dist/sui/clients/graphql.md +101 -0
  64. package/dist/sui/clients/grpc.md +155 -0
  65. package/dist/sui/clients/index.md +95 -0
  66. package/dist/sui/clients/json-rpc.md +239 -0
  67. package/dist/sui/cryptography/keypairs.md +267 -0
  68. package/dist/sui/cryptography/multisig.md +194 -0
  69. package/dist/sui/cryptography/passkey.md +111 -0
  70. package/dist/sui/cryptography/webcrypto-signer.md +81 -0
  71. package/dist/sui/executors.md +148 -0
  72. package/dist/sui/faucet.md +26 -0
  73. package/dist/sui/hello-sui.md +115 -0
  74. package/dist/sui/index.md +53 -0
  75. package/dist/sui/install.md +61 -0
  76. package/dist/sui/llm-docs.md +32 -0
  77. package/dist/sui/llms-index.md +44 -0
  78. package/dist/sui/migrations/0.38.md +58 -0
  79. package/dist/sui/migrations/sui-1.0.md +455 -0
  80. package/dist/sui/migrations/sui-2.0/agent-prompt.md +42 -0
  81. package/dist/sui/migrations/sui-2.0/dapp-kit.md +350 -0
  82. package/dist/sui/migrations/sui-2.0/deepbook-v3.md +33 -0
  83. package/dist/sui/migrations/sui-2.0/index.md +158 -0
  84. package/dist/sui/migrations/sui-2.0/json-rpc-migration.md +386 -0
  85. package/dist/sui/migrations/sui-2.0/kiosk.md +120 -0
  86. package/dist/sui/migrations/sui-2.0/sdk-maintainers.md +90 -0
  87. package/dist/sui/migrations/sui-2.0/seal.md +14 -0
  88. package/dist/sui/migrations/sui-2.0/sui.md +341 -0
  89. package/dist/sui/migrations/sui-2.0/suins.md +43 -0
  90. package/dist/sui/migrations/sui-2.0/wallet-builders.md +66 -0
  91. package/dist/sui/migrations/sui-2.0/walrus.md +41 -0
  92. package/dist/sui/migrations/sui-2.0/zksend.md +95 -0
  93. package/dist/sui/plugins.md +258 -0
  94. package/dist/sui/sdk-building.md +344 -0
  95. package/dist/sui/transaction-building/basics.md +299 -0
  96. package/dist/sui/transaction-building/gas.md +62 -0
  97. package/dist/sui/transaction-building/intents.md +62 -0
  98. package/dist/sui/transaction-building/offline.md +73 -0
  99. package/dist/sui/transaction-building/sponsored-transactions.md +22 -0
  100. package/dist/sui/utils/derived_objects.md +59 -0
  101. package/dist/sui/utils/index.md +52 -0
  102. package/dist/sui/zklogin.md +83 -0
  103. package/dist/walrus/index.md +527 -0
  104. package/dist/walrus/llms-index.md +4 -0
  105. package/dist/zksend/index.md +27 -0
  106. package/dist/zksend/link-builder.md +192 -0
  107. package/dist/zksend/llms-index.md +5 -0
  108. package/package.json +66 -0
@@ -0,0 +1,256 @@
1
+ # Getting Started
2
+
3
+ > Install and set up Payment Kit for your Sui dApp
4
+
5
+ > **Note:** This package is in active development and should be used with caution. APIs are experimental and
6
+ > subject to breaking changes without notice. We recommend thoroughly testing any implementation
7
+ > before using in production environments.
8
+
9
+ This guide will help you set up and start using the Payment Kit SDK in your Sui application.
10
+
11
+ ## Prerequisites
12
+
13
+ Before you begin, ensure you have:
14
+
15
+ - A Sui wallet with testnet/mainnet SUI tokens
16
+ - Basic understanding of TypeScript and the Sui blockchain
17
+
18
+ ## Installation
19
+
20
+ Install the Payment Kit SDK and the Sui TypeScript SDK:
21
+
22
+ ```bash npm2yarn
23
+ npm install --save @mysten/payment-kit @mysten/sui
24
+ ```
25
+
26
+ ## Setting Up the Client
27
+
28
+ The Payment Kit SDK extends the standard `SuiGrpcClient` to provide payment functionality. Here's
29
+ how to set it up:
30
+
31
+ ```ts
32
+
33
+ // Create a Sui client with Payment Kit extension
34
+ const client = new SuiGrpcClient({
35
+ network: 'testnet',
36
+ baseUrl: 'https://fullnode.testnet.sui.io:443',
37
+ }).$extend(paymentKit());
38
+ ```
39
+
40
+ The client will automatically configure the correct package IDs for the network you're using
41
+ (testnet or mainnet).
42
+
43
+ ## Your First Payment
44
+
45
+ Let's process a simple registry-based payment using the default payment registry:
46
+
47
+ ```ts
48
+
49
+ // Create or load your keypair
50
+ const keypair = Ed25519Keypair.generate();
51
+ const sender = keypair.getPublicKey().toSuiAddress();
52
+
53
+ // Create the payment transaction
54
+ const tx = client.paymentKit.tx.processRegistryPayment({
55
+ nonce: crypto.randomUUID(), // Unique identifier for this payment
56
+ coinType: '0x2::sui::SUI', // Coin type (SUI in this case)
57
+ amount: 1n * MIST_PER_SUI, // 1 SUI (in MIST)
58
+ receiver,
59
+ sender: sender,
60
+ });
61
+
62
+ // Sign and execute
63
+ const result = await client.signAndExecuteTransaction({
64
+ transaction: tx,
65
+ signer: keypair,
66
+ options: {
67
+ showEffects: true,
68
+ showEvents: true,
69
+ },
70
+ });
71
+
72
+ // Check transaction status
73
+ if (result.$kind === 'FailedTransaction') {
74
+ throw new Error(`Payment failed: ${result.FailedTransaction.status.error?.message}`);
75
+ }
76
+
77
+ console.log('Payment processed:', result.Transaction.digest);
78
+ ```
79
+
80
+ ## Understanding the Payment
81
+
82
+ In this example:
83
+
84
+ 1. **Nonce**: A unique identifier (UUIDv4) that prevents duplicate payments when using a registry
85
+ 2. **Coin Type**: The type of coin being transferred (SUI token)
86
+ 3. **Amount**: The payment amount in the smallest unit (MIST for SUI)
87
+ 4. **Receiver**: The address receiving the payment
88
+ 5. **Sender**: The address sending the payment (must match the transaction signer)
89
+ 6. **Registry Name**: The payment registry to use (defaults to `DEFAULT_REGISTRY_NAME`)
90
+
91
+ ## Verifying the Payment
92
+
93
+ After processing a payment, you can query the payment record to verify it exists:
94
+
95
+ ```ts
96
+ // Query the payment record
97
+ const paymentRecord = await client.paymentKit.getPaymentRecord({
98
+ nonce: crypto.randomUUID(),
99
+ coinType: '0x2::sui::SUI',
100
+ amount: 1n * MIST_PER_SUI,
101
+ receiver,
102
+ });
103
+
104
+ if (paymentRecord) {
105
+ console.log('Payment verified!');
106
+ console.log('Transaction:', paymentRecord.paymentTransactionDigest);
107
+ console.log('Epoch:', paymentRecord.epochAtTimeOfRecord);
108
+ } else {
109
+ console.log('Payment not found');
110
+ }
111
+ ```
112
+
113
+ ## Processing an Ephemeral Payment
114
+
115
+ If you don't need duplicate prevention or persistent storage, use ephemeral payments:
116
+
117
+ ```ts
118
+ const tx = client.paymentKit.tx.processEphemeralPayment({
119
+ nonce: crypto.randomUUID(),
120
+ coinType: '0x2::sui::SUI',
121
+ amount: 1n * MIST_PER_SUI,
122
+ receiver,
123
+ sender: sender,
124
+ });
125
+
126
+ const result = await client.signAndExecuteTransaction({
127
+ transaction: tx,
128
+ signer: keypair,
129
+ });
130
+
131
+ // Check transaction status
132
+ if (result.$kind === 'FailedTransaction') {
133
+ throw new Error(`Ephemeral payment failed: ${result.FailedTransaction.status.error?.message}`);
134
+ }
135
+
136
+ console.log('Ephemeral payment processed:', result.Transaction.digest);
137
+ ```
138
+
139
+ Ephemeral payments:
140
+
141
+ - Don't create a `PaymentRecord`
142
+ - Don't prevent duplicates
143
+ - Still emit a `PaymentReceipt` event
144
+ - Have lower gas costs
145
+
146
+ ## Working with Different Coin Types
147
+
148
+ Payment Kit supports any Sui coin type. Here's how to process payments with custom coins:
149
+
150
+ ```ts
151
+ // Example with a custom coin type
152
+ const customCoinType = '0xabcd...::my_coin::MY_COIN';
153
+
154
+ const tx = client.paymentKit.tx.processRegistryPayment({
155
+ nonce: crypto.randomUUID(),
156
+ coinType: customCoinType,
157
+ amount: 5000,
158
+ receiver,
159
+ sender: sender,
160
+ });
161
+
162
+ // Execute the transaction
163
+ const result = await client.signAndExecuteTransaction({
164
+ transaction: tx,
165
+ signer: keypair,
166
+ });
167
+ ```
168
+
169
+ ## Error Handling
170
+
171
+ Always wrap payment operations in try-catch blocks:
172
+
173
+ ```ts
174
+ try {
175
+ const tx = client.paymentKit.tx.processRegistryPayment({...});
176
+ const result = await client.signAndExecuteTransaction({
177
+ transaction: tx,
178
+ signer: keypair,
179
+ });
180
+
181
+ if (result.$kind === 'FailedTransaction') {
182
+ throw new Error(`Payment failed: ${result.FailedTransaction.status.error?.message}`);
183
+ }
184
+
185
+ console.log('Success:', result.Transaction.digest);
186
+ } catch (error) {
187
+ if (error.message.includes('Duplicate')) {
188
+ console.error('Payment already processed');
189
+ } else if (error.message.includes('insufficient')) {
190
+ console.error('Insufficient balance');
191
+ } else {
192
+ console.error('Payment failed:', error.message);
193
+ }
194
+ }
195
+ ```
196
+
197
+ ## Creating Payment URIs
198
+
199
+ Payment Kit provides helper functions to create and parse Payment Kit transaction URIs. These URIs
200
+ are useful for generating payment links, QR codes, or deep links in your application:
201
+
202
+ ```ts
203
+
204
+ // Create a payment URI
205
+ const paymentUri = createPaymentTransactionUri({
206
+ receiverAddress: '0x123...abc',
207
+ amount: 1000000000n, // 1 SUI in MIST
208
+ coinType: '0x2::sui::SUI',
209
+ nonce: crypto.randomUUID(),
210
+ label: 'Coffee Payment',
211
+ message: 'Payment for espresso',
212
+ registryName: 'my-registry', // Optional: specify a registry name
213
+ // Or use registryId: '0x...' for a specific registry object ID
214
+ });
215
+
216
+ console.log(paymentUri);
217
+ // Output: sui:pay?receiver=0x123...abc&amount=1000000000&coinType=0x2%3A%3Asui%3A%3ASUI&nonce=...&label=Coffee%20Payment&message=Payment%20for%20espresso&registry=my-registry
218
+ ```
219
+
220
+ The URI parameters include:
221
+
222
+ - **receiver**: The Sui address receiving the payment (required)
223
+ - **amount**: The payment amount as a positive bigint (required)
224
+ - **coinType**: The coin type being transferred (required)
225
+ - **nonce**: A unique identifier up to 36 characters (required)
226
+ - **registry**: Either a registry name or object ID (optional)
227
+ - **label**: A short label for the payment (optional)
228
+ - **message**: A longer description message (optional)
229
+ - **iconUrl**: URL to an icon for display purposes (optional)
230
+
231
+ You can then parse URIs back into payment parameters:
232
+
233
+ ```ts
234
+
235
+ // Parse a payment URI
236
+ const params = parsePaymentTransactionUri(paymentUri);
237
+ // Returns: { receiverAddress, amount, coinType, nonce, label?, message?, iconUrl?, registryName? | registryId? }
238
+
239
+ // Use the parsed parameters to create a transaction
240
+ const tx = client.paymentKit.tx.processRegistryPayment({
241
+ receiver: params.receiverAddress,
242
+ amount: params.amount,
243
+ coinType: params.coinType,
244
+ nonce: params.nonce,
245
+ registryName: params.registryName,
246
+ sender: sender,
247
+ });
248
+ ```
249
+
250
+ ## Next Steps
251
+
252
+ Now that you understand the basics, explore more advanced features:
253
+
254
+ - [Payment Processing](./payment-processing) - Deep dive into payment models
255
+ - [Registry Management](./registry-management) - Create and configure custom registries
256
+ - [SDK API Reference](./payment-kit-sdk) - Complete SDK API documentation
@@ -0,0 +1,132 @@
1
+ # Payment Kit
2
+
3
+ > Accept payments in any coin type on Sui
4
+
5
+ > **Note:** This package is in active development and should be used with caution. APIs are experimental and
6
+ > subject to breaking changes without notice. We recommend thoroughly testing any implementation
7
+ > before using in production environments.
8
+
9
+ The Sui Payment Kit SDK is a TypeScript library that provides a simple and secure way to process
10
+ blockchain payments on the Sui network. It offers flexible payment processing with built-in
11
+ duplicate prevention, configurable payment registries, and comprehensive receipt management.
12
+
13
+ ## Overview
14
+
15
+ Payment Kit enables developers to integrate secure payment processing into their Sui applications
16
+ with minimal setup. The SDK provides two payment models:
17
+
18
+ - **Registry-based payments**: Persistent payment records with duplicate prevention and configurable
19
+ expiration
20
+ - **Ephemeral payments**: Lightweight payment processing without persistent storage
21
+
22
+ All payments emit a `PaymentReceipt` that can be stored off-chain for verification and
23
+ record-keeping.
24
+
25
+ ## Key Features
26
+
27
+ - **Duplicate Prevention**: Registry-based payments automatically prevent duplicate transactions
28
+ - **Flexible Payment Models**: Choose between registry-based or ephemeral payment processing
29
+ - **Payment Registries**: Create and manage custom payment registries with configurable policies
30
+ - **Receipt Management**: Automatic receipt generation for all payments
31
+ - **Multi-coin Support**: Process payments with any Sui coin type
32
+ - **Configurable Expiration**: Set custom expiration policies for payment records
33
+ - **Fund Management**: Optional registry-managed funds for simplified coin handling
34
+
35
+ ## Installation
36
+
37
+ ```bash npm2yarn
38
+ npm install --save @mysten/payment-kit @mysten/sui
39
+ ```
40
+
41
+ ## Quick Start
42
+
43
+ ```ts
44
+
45
+ // Create a Sui client with a Payment Kit extension
46
+ const client = new SuiGrpcClient({
47
+ network: 'testnet',
48
+ baseUrl: 'https://fullnode.testnet.sui.io:443',
49
+ }).$extend(paymentKit());
50
+
51
+ // Process a registry-based payment
52
+ const tx = client.paymentKit.tx.processRegistryPayment({
53
+ nonce: crypto.randomUUID(),
54
+ coinType: '0x2::sui::SUI',
55
+ amount: 1n * MIST_PER_SUI, // 1 SUI in MIST
56
+ receiver: '0x123...abc',
57
+ sender: '0x456...def',
58
+ });
59
+
60
+ // Sign and execute the transaction
61
+ const result = await client.signAndExecuteTransaction({
62
+ transaction: tx,
63
+ signer: keypair,
64
+ });
65
+
66
+ // Check transaction status
67
+ if (result.$kind === 'FailedTransaction') {
68
+ throw new Error(`Payment failed: ${result.FailedTransaction.status.error?.message}`);
69
+ }
70
+ ```
71
+
72
+ ## Network Support
73
+
74
+ Payment Kit supports the following Sui networks:
75
+
76
+ - **Mainnet**: Production environment
77
+ - **Testnet**: Testing environment
78
+
79
+ The SDK automatically configures the correct package and object IDs based on the network specified
80
+ in your `SuiGrpcClient` configuration.
81
+
82
+ ## Core Concepts
83
+
84
+ ### Payment Processing
85
+
86
+ Payment Kit offers two distinct payment processing models to suit different application needs:
87
+
88
+ 1. **Registry-based Payments**: Creates a persistent `PaymentRecord` that prevents duplicate
89
+ payments and provides verifiable proof of payment
90
+ 2. **Ephemeral Payments**: Processes payments without persistent storage, suitable for scenarios
91
+ where duplicate prevention is handled externally
92
+
93
+ ### Payment Registries
94
+
95
+ A `PaymentRegistry` manages payment records and configurations. Benefits include:
96
+
97
+ - Centralized payment tracking
98
+ - Configurable expiration policies
99
+ - Optional fund management
100
+ - Custom naming for easy identification and indexing
101
+
102
+ ### Payment Records
103
+
104
+ When using registry-based payments, a `PaymentRecord` is created as a Dynamic Field on the registry.
105
+ Records are identified by a composite key derived from:
106
+
107
+ - Payment nonce (unique identifier)
108
+ - Payment amount
109
+ - Coin type
110
+ - Receiver address
111
+
112
+ ### Payment Receipts
113
+
114
+ Every payment (registry-based or ephemeral) emits a `PaymentReceipt` event containing:
115
+
116
+ ```ts
117
+ type PaymentReceipt = {
118
+ paymentType: 'Registry' | 'Ephemeral';
119
+ nonce: string;
120
+ amount: number;
121
+ receiver: string;
122
+ coinType: string;
123
+ timestampMs: number;
124
+ };
125
+ ```
126
+
127
+ ## Next Steps
128
+
129
+ - [Getting Started Guide](/payment-kit/getting-started) - Detailed setup and usage instructions
130
+ - [Payment Processing](/payment-kit/payment-processing) - Learn about different payment models
131
+ - [Registry Management](/payment-kit/registry-management) - Create and configure payment registries
132
+ - [SDK API Reference](/payment-kit/payment-kit-sdk) - Complete SDK API documentation
@@ -0,0 +1,8 @@
1
+ # Payment Kit
2
+ > Accept payments in any coin type on Sui
3
+
4
+ - [Payment Kit](./index.md): Accept payments in any coin type on Sui
5
+ - [Getting Started](./getting-started.md): Install and set up Payment Kit for your Sui dApp
6
+ - [Payment Kit SDK](./payment-kit-sdk.md): Payment Kit SDK API reference and configuration
7
+ - [Payment Processing](./payment-processing.md): Process payments and handle transaction results
8
+ - [Registry Management](./registry-management.md): Manage payment registries and accepted coin types