- 7a9ce7a: Sync 2024.3.16
- Update generated files to latest release: optional pagination options were added to list sub-organization and list wallet account endpoints.
- 83b62b5: Sync types for latest release
- 46a7d90: Update to v2024.2.1 API: add activities to initialize wallet import, import wallet, delete users, delete private key tags, delete user tags, and list sub-organizations
- Update to v2024.2.0 API types:
mnemonicLength
is now a number instead of a string
- Introduce and reference
@turnkey/encoding
to consolidate utility functions - Updated dependencies ([c3b423b], [d73725b])
- @turnkey/[email protected]
- @turnkey/[email protected]
- @turnkey/[email protected]
- b45a9ac: Include package version in request headers
- f9d636c: Export VERSION from turnkey/http
- 52e2389: Revert version export (#186 and #187)
- 0794f41: Add VERSION constant
- 7a3c890: Add key export support
- 4517e3b: Update version string to include package name
- Upgrade to Node v18 (#184)
- Updated dependencies
- @turnkey/[email protected]
- @turnkey/[email protected]
-
464ac0e: Update protos for latest release, which includes:
- Support optional expirations for API keys, configurable via the
expirationSeconds
parameter. - Support Email Auth. Details to follow ⚡️
- Support optional expirations for API keys, configurable via the
- Updated dependencies [a03e385]
- @turnkey/[email protected]
- Fix universal files to stop using
require
. Use ES6 imports instead (#178) - Updated dependencies [f87ced8]
- @turnkey/[email protected]
- Use rollup to build ESM and CommonJS, fix ESM support (#174)
- Updated dependencies [fc5b291]
- @turnkey/[email protected]
- @turnkey/[email protected]
- Updated dependencies
- @turnkey/[email protected]
- Sync protos from latest public endpoints
- Add ESM to package dist (#154)
- ed50a0f: simplify types
- bb6ea0b: Update generated files
- new query endpoints to retrieve wallets (
/public/v1/query/list_wallets
) - new query endpoint to retrieve wallet accounts (
/public/v1/query/list_wallet_accounts
)
- new query endpoints to retrieve wallets (
- Synced protos from mono
signRawPayload
andsignTransaction
now expect asignWith
param instead ofprivateKeyId
previouslysignRawPayload
andsignTransaction
have been updated to expect a new type:ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2
andACTIVITY_TYPE_SIGN_TRANSACTION_V2
, respectively- If you have policies authorizing
ACTIVITY_TYPE_SIGN_RAW_PAYLOAD
orACTIVITY_TYPE_SIGN_TRANSACTION
specifically, they will need to be updated to authorizeACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2
andACTIVITY_TYPE_SIGN_TRANSACTION_V2
(or better yet, update your policies to allow all signing actions categorically using policy resources and actions. See https://docs.turnkey.com/managing-policies/examples) createSubOrganization
now usesACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V4
under the hood, which utilizes wallets. The shape of the request has been updated to include the following parameter,wallet
. Here's an example:
{
...
wallet: {
walletName: "Default Wallet",
accounts: [
{
curve: "CURVE_SECP256K1",
pathFormat: "PATH_FORMAT_BIP32",
path: "m/44'/60'/0'/0/0",
addressFormat: "ADDRESS_FORMAT_ETHEREUM",
},
],
},
}
See https://docs.turnkey.com/concepts/sub-organizations for more details.
- Synced protos from mono
- Adds base URL check during initialization (closes tkhq#124)
- The following are new features additions, fresh out the oven. Still getting them ready for primetime! Refreshed examples to come soon™️. Stay tuned and reach out to the Turnkey team if you have any questions.
- Wallets:
- 🟢
ACTIVITY_TYPE_CREATE_WALLET
(via/api/v1/submit/create_wallet
): create a HD wallet - 🟢
ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS
(via/api/v1/submit/create_wallet_accounts
): create a wallet account (address) - 🟢
ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2
(via/api/v1/submit/sign_raw_payload_v2
): sign a payload with a specified private key or address - 🟢
ACTIVITY_TYPE_SIGN_TRANSACTION_V2
(via/api/v1/submit/sign_transaction_v2
): sign a transaction with a specified private key or address
- 🟢
- Organization features:
- 🟢
ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE
(via/api/v1/submit/set_organization_feature
): set an organization feature - 🟢
ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE
(via/api/v1/submit/remove_organization_feature
): remove an organization feature - Only one feature supported as of this time; additional documentation to follow.
- 🟢
- Export private key:
- 🟡
ACTIVITY_TYPE_EXPORT_PRIVATE_KEY
(via/api/v1/submit/export_private_key
): export a private key, encrypted to a target public key. We do not yet have CLI or front-end tooling to use this safely; stay tuned!
- 🟡
- Email recovery:
- 🟡
ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY
(via/api/v1/submit/init_user_email_recovery
): initialize a new email recovery flow
- 🟡
- Wallets:
Note:
- 🟢: good to go!
- 🟡: these endpoints are safe to use, but still experimental/unstable. Check back for updates and guidance.
- Updated dependencies
- @turnkey/[email protected]
-
The
createSubOrganization
request has been updated under the hood:- Calling
.createSubOrganization
on our HTTP client will trigger an activity of typeCREATE_SUB_ORGANIZATION_V3
instead ofCREATE_SUB_ORGANIZATION_V2
previously. - If there are any policies referencing
CREATE_SUB_ORGANIZATION_V2
specifically, they will no longer work out of the box if creating sub-orgs via SDK. These policies will need to be updated to allowCREATE_SUB_ORGANIZATION_V3
. See policy examples related to access control here for additional methods of constructing policies. CREATE_SUB_ORGANIZATION_V3
supports everythingCREATE_SUB_ORGANIZATION_V2
supports, with the addition of aprivateKeys
field to atomically create a sub-org with private keys. If no private keys are desired, simply provide an empty array.- NOTE: when reading
createSubOrganization
results, SDK users will now need to look atactivity.result.createSubOrganizationResultV3
instead of the previously validactivity.result.createSubOrganizationResult
.
- Calling
- Updated dependencies
- @turnkey/[email protected]
New exports:
- new
TurnkeyClient
. This is now the preferred interface to make Turnkey requests, because it supports both API keys and webauthn-signed requests. It also doesn't rely on global initialization - new method to poll requests:
createActivityPoller
Deprecation notices:
- deprecate
TurnkeyApi
(useTurnkeyClient
instead),init
,browserInit
(no need for them anymore if you're usingTurnkeyClient
), andwithAsyncPolling
(usecreateActivityPoller
instead) - deprecate
SignedRequest
in favor ofTSignedRequest
. Besides the more correct name,TSignedRequest
differs in itsstamp
property. It now stores the stamper header name as well as value, so users do not have to hardcode Turnkey stamp header names (e.g. "X-Stamp-Webauthn").
Update our swagger and generated files to latest versions:
- new endpoint to update users:
/public/v1/submit/update_user
- pagination
limit
option has been updated tostring
instead of number for consistency with other pagination options
Signing is now performed through Turnkey stampers. New dependencies:
- @turnkey/[email protected]
- @turnkey/[email protected]
- 8d1d0e8: Synced protos from mono
-
46473ec: This breaking change updates generated code to be shorter and more intuitive to read:
- generated fetchers do not include the HTTP method in their name. For example
useGetGetActivity
is nowuseGetActivity
, andusePostSignTransaction
isuseSignTransaction
. - input types follow the same convention (no HTTP method in the name):
TPostCreatePrivateKeysInput
is nowTCreatePrivateKeysInput
. - the "federated" request helpers introduced in
0.18.0
are now named "signed" requests to better reflect what they are.FederatedRequest
is nowSignedRequest
, and generated types follow. For example:federatedPostCreatePrivateKeys
is nowsignCreatePrivateKeys
,federatedGetGetActivity
is nowsignGetActivity
, and so on.
The name updates should be automatically suggested if you use VSCode since the new names are simply shorter versions of the old one.
- generated fetchers do not include the HTTP method in their name. For example
- 38b424f: Sync public api types
- Synced protos from mono
- Add support for federated requests (an example is included under
sdk/examples/with-federated-passkeys
) - Routine re-sync protos from mono
- Re-sync protos from mono. No public-facing changes.
- Added support for ed25519
- New endpoint to programmatically approve or reject activities (
/submit/approve_activity
,/submit/reject_activity
) - New endpoint to programmatically create authenticators (
/submit/create_authenticators
) - New endpoints to update Private Key tags (
/submit/update_private_key_tag
) - New endpoints to update User tags (
/submit/update_user_tag
) - Simplified shape for
AuthenticatorParams
with a newAuthenticatorParamsV2
. To take advantage of this new shape, useACTIVITY_TYPE_CREATE_USERS_V2
and the newACTIVITY_TYPE_CREATE_AUTHENTICATORS
.
- Fix
.postGetPrivateKey(...)
's underlying path, while adding@deprecated
.postGetPrivateKeyBackwardsCompat(...)
for backward compatibility
- Export a new helper for offline request signing:
sealAndStampRequestBody(...)
.
- Updated the
addressFormats
enum field in/submit/create_private_keys
- New
TurnkeyRequestError
error class that contains rich error details
- Error messages now contain Turnkey-specific error details
- New
/submit/create_api_only_users
endpoint:TurnkeyApi.postCreateApiOnlyUsers(...)
- Marked
TurnkeyApi.postCreateUsers(...)
as deprecated - Improved documentation on methods (via TSDoc)
- Error messages now contain Turnkey-specific error code and message
- New
/submit/create_users
endpoint:TurnkeyApi.postCreateUsers(...)
- No public-facing changes
- Improved support for React Native runtime (tkhq#37)
- Switched from
undici
tocross-fetch
to improve bundler compatibility
- Added browser runtime support —
@turnkey/http
is now a universal (isomorphic) package - The API fetchers are now exported as namespace
TurnkeyApi
.PublicApiService
has been marked as deprecated, but will remain functional until we hit v1.0. - Dropped support for Node.js v14; we recommend using Node v18+
- Improved documentation
- Added
withAsyncPolling(...)
helper to provide built-in async polling support. Read more:
- Improved OpenAPI documentation
- Arbitrary message signing
timestamp
->timestampMs
- Fix outdated artifact
keyId
->privateKeyId
everywhere
- Change parameter from
keyId
toprivateKeyId
- Bump API version to latest Beta
- Support runtime config for credentials
- Drop internal dev dependency
- Initial release
- Updated dependencies
- @turnkey/[email protected]