@bsv/sdk 1.9.2 → 1.9.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 (93) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/kvstore/GlobalKVStore.js +116 -98
  3. package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
  4. package/dist/cjs/src/kvstore/types.js.map +1 -1
  5. package/dist/cjs/src/overlay-tools/index.js +1 -0
  6. package/dist/cjs/src/overlay-tools/index.js.map +1 -1
  7. package/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js +55 -0
  8. package/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js.map +1 -0
  9. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  10. package/dist/esm/src/kvstore/GlobalKVStore.js +117 -99
  11. package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
  12. package/dist/esm/src/kvstore/types.js.map +1 -1
  13. package/dist/esm/src/overlay-tools/index.js +1 -0
  14. package/dist/esm/src/overlay-tools/index.js.map +1 -1
  15. package/dist/esm/src/overlay-tools/withDoubleSpendRetry.js +48 -0
  16. package/dist/esm/src/overlay-tools/withDoubleSpendRetry.js.map +1 -0
  17. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  18. package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
  19. package/dist/types/src/kvstore/types.d.ts +2 -0
  20. package/dist/types/src/kvstore/types.d.ts.map +1 -1
  21. package/dist/types/src/overlay-tools/index.d.ts +1 -0
  22. package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
  23. package/dist/types/src/overlay-tools/withDoubleSpendRetry.d.ts +14 -0
  24. package/dist/types/src/overlay-tools/withDoubleSpendRetry.d.ts.map +1 -0
  25. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  26. package/dist/umd/bundle.js +2 -2
  27. package/dist/umd/bundle.js.map +1 -1
  28. package/docs/fast-docs.png +0 -0
  29. package/docs/index.md +49 -44
  30. package/docs/reference/kvstore.md +9 -0
  31. package/docs/reference/overlay-tools.md +32 -0
  32. package/docs/swagger.png +0 -0
  33. package/package.json +1 -1
  34. package/src/kvstore/GlobalKVStore.ts +134 -114
  35. package/src/kvstore/__tests/GlobalKVStore.test.ts +11 -1
  36. package/src/kvstore/types.ts +2 -0
  37. package/src/overlay-tools/index.ts +1 -0
  38. package/src/overlay-tools/withDoubleSpendRetry.ts +71 -0
  39. package/docs/MARKDOWN_VALIDATION_GUIDE.md +0 -175
  40. package/docs/concepts/beef.md +0 -92
  41. package/docs/concepts/chain-tracking.md +0 -134
  42. package/docs/concepts/decentralized-identity.md +0 -221
  43. package/docs/concepts/fees.md +0 -249
  44. package/docs/concepts/identity-certificates.md +0 -307
  45. package/docs/concepts/index.md +0 -77
  46. package/docs/concepts/key-management.md +0 -185
  47. package/docs/concepts/script-templates.md +0 -176
  48. package/docs/concepts/sdk-philosophy.md +0 -80
  49. package/docs/concepts/signatures.md +0 -194
  50. package/docs/concepts/spv-verification.md +0 -118
  51. package/docs/concepts/transaction-encoding.md +0 -167
  52. package/docs/concepts/transaction-structure.md +0 -67
  53. package/docs/concepts/trust-model.md +0 -139
  54. package/docs/concepts/verification.md +0 -250
  55. package/docs/concepts/wallet-integration.md +0 -101
  56. package/docs/guides/development-wallet-setup.md +0 -374
  57. package/docs/guides/direct-transaction-creation.md +0 -147
  58. package/docs/guides/http-client-configuration.md +0 -488
  59. package/docs/guides/index.md +0 -138
  60. package/docs/guides/large-transactions.md +0 -448
  61. package/docs/guides/multisig-transactions.md +0 -792
  62. package/docs/guides/security-best-practices.md +0 -494
  63. package/docs/guides/transaction-batching.md +0 -132
  64. package/docs/guides/transaction-signing-methods.md +0 -419
  65. package/docs/reference/arc-config.md +0 -698
  66. package/docs/reference/brc-100.md +0 -33
  67. package/docs/reference/configuration.md +0 -835
  68. package/docs/reference/debugging.md +0 -705
  69. package/docs/reference/errors.md +0 -597
  70. package/docs/reference/index.md +0 -111
  71. package/docs/reference/network-config.md +0 -914
  72. package/docs/reference/op-codes.md +0 -325
  73. package/docs/reference/transaction-signatures.md +0 -95
  74. package/docs/tutorials/advanced-transaction.md +0 -572
  75. package/docs/tutorials/aes-encryption.md +0 -949
  76. package/docs/tutorials/authfetch-tutorial.md +0 -986
  77. package/docs/tutorials/ecdh-key-exchange.md +0 -549
  78. package/docs/tutorials/elliptic-curve-fundamentals.md +0 -606
  79. package/docs/tutorials/error-handling.md +0 -1216
  80. package/docs/tutorials/first-transaction-low-level.md +0 -205
  81. package/docs/tutorials/first-transaction.md +0 -275
  82. package/docs/tutorials/hashes-and-hmacs.md +0 -788
  83. package/docs/tutorials/identity-management.md +0 -729
  84. package/docs/tutorials/index.md +0 -219
  85. package/docs/tutorials/key-management.md +0 -538
  86. package/docs/tutorials/protowallet-development.md +0 -743
  87. package/docs/tutorials/script-construction.md +0 -690
  88. package/docs/tutorials/spv-merkle-proofs.md +0 -685
  89. package/docs/tutorials/testnet-transactions-low-level.md +0 -359
  90. package/docs/tutorials/transaction-broadcasting.md +0 -538
  91. package/docs/tutorials/transaction-types.md +0 -420
  92. package/docs/tutorials/type-42.md +0 -568
  93. package/docs/tutorials/uhrp-storage.md +0 -599
