You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Key Derivation**: Deterministic key derivation for wallets, signing, encryption, and other application-specific secrets
24
+
-**Key Derivation**: Deterministic key derivation for signing, encryption, and other application-specific secrets
25
25
-**Remote Attestation**: Versioned attestations providing cryptographic proof of execution environment, including GPU evidence
26
26
-**TLS Certificate Management**: Fresh certificate issuance with optional RA-TLS support for secure connections
27
27
-**Deployment Security**: Client-side encryption of sensitive environment variables ensuring secrets are only accessible to target TEE applications
28
-
-**Blockchain Integration**: v0-era adapters for Ethereum and Solana, see [Blockchain adapters](#blockchain-adapters)
28
+
-**Blockchain Integration (legacy)**: v0-era adapters for Ethereum and Solana, not part of v1 — see [Blockchain adapters](#blockchain-adapters)
29
29
30
30
### Two API versions
31
31
@@ -54,13 +54,13 @@ What v1 changes:
54
54
-`Attest` subsumes `GetQuote`; `Info` is flat, with no `tcb_info` blob and no `app_cert`.
55
55
-`Sign`, `Verify` and `EmitEvent` are gone. Sign and verify locally with a standard library, using the key `GetKey` returns; `EmitEvent` is gone because runtime RTMR3 events became system-owned.
56
56
57
-
> **⚠️ v1 derives different key material than v0.**`client.GetKey(ctx, "wallet", "secp256k1")`
Derivation is **flat**: `a/b` is not a child of `a`. The `/` is a naming convention, nothing more, and two domains that share a prefix yield unrelated keys.
@@ -473,14 +473,13 @@ Derives an application key from `(domain, algorithm)`.
473
473
secp256k1, 32 raw bytes for ed25519), and a two-element `SignatureChain`.
Copy file name to clipboardExpand all lines: sdk/js/README.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ JavaScript / TypeScript client for the dstack guest agent. Derive deterministic
8
8
npm install @phala/dstack-sdk
9
9
```
10
10
11
-
`@noble/hashes` and `@noble/curves` ship as regular dependencies — the core needs them for hashing and for verifying the KMS env-encryption key. Install the matching peer when you import a blockchain submodule:
11
+
`@noble/hashes` and `@noble/curves` ship as regular dependencies — the core needs them for hashing and for verifying the KMS env-encryption key. Install the matching peer when you import one of the v0-era chain submodules:
12
12
13
13
| Import path | Extra peer dependency |
14
14
| --- | --- |
@@ -26,7 +26,7 @@ import { DstackClient } from '@phala/dstack-sdk'
@@ -55,7 +55,7 @@ dstack 0.6.0 splits the guest agent API into two surfaces on the same socket, se
55
55
56
56
The unsuffixed `DstackClient` names v1. `DstackClientV1` is the same class under an explicit name — use whichever reads better; new code should not need `DstackClientV0` at all.
57
57
58
-
> **v1 keys are not v0 keys.**`getKey` on v1 derives under its own HKDF salt and binds the algorithm and a versioned context tag into the derivation. The same name yields **different key material** on the two surfaces, and under v1 secp256k1 and ed25519 no longer share one 32-byte secret. There is no compatibility mode and no migration path back — an app that has published a v0-derived address must keep deriving it with `DstackClientV0`. `docs/guest-api-v1.md` pins the byte-level construction.
58
+
> **v1 keys are not v0 keys.**`getKey` on v1 derives under its own HKDF salt and binds the algorithm and a versioned context tag into the derivation. The same name yields **different key material** on the two surfaces, and under v1 secp256k1 and ed25519 no longer share one 32-byte secret. There is no compatibility mode and no migration path back — an app that has published v0-derived material must keep deriving it with `DstackClientV0`. `docs/guest-api-v1.md` pins the byte-level construction.
59
59
60
60
Code that used the unsuffixed client for v0 calls fails **loudly** on upgrade rather than silently deriving different keys, because the v1 method signatures differ and `getKey` requires `algorithm` explicitly. To stay on the frozen surface, switch to `DstackClientV0`.
61
61
@@ -87,12 +87,12 @@ The key is freshly generated on every call and is not derived from the app ident
Both arguments are required. `algorithm` is exactly `'secp256k1'` or `'ed25519'` — there is no default and no `k256` alias, because v0's defaulting meant a typo silently produced a key of the wrong type under a name the caller thought meant something else.
0 commit comments