@@ -1,249 +0,0 @@
1
- # Transaction Fees
2
-
3
- Understanding Bitcoin transaction fees and how they work in the BSV TypeScript SDK.
4
-
5
- ## What are Transaction Fees?
6
-
7
- Transaction fees are payments to miners for including transactions in blocks:
8
-
9
- ```typescript
10
- import { Transaction } from '@bsv/sdk'
11
-
12
- // Calculate transaction fee
13
- const tx = new Transaction()
14
- const feeRequired = tx.getFee()
15
-
16
- // Set custom fee rate
17
- const customFee = tx.getFee(feePerKB)
18
- ```
19
-
20
- ## Fee Calculation
21
-
22
- Fees are calculated based on transaction size:
23
-
24
- - **Fee Rate**: Satoshis per kilobyte (sat/kB)
25
- - **Transaction Size**: Total bytes in serialized transaction
26
- - **Total Fee**: Size × Fee Rate
27
-
28
- ## SDK Fee Handling
29
-
30
- ### Automatic Fee Calculation
31
-
32
- The SDK calculates fees automatically:
33
-
34
- ```typescript
35
- // Wallet handles fees automatically
36
- const wallet = new WalletClient()
37
- const action = await wallet.createAction({
38
- outputs: [{
39
- satoshis: 1000,
40
- lockingScript: script
41
- }]
42
- })
43
- // Fee calculated and deducted automatically
44
- ```
45
-
46
- ### Manual Fee Control
47
-
48
- For advanced use cases:
49
-
50
- ```typescript
51
- // Calculate fee manually
52
- const tx = new Transaction()
53
- tx.addInput(/* input */)
54
- tx.addOutput(/* output */)
55
-
56
- const estimatedSize = tx.getSerializedSize()
57
- const feeRequired = estimatedSize * feePerByte
58
- ```
59
-
60
- ## Fee Rates
61
-
62
- ### Network Fee Rates
63
-
64
- BSV typically uses low, predictable fees:
65
-
66
- - **Standard Rate**: ~0.5 sat/byte
67
- - **Priority Rate**: ~1.0 sat/byte
68
- - **Economy Rate**: ~0.1 sat/byte
69
-
70
- ### Dynamic Fee Estimation
71
-
72
- ```typescript
73
- // Get current network fee rates
74
- const feeRates = await chainTracker.getFeeRates()
75
- const recommendedFee = feeRates.standard
76
- ```
77
-
78
- ## Fee Components
79
-
80
- ### Input Costs
81
-
82
- Each input adds to transaction size:
83
-
84
- - Previous transaction hash (32 bytes)
85
- - Output index (4 bytes)
86
- - Unlocking script (variable)
87
- - Sequence number (4 bytes)
88
-
89
- ### Output Costs
90
-
91
- Each output adds to transaction size:
92
-
93
- - Value (8 bytes)
94
- - Locking script length (1-9 bytes)
95
- - Locking script (variable)
96
-
97
- ### Base Transaction
98
-
99
- Fixed overhead for every transaction:
100
-
101
- - Version (4 bytes)
102
- - Input count (1-9 bytes)
103
- - Output count (1-9 bytes)
104
- - Lock time (4 bytes)
105
-
106
- ## Fee Optimization
107
-
108
- ### UTXO Selection
109
-
110
- Choose UTXOs efficiently:
111
-
112
- ```typescript
113
- // Prefer fewer, larger UTXOs to reduce fees
114
- const utxos = await wallet.getUTXOs()
115
- const selected = selectOptimalUTXOs(utxos, targetAmount)
116
- ```
117
-
118
- ### Output Consolidation
119
-
120
- Combine multiple payments:
121
-
122
- ```typescript
123
- // Batch multiple outputs in one transaction
124
- const outputs = [
125
- { satoshis: 1000, lockingScript: script1 },
126
- { satoshis: 2000, lockingScript: script2 },
127
- { satoshis: 1500, lockingScript: script3 }
128
- ]
129
- ```
130
-
131
- ### Script Efficiency
132
-
133
- Use efficient script templates:
134
-
135
- ```typescript
136
- // P2PKH is more efficient than complex scripts
137
- const p2pkh = new P2PKH()
138
- const efficientScript = p2pkh.lock(publicKeyHash)
139
- ```
140
-
141
- ## Fee Estimation
142
-
143
- ### Size Estimation
144
-
145
- Estimate transaction size before creation:
146
-
147
- ```typescript
148
- // Estimate size for fee calculation
149
- const estimatedInputs = 2
150
- const estimatedOutputs = 3
151
- const estimatedSize = estimateTransactionSize(estimatedInputs, estimatedOutputs)
152
- const estimatedFee = estimatedSize * feeRate
153
- ```
154
-
155
- ### Template-Based Estimation
156
-
157
- ```typescript
158
- // Use script templates for accurate estimation
159
- const template = new P2PKH()
160
- const scriptSize = template.estimateLength([publicKeyHash])
161
- ```
162
-
163
- ## Error Handling
164
-
165
- Common fee-related issues:
166
-
167
- - Insufficient funds for fees
168
- - Fee rate too low for network
169
- - Transaction size miscalculation
170
-
171
- ```typescript
172
- try {
173
- const action = await wallet.createAction({
174
- outputs: outputs
175
- })
176
- } catch (error) {
177
- if (error.message.includes('Insufficient funds')) {
178
- // Handle insufficient balance for fees
179
- console.log('Not enough funds to cover transaction and fees')
180
- }
181
- }
182
- ```
183
-
184
- ## Best Practices
185
-
186
- ### Fee Management
187
-
188
- - Always account for fees in balance calculations
189
- - Use appropriate fee rates for urgency
190
- - Monitor network conditions for fee adjustments
191
- - Implement fee estimation before transaction creation
192
-
193
- ### Cost Optimization
194
-
195
- - Batch transactions when possible
196
- - Use efficient script templates
197
- - Optimize UTXO selection
198
- - Consider transaction timing
199
-
200
- ### User Experience
201
-
202
- - Display estimated fees to users
203
- - Provide fee rate options (economy, standard, priority)
204
- - Handle insufficient fund errors gracefully
205
- - Show fee breakdown for transparency
206
-
207
- ## Wallet Integration
208
-
209
- Most applications rely on wallets for fee handling:
210
-
211
- ```typescript
212
- // Wallet manages fees automatically
213
- const wallet = new WalletClient()
214
-
215
- // Fees are calculated and deducted automatically
216
- const result = await wallet.createAction({
217
- description: 'Payment with automatic fees',
218
- outputs: [/* outputs */]
219
- })
220
- ```
221
-
222
- ## Advanced Fee Strategies
223
-
224
- ### Replace-by-Fee (RBF)
225
-
226
- Increase fees for faster confirmation:
227
-
228
- ```typescript
229
- // Create transaction with RBF enabled
230
- const tx = new Transaction()
231
- tx.setRBF(true) // Enable replace-by-fee
232
- ```
233
-
234
- ### Child-Pays-for-Parent (CPFP)
235
-
236
- Use dependent transactions to increase effective fee rate:
237
-
238
- ```typescript
239
- // Create child transaction with higher fee
240
- const childTx = new Transaction()
241
- childTx.addInput(/* from parent transaction */)
242
- // Higher fee rate pulls parent transaction along
243
- ```
244
-
245
- ## Next Steps
246
-
247
- - Understand [Transaction Structure](./transaction-structure.md) for size calculation
248
- - Learn about [Wallet Integration](./wallet-integration.md) for automatic fee handling
249
- - Explore [Script Templates](./script-templates.md) for efficient fee optimization
@@ -1,307 +0,0 @@
1
- # Identity Certificates
2
-
3
- Understanding how cryptographic certificates work to establish trust and verify identity claims in decentralized systems.
4
-
5
- ## What are Identity Certificates?
6
-
7
- Think of identity certificates as digital testimonials that can't be forged. Just like a diploma proves you graduated from a university, or a driver's license proves you're authorized to drive, identity certificates prove specific claims about who you are or what you're authorized to do.
8
-
9
- The key difference is that these digital certificates use cryptographic signatures instead of physical security features, making them verifiable by anyone with the right tools, anywhere in the world.
10
-
11
- ## How Certificates Create Trust
12
-
13
- ### The Trust Problem
14
-
15
- In the digital world, it's easy to claim anything about yourself. Anyone can create a website saying they're a doctor, lawyer, or certified professional. How do you know who to trust?
16
-
17
- ### The Certificate Solution
18
-
19
- Certificates solve this by having trusted third parties vouch for specific claims. When a university issues you a digital diploma certificate, they're cryptographically signing a statement that says "We verify that this person graduated from our program."
20
-
21
- Anyone can then verify:
22
-
23
- 1. **The certificate is authentic** (cryptographic signature is valid)
24
- 2. **It hasn't been tampered with** (any changes would break the signature)
25
- 3. **It's still valid** (hasn't expired or been revoked)
26
- 4. **The issuer is trustworthy** (you trust the university)
27
-
28
- ## Types of Certificates
29
-
30
- ### Self-Signed Certificates
31
-
32
- These are claims you make about yourself, like "My name is John Doe" or "My email is <john@example.com>." While anyone can create these, they serve as a starting point for building your digital identity.
33
-
34
- **When they're useful:**
35
-
36
- - Basic profile information
37
- - Contact preferences
38
- - Personal statements
39
- - Starting point for identity building
40
-
41
- **Limitations:**
42
-
43
- - Low trust value (anyone can claim anything)
44
- - Not suitable for high-stakes verification
45
- - Mainly useful for discovery and basic interaction
46
-
47
- ### Peer-Verified Certificates
48
-
49
- These are endorsements from other users who can vouch for specific claims about you. Like professional references or character witnesses, they carry more weight when they come from trusted sources.
50
-
51
- **Examples:**
52
-
53
- - Colleague endorsing your professional skills
54
- - Friend confirming your identity
55
- - Community member vouching for your reputation
56
- - Business partner confirming successful transactions
57
-
58
- ### Institutional Certificates
59
-
60
- These come from recognized organizations with established authority and verification processes. They carry the most weight because the issuers have reputations to protect and rigorous verification procedures.
61
-
62
- **Examples:**
63
-
64
- - University degree certificates
65
- - Professional licensing board certifications
66
- - Government-issued identity documents
67
- - Industry association memberships
68
- - Employer verification of work history
69
-
70
- ## Certificate Lifecycle
71
-
72
- ### Creation and Issuance
73
-
74
- When someone wants to issue you a certificate, they typically:
75
-
76
- 1. **Verify your claim** through their established process
77
- 2. **Create a digital certificate** containing the verified information
78
- 3. **Sign it cryptographically** using their private key
79
- 4. **Deliver it to you** for use in proving the claim
80
-
81
- ### Validation and Trust
82
-
83
- When someone wants to verify your certificate, they:
84
-
85
- 1. **Check the cryptographic signature** to ensure authenticity
86
- 2. **Verify it hasn't expired** or been revoked
87
- 3. **Assess the issuer's credibility** and authority
88
- 4. **Determine if it meets their requirements** for the specific use case
89
-
90
- ### Renewal and Maintenance
91
-
92
- Certificates have limited lifespans for security reasons:
93
-
94
- - **Expiration dates** ensure information stays current
95
- - **Renewal processes** allow for re-verification
96
- - **Revocation mechanisms** handle compromised or invalid certificates
97
- - **Update procedures** accommodate changing information
98
-
99
- ## Trust Scoring and Reputation
100
-
101
- ### Building Credibility
102
-
103
- Your overall trustworthiness comes from the combination of all your certificates:
104
-
105
- - **Quantity**: More verifications generally increase trust
106
- - **Quality**: Certificates from respected issuers carry more weight
107
- - **Diversity**: Different types of verification provide broader confidence
108
- - **Recency**: Fresh certificates are more valuable than old ones
109
-
110
- ### Confidence Levels
111
-
112
- Different certificates provide different levels of assurance:
113
-
114
- - **Self-asserted claims** provide basic information but low confidence
115
- - **Peer verifications** offer moderate confidence from social proof
116
- - **Service verifications** provide higher confidence from specialized validators
117
- - **Institutional certificates** offer the highest confidence from established authorities
118
-
119
- ### Context Matters
120
-
121
- The same certificate might be highly valuable in one context but irrelevant in another:
122
-
123
- - A medical license is crucial for healthcare but irrelevant for software development
124
- - A GitHub contribution history matters for programming jobs but not for teaching
125
- - Age verification is essential for restricted services but unnecessary for professional networking
126
-
127
- ## Privacy and Selective Disclosure
128
-
129
- ### Controlling Information Flow
130
-
131
- One of the key advantages of certificate-based identity is granular control over what you reveal:
132
-
133
- - **Public certificates** are discoverable by anyone
134
- - **Private certificates** are shared only with specific parties
135
- - **Selective revelation** lets you prove specific claims without revealing everything
136
- - **Progressive disclosure** allows trust to build gradually
137
-
138
- ### Zero-Knowledge Proofs
139
-
140
- Advanced techniques allow you to prove things without revealing the underlying data:
141
-
142
- - Prove you're over 21 without revealing your exact age
143
- - Prove you have a degree without revealing which university
144
- - Prove you're a resident without revealing your exact address
145
- - Prove you're qualified without revealing all your credentials
146
-
147
- ### Consent and Control
148
-
149
- You maintain control over your certificates:
150
-
151
- - **Choose what to make public** vs. keep private
152
- - **Decide who can access** specific information
153
- - **Revoke access** when relationships change
154
- - **Update preferences** as your needs evolve
155
-
156
- ## Real-World Applications
157
-
158
- ### Professional Verification
159
-
160
- Instead of relying on self-reported resumes, employers can verify:
161
-
162
- - Educational credentials directly from institutions
163
- - Work history from previous employers
164
- - Professional certifications from licensing bodies
165
- - Skills endorsements from colleagues and clients
166
-
167
- ### Age and Identity Verification
168
-
169
- Services requiring age or identity verification can:
170
-
171
- - Verify age without collecting birthdates
172
- - Confirm identity without storing personal documents
173
- - Meet regulatory requirements while preserving privacy
174
- - Reduce fraud through cryptographic verification
175
-
176
- ### Reputation Systems
177
-
178
- Platforms can build more reliable reputation systems:
179
-
180
- - Portable reputation that follows users between platforms
181
- - Verifiable transaction history and feedback
182
- - Reduced fake accounts and manipulation
183
- - Incentives for honest behavior
184
-
185
- ### Access Control
186
-
187
- Organizations can manage access more securely:
188
-
189
- - Verify membership or employment status
190
- - Confirm professional qualifications
191
- - Validate security clearances
192
- - Authenticate without passwords
193
-
194
- ## Benefits Over Traditional Systems
195
-
196
- ### Security
197
-
198
- - **Cryptographic verification** is more secure than physical documents
199
- - **Tamper evidence** makes forgery virtually impossible
200
- - **Distributed validation** eliminates single points of failure
201
- - **Revocation mechanisms** handle compromised credentials quickly
202
-
203
- ### Privacy
204
-
205
- - **Minimal disclosure** reveals only necessary information
206
- - **User control** over what information is shared
207
- - **No central databases** to be breached or misused
208
- - **Consent-based sharing** puts users in control
209
-
210
- ### Interoperability
211
-
212
- - **Standard formats** work across different systems
213
- - **Portable credentials** move between applications
214
- - **Universal verification** works anywhere in the world
215
- - **Cross-platform compatibility** reduces vendor lock-in
216
-
217
- ### Efficiency
218
-
219
- - **Automated verification** reduces manual processes
220
- - **Real-time validation** provides instant results
221
- - **Reduced paperwork** streamlines credential management
222
- - **Lower costs** compared to traditional verification methods
223
-
224
- ## Challenges and Considerations
225
-
226
- ### User Experience
227
-
228
- Making certificate systems user-friendly requires:
229
-
230
- - **Intuitive interfaces** that hide complexity
231
- - **Clear explanations** of what certificates mean
232
- - **Simple management tools** for organizing credentials
233
- - **Seamless integration** with existing workflows
234
-
235
- ### Recovery and Backup
236
-
237
- Unlike traditional documents, losing access to digital certificates can be permanent:
238
-
239
- - **Backup strategies** are essential for important credentials
240
- - **Recovery mechanisms** must balance security with usability
241
- - **Key management** becomes critical for certificate access
242
- - **Succession planning** for organizational certificates
243
-
244
- ### Adoption and Network Effects
245
-
246
- Certificate systems become more valuable as adoption grows:
247
-
248
- - **Issuer participation** is needed for valuable certificates
249
- - **Verifier acceptance** determines practical utility
250
- - **User adoption** creates network effects
251
- - **Standardization** enables interoperability
252
-
253
- ### Legal and Regulatory
254
-
255
- Integrating with existing legal frameworks requires:
256
-
257
- - **Regulatory compliance** with identity verification laws
258
- - **Legal recognition** of digital certificates
259
- - **Audit trails** for compliance reporting
260
- - **Dispute resolution** mechanisms for conflicts
261
-
262
- ## The Future of Digital Credentials
263
-
264
- As certificate-based identity systems mature, we can expect:
265
-
266
- ### Widespread Adoption
267
-
268
- - **Government integration** with official identity documents
269
- - **Educational institutions** issuing digital diplomas
270
- - **Professional organizations** moving to digital certifications
271
- - **Employers** accepting and requiring digital credentials
272
-
273
- ### Enhanced Privacy
274
-
275
- - **Zero-knowledge proofs** becoming standard
276
- - **Selective disclosure** built into all systems
277
- - **Privacy-preserving verification** as the default
278
- - **User control** over all personal data
279
-
280
- ### Improved User Experience
281
-
282
- - **Seamless integration** with daily digital activities
283
- - **Automated verification** reducing friction
284
- - **Intelligent recommendations** for credential building
285
- - **Universal acceptance** across platforms and services
286
-
287
- ### New Possibilities
288
-
289
- - **Micro-credentials** for specific skills and achievements
290
- - **Dynamic certificates** that update automatically
291
- - **Composite credentials** combining multiple sources
292
- - **AI-assisted verification** for complex claims
293
-
294
- Understanding these concepts helps developers and users participate in building a more trustworthy, privacy-preserving digital world where identity verification is both secure and user-controlled.
295
-
296
- ## Related Concepts
297
-
298
- - [Decentralized Identity](./decentralized-identity.md) - Overall identity system architecture
299
- - [Digital Signatures](./signatures.md) - Cryptographic foundations of certificates
300
- - [Trust Model](./trust-model.md) - Security assumptions and trust relationships
301
- - [Key Management](./key-management.md) - Managing cryptographic keys for certificates
302
-
303
- ## Further Reading
304
-
305
- - [Identity Management Tutorial](../tutorials/identity-management.md) - Practical certificate implementation
306
- - [Security Best Practices](../guides/security-best-practices.md) - Secure certificate handling
307
- - [AuthFetch Tutorial](../tutorials/authfetch-tutorial.md) - Using certificates for authentication
@@ -1,77 +0,0 @@
1
- # Concepts
2
-
3
- Essential concepts for understanding and using the BSV TypeScript SDK effectively.
4
-
5
- ## Core Bitcoin Concepts
6
-
7
- ### [Transaction Structure](./transaction-structure.md)
8
-
9
- Understanding Bitcoin transactions, inputs, outputs, and how they work in the SDK.
10
-
11
- ### [Script Templates](./script-templates.md)
12
-
13
- Standard and custom Bitcoin script patterns available in the SDK.
14
-
15
- ### [Digital Signatures](./signatures.md)
16
-
17
- How digital signatures work in Bitcoin and their implementation in the SDK.
18
-
19
- ### [Transaction Verification](./verification.md)
20
-
21
- Understanding how to verify Bitcoin transactions using the SDK.
22
-
23
- ### [SPV Verification](./spv-verification.md)
24
-
25
- Simplified Payment Verification and merkle proof concepts for lightweight clients.
26
-
27
- ### [Transaction Fees](./fees.md)
28
-
29
- How Bitcoin transaction fees work and fee optimization strategies.
30
-
31
- ## SDK Architecture
32
-
33
- ### [SDK Design Philosophy](./sdk-philosophy.md)
34
-
35
- Core principles: zero dependencies, SPV-first approach, and vendor neutrality.
36
-
37
- ### [Wallet Integration](./wallet-integration.md)
38
-
39
- How the SDK connects with Bitcoin wallets and manages authentication.
40
-
41
- ### [Chain Tracking](./chain-tracking.md)
42
-
43
- Understanding how the SDK interacts with the Bitcoin network for transaction data.
44
-
45
- ## Data Formats
46
-
47
- ### [BEEF Format](./beef.md)
48
-
49
- Bitcoin Extras Extension Format for efficient transaction data exchange.
50
-
51
- ### [Transaction Encoding](./transaction-encoding.md)
52
-
53
- How transactions are serialized and deserialized in the SDK.
54
-
55
- ## Identity and Certificates
56
-
57
- ### [Decentralized Identity](./decentralized-identity.md)
58
-
59
- Understanding BSV's decentralized identity system and certificate-based verification.
60
-
61
- ### [Identity Certificates](./identity-certificates.md)
62
-
63
- How cryptographic certificates work for identity claims and verification.
64
-
65
- ## Security Model
66
-
67
- ### [Key Management](./key-management.md)
68
-
69
- How private keys, public keys, and cryptographic operations work in the SDK.
70
-
71
- ### [Trust Model](./trust-model.md)
72
-
73
- Understanding the security assumptions and trust relationships in SDK applications.
74
-
75
- ---
76
-
77
- These concepts provide the foundational knowledge needed to build Bitcoin applications with the BSV TypeScript SDK. For deeper protocol details, refer to the [BSV Skills Center](https://docs.bsvblockchain.org/).