turnkey

package module
v2.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

README

Turnkey Go SDK

GoDocs

The Turnkey Go SDK is the official Go client for interacting with the Turnkey API.

[!WARNING]

Migrating from v1? Update github.com/tkhq/go-sdk to the new module path:

  • github.com/tkhq/go-sdk/v2 — API client and types

The v2 module will automatically pull in the required crypto and encoding dependencies

  • github.com/tkhq/go-sdk/crypto
  • github.com/tkhq/go-sdk/encoding

Module Structure

The SDK has three importable Go modules: (one for the core API client and one for each major feature area)

Module Import Path Purpose
Root github.com/tkhq/go-sdk/v2 API client, generated request/response types
Crypto github.com/tkhq/go-sdk/crypto API key generation, signing, encryption, attestation
Encoding github.com/tkhq/go-sdk/encoding Hex, Base58, and JSON encoding utilities
go-sdk/
├── client.go               # HTTP client 
├── client_gen.go           # generated API methods
├── client_extensions.go    # hand-written client helpers
├── types_gen.go            # generated request/response types
├── types_extensions.go     # hand-written type helpers
├── stamper.go              # request signing (stamp) implementation
├── crypto/                 # key generation, signing, encryption, attestation
│   ├── apikey.go
│   ├── apikey_ecdsa.go
│   ├── apikey_ed25519.go
│   ├── constants.go
│   ├── enclave.go
│   ├── encryptionkey.go
│   ├── hpke.go
│   ├── store.go
│   └── verify.go
├── encoding/               # hex, base58, JSON utilities
│   ├── base58.go
│   ├── hex.go
│   └── json.go
├── codegen/                # code generation tooling
│   ├── main.go
│   ├── generators/         # per-file code generators
│   └── inputs/             # activities.json + swagger specs
└── examples/
    ├── apikey/
    ├── delegated_access/
    ├── otp/
    ├── signing/
    ├── wallets/
    └── whoami/

Documentation

Installation

go get github.com/tkhq/go-sdk/v2

The root v2 module pulls in the crypto and encoding modules it needs. If you want to use those modules directly, install them explicitly:

go get github.com/tkhq/go-sdk/crypto
go get github.com/tkhq/go-sdk/encoding

Example

In order to use the SDK, you first need to create and register an API key. When creating API keys, the private key never leaves the local system, but the public key must be registered to your Turnkey account.

The easiest way to manage your API keys is with the Turnkey CLI, but you can also create one using this SDK. See this example.

package main

import (
	"context"
	"fmt"
	"log"
	"os"

	turnkey "github.com/tkhq/go-sdk/v2"
)

func main() {
	// NB: make sure to create and register an API key first.
	stamper, err := turnkey.NewAPIKeyStamper(os.Getenv("TURNKEY_API_PRIVATE_KEY"))
	if err != nil {
		log.Fatal("failed to create stamper:", err)
	}

	client, err := turnkey.NewClient(stamper, os.Getenv("TURNKEY_ORGANIZATION_ID"))
	if err != nil {
		log.Fatal("failed to create SDK client:", err)
	}

	resp, err := client.GetWhoami(context.Background(), turnkey.GetWhoamiRequest{})
	if err != nil {
		log.Fatal("failed to get whoami:", err)
	}

	fmt.Printf("UserID: %s\n", resp.UserID)
}

Custom Stampers

NewAPIKeyStamper is the built-in stamper and covers most use cases. If you need signing to happen elsewhere — a hardware security module, AWS KMS, or a remote signing service — implement the Stamper interface and pass it to NewClient identically:

type Stamper interface {
    Stamp(ctx context.Context, body []byte) (*Stamp, error)
}

Any type that satisfies this interface works as a drop-in replacement without changing any other code.

Error Handling

API errors are returned as *turnkey.RequestError, which exposes the HTTP status code, parsed status message, and raw response body.

result, err := client.CreateWallet(ctx, input)
if err != nil {
    log.Printf("failed to create wallet: %v", err)

    if reqErr, ok := err.(*turnkey.RequestError); ok {
        log.Printf("Turnkey API error (HTTP %d): %s", reqErr.StatusCode, reqErr.Body)
    }

    return nil, err
}

For activity-specific flows, the SDK also returns *turnkey.ActivityFailedError (activity rejected or failed) and *turnkey.ActivityRequiresApprovalError (consensus required), type-assert these if you need to handle them explicitly.

Custom Logging

By default, the SDK prints failed API responses to stdout via fmt.Printf. To route logs to Zap, Logrus, Datadog, or any other logger, implement the turnkey.Logger interface and pass it via WithLogger:

type myLogger struct{}

func (l *myLogger) Printf(format string, v ...interface{}) {
    log.Printf("[turnkey] "+format, v...)
}

stamper, err := turnkey.NewAPIKeyStamper(os.Getenv("TURNKEY_API_PRIVATE_KEY"))
if err != nil {
    log.Fatal("failed to create stamper:", err)
}

client, err := turnkey.NewClient(
    stamper,
    os.Getenv("TURNKEY_ORGANIZATION_ID"),
    turnkey.WithLogger(&myLogger{}),
)

More Examples

See this README in examples for more complete code samples, including:

Development

The SDK uses custom changeset tooling for changelog management. Each module (root, crypto, encoding) is versioned independently — a single release can bump any subset of them depending on which modules have pending changesets.

Releasing

Step 1 — Create a changeset

Add one markdown file under .changesets/ for each releasable module change. Each file uses frontmatter to identify the module, bump type (patch / minor / major), title, and date:

---
module: "root"
bump: "patch"
title: "Short release note"
date: "2026-07-09"
---

Longer release note text.

Use module: "root" for github.com/tkhq/go-sdk/v2, module: "crypto" for github.com/tkhq/go-sdk/crypto, and module: "encoding" for github.com/tkhq/go-sdk/encoding. Repeat once per logical change. Changesets accumulate in .changesets/ and can land across multiple PRs before a release is cut.

Step 2 — Cut a release branch and open the PR

make release-branch

Must be run from a clean main. For each module with pending changesets, this:

  • Bumps the module's VERSION file (patch/minor/major from the highest bump across its changesets).
  • Prepends a release section to the module's CHANGELOG.md.
  • Deletes the consumed changeset files from .changesets/.
  • Rewrites inter-module go.mod requirements from local placeholder versions to the release versions.
  • Rewrites matching go.work replaces so the release branch can build before the new module tags exist.
  • Creates a release/vYYYY-MM-N branch (where N auto-increments per month), commits the changes, and optionally pushes + opens the PR via gh.

Review the diff, then merge the PR into main.

Step 3 — Tag and publish (automatic)

Merging a release/v* PR triggers .github/workflows/tag.yml, which (after manual approval on the Production environment):

  • Lints, builds, and tests.
  • Reads each module's VERSION and creates GitHub releases tagged vX.Y.Z, crypto/vX.Y.Z, encoding/vX.Y.Z.
  • Pings sum.golang.org so pkg.go.dev indexes the new versions.

The workflow can also be triggered manually via workflow_dispatch with a vYYYY-MM-N release id.

Contributing + License

Contributions are welcome! Please open an issue or submit a pull request with any improvements or bug fixes.

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Documentation

Overview

Package turnkey provides a client for interacting with the Turnkey API.

Index

Constants

This section is empty.

Variables

View Source
var DefaultClientVersion = "go-sdk/" + strings.TrimSpace(embeddedVersion)

Functions

func SendSignedRequest

func SendSignedRequest[T any](ctx context.Context, c *Client, sr *SignedRequest) (*T, error)

SendSignedRequest sends a POST request with a signed body and decodes the response into T. For activity requests, it polls until the activity reaches a terminal status before decoding.

Types

type APIKey

type APIKey struct {
	// Unique identifier for a given API Key.
	APIKeyID string `json:"apiKeyId"`
	// Human-readable name for an API Key.
	APIKeyName string                  `json:"apiKeyName"`
	CreatedAt  ExternalDataV1Timestamp `json:"createdAt"`
	// A User credential that can be used to authenticate to Turnkey.
	Credential ExternalDataV1Credential `json:"credential"`
	// Optional window (in seconds) indicating how long the API Key should last.
	ExpirationSeconds *string                 `json:"expirationSeconds,omitempty"`
	UpdatedAt         ExternalDataV1Timestamp `json:"updatedAt"`
}

type APIKeyCurve

type APIKeyCurve string
const (
	APIKeyCurveP256      APIKeyCurve = "API_KEY_CURVE_P256"
	APIKeyCurveSecp256K1 APIKeyCurve = "API_KEY_CURVE_SECP256K1"
	APIKeyCurveEd25519   APIKeyCurve = "API_KEY_CURVE_ED25519"
)

type APIKeyParams

type APIKeyParams struct {
	// Human-readable name for an API Key.
	APIKeyName string `json:"apiKeyName"`
	// Optional window (in seconds) indicating how long the API Key should last.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// The public component of a cryptographic key pair used to sign messages and transactions.
	PublicKey string `json:"publicKey"`
}

type APIKeyParamsV2

type APIKeyParamsV2 struct {
	// Human-readable name for an API Key.
	APIKeyName string `json:"apiKeyName"`
	// The curve type to be used for processing API key signatures.
	CurveType APIKeyCurve `json:"curveType"`
	// Optional window (in seconds) indicating how long the API Key should last.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// The public component of a cryptographic key pair used to sign messages and transactions.
	PublicKey string `json:"publicKey"`
}

type APIKeyStamper

type APIKeyStamper struct {
	// contains filtered or unexported fields
}

APIKeyStamper implements Stamper using a Turnkey API key.

func NewAPIKeyStamper

func NewAPIKeyStamper(privateKey string, opts ...APIKeyStamperOption) (*APIKeyStamper, error)

NewAPIKeyStamper creates an APIKeyStamper from a raw Turnkey private key string. The signature scheme defaults to P256, pass WithSignatureScheme to override.

func (*APIKeyStamper) PublicKey

func (s *APIKeyStamper) PublicKey() string

PublicKey returns the Turnkey API public key used by the stamper.

func (*APIKeyStamper) Stamp

func (s *APIKeyStamper) Stamp(_ context.Context, body []byte) (*Stamp, error)

Stamp generates a Stamp for the given request body by signing it with the API key.

type APIKeyStamperOption

type APIKeyStamperOption func(*apiKeyStamperConfig)

APIKeyStamperOption configures an APIKeyStamper.

func WithSignatureScheme

func WithSignatureScheme(scheme tkcrypto.SignatureScheme) APIKeyStamperOption

WithSignatureScheme sets the signature scheme used by the APIKeyStamper.

type APIOnlyUserParams

type APIOnlyUserParams struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParams `json:"apiKeys"`
	// The email address for this API-only User (optional).
	UserEmail *string `json:"userEmail,omitempty"`
	// The name of the new API-only User.
	UserName string `json:"userName"`
	// A list of tags assigned to the new API-only User. This field, if not needed, should be an empty array in your request body.
	UserTags []string `json:"userTags"`
}

type AcceptInvitationIntent

type AcceptInvitationIntent struct {
	// WebAuthN hardware devices that can be used to log in to the Turnkey web app.
	Authenticator AuthenticatorParams `json:"authenticator"`
	// Unique identifier for a given Invitation object.
	InvitationID string `json:"invitationId"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type AcceptInvitationIntentV2

type AcceptInvitationIntentV2 struct {
	// WebAuthN hardware devices that can be used to log in to the Turnkey web app.
	Authenticator AuthenticatorParamsV2 `json:"authenticator"`
	// Unique identifier for a given Invitation object.
	InvitationID string `json:"invitationId"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type AcceptInvitationResult

type AcceptInvitationResult struct {
	// Unique identifier for a given Invitation.
	InvitationID string `json:"invitationId"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type AccessType

type AccessType string
const (
	AccessTypeWeb AccessType = "ACCESS_TYPE_WEB"
	AccessTypeAPI AccessType = "ACCESS_TYPE_API"
	AccessTypeAll AccessType = "ACCESS_TYPE_ALL"
)

type Activity

type Activity struct {
	// A list of App Proofs generated by enclaves during activity execution, providing verifiable attestations of performed operations.
	AppProofs  []AppProof              `json:"appProofs,omitempty"`
	CanApprove bool                    `json:"canApprove"`
	CanReject  bool                    `json:"canReject"`
	CreatedAt  ExternalDataV1Timestamp `json:"createdAt"`
	// Failure reason of the intended action.
	Failure *RPCStatus `json:"failure,omitempty"`
	// An artifact verifying a User's action.
	Fingerprint string `json:"fingerprint"`
	// Unique identifier for a given Activity object.
	ID string `json:"id"`
	// Intent object crafted by Turnkey based on the user request, used to assess the permissibility of an action.
	Intent Intent `json:"intent"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
	// Result of the intended action.
	Result Result `json:"result"`
	// The current processing status of a specified Activity.
	Status ActivityStatus `json:"status"`
	// Type of Activity, such as Add User, or Sign Transaction.
	TypeValue ActivityType            `json:"type"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
	// A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
	Votes []Vote `json:"votes"`
}

func ActivityFromApprovalError

func ActivityFromApprovalError(err error) (Activity, bool)

ActivityFromApprovalError returns the activity attached to an approval-required error.

type ActivityFailedError

type ActivityFailedError struct {
	ActivityID string
	Status     ActivityStatus
	Failure    *RPCStatus
}

ActivityFailedError is returned when an activity reaches a failed or rejected terminal state.

func (*ActivityFailedError) Error

func (e *ActivityFailedError) Error() string

Error formats the activity failure for display. If the RPCStatus contains a message, it is included in the error string.

type ActivityRequiresApprovalError

type ActivityRequiresApprovalError struct {
	ActivityID string
	Activity   Activity
}

ActivityRequiresApprovalError is returned when an activity requires consensus approval. The full Activity is attached so the caller can drive their own polling/lifecycle.

func (*ActivityRequiresApprovalError) Error

type ActivityResponse

type ActivityResponse struct {
	// An action that can be taken within the Turnkey infrastructure.
	Activity Activity `json:"activity"`
}

type ActivityResult

type ActivityResult[T any] struct {
	Activity Activity `json:"activity"`
	Result   *T       `json:"result,omitempty"`
}

ActivityResult is a typed activity response with the operation-specific result lifted out.

type ActivityStatus

type ActivityStatus string
const (
	ActivityStatusCreated              ActivityStatus = "ACTIVITY_STATUS_CREATED"
	ActivityStatusPending              ActivityStatus = "ACTIVITY_STATUS_PENDING"
	ActivityStatusCompleted            ActivityStatus = "ACTIVITY_STATUS_COMPLETED"
	ActivityStatusFailed               ActivityStatus = "ACTIVITY_STATUS_FAILED"
	ActivityStatusConsensusNeeded      ActivityStatus = "ACTIVITY_STATUS_CONSENSUS_NEEDED"
	ActivityStatusRejected             ActivityStatus = "ACTIVITY_STATUS_REJECTED"
	ActivityStatusAuthenticatorsNeeded ActivityStatus = "ACTIVITY_STATUS_AUTHENTICATORS_NEEDED"
)

type ActivityType

type ActivityType string
const (
	ActivityTypeCreateAPIKeys                ActivityType = "ACTIVITY_TYPE_CREATE_API_KEYS"
	ActivityTypeCreateUsers                  ActivityType = "ACTIVITY_TYPE_CREATE_USERS"
	ActivityTypeCreatePrivateKeys            ActivityType = "ACTIVITY_TYPE_CREATE_PRIVATE_KEYS"
	ActivityTypeSignRawPayload               ActivityType = "ACTIVITY_TYPE_SIGN_RAW_PAYLOAD"
	ActivityTypeCreateInvitations            ActivityType = "ACTIVITY_TYPE_CREATE_INVITATIONS"
	ActivityTypeAcceptInvitation             ActivityType = "ACTIVITY_TYPE_ACCEPT_INVITATION"
	ActivityTypeCreatePolicy                 ActivityType = "ACTIVITY_TYPE_CREATE_POLICY"
	ActivityTypeDisablePrivateKey            ActivityType = "ACTIVITY_TYPE_DISABLE_PRIVATE_KEY"
	ActivityTypeDeleteUsers                  ActivityType = "ACTIVITY_TYPE_DELETE_USERS"
	ActivityTypeDeleteAPIKeys                ActivityType = "ACTIVITY_TYPE_DELETE_API_KEYS"
	ActivityTypeDeleteInvitation             ActivityType = "ACTIVITY_TYPE_DELETE_INVITATION"
	ActivityTypeDeleteOrganization           ActivityType = "ACTIVITY_TYPE_DELETE_ORGANIZATION"
	ActivityTypeDeletePolicy                 ActivityType = "ACTIVITY_TYPE_DELETE_POLICY"
	ActivityTypeCreateUserTag                ActivityType = "ACTIVITY_TYPE_CREATE_USER_TAG"
	ActivityTypeDeleteUserTags               ActivityType = "ACTIVITY_TYPE_DELETE_USER_TAGS"
	ActivityTypeCreateOrganization           ActivityType = "ACTIVITY_TYPE_CREATE_ORGANIZATION"
	ActivityTypeSignTransaction              ActivityType = "ACTIVITY_TYPE_SIGN_TRANSACTION"
	ActivityTypeApproveActivity              ActivityType = "ACTIVITY_TYPE_APPROVE_ACTIVITY"
	ActivityTypeRejectActivity               ActivityType = "ACTIVITY_TYPE_REJECT_ACTIVITY"
	ActivityTypeDeleteAuthenticators         ActivityType = "ACTIVITY_TYPE_DELETE_AUTHENTICATORS"
	ActivityTypeCreateAuthenticators         ActivityType = "ACTIVITY_TYPE_CREATE_AUTHENTICATORS"
	ActivityTypeCreatePrivateKeyTag          ActivityType = "ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG"
	ActivityTypeDeletePrivateKeyTags         ActivityType = "ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS"
	ActivityTypeSetPaymentMethod             ActivityType = "ACTIVITY_TYPE_SET_PAYMENT_METHOD"
	ActivityTypeActivateBillingTier          ActivityType = "ACTIVITY_TYPE_ACTIVATE_BILLING_TIER"
	ActivityTypeDeletePaymentMethod          ActivityType = "ACTIVITY_TYPE_DELETE_PAYMENT_METHOD"
	ActivityTypeCreatePolicyV2               ActivityType = "ACTIVITY_TYPE_CREATE_POLICY_V2"
	ActivityTypeCreatePolicyV3               ActivityType = "ACTIVITY_TYPE_CREATE_POLICY_V3"
	ActivityTypeCreateAPIOnlyUsers           ActivityType = "ACTIVITY_TYPE_CREATE_API_ONLY_USERS"
	ActivityTypeUpdateRootQuorum             ActivityType = "ACTIVITY_TYPE_UPDATE_ROOT_QUORUM"
	ActivityTypeUpdateUserTag                ActivityType = "ACTIVITY_TYPE_UPDATE_USER_TAG"
	ActivityTypeUpdatePrivateKeyTag          ActivityType = "ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG"
	ActivityTypeCreateAuthenticatorsV2       ActivityType = "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2"
	ActivityTypeCreateOrganizationV2         ActivityType = "ACTIVITY_TYPE_CREATE_ORGANIZATION_V2"
	ActivityTypeCreateUsersV2                ActivityType = "ACTIVITY_TYPE_CREATE_USERS_V2"
	ActivityTypeAcceptInvitationV2           ActivityType = "ACTIVITY_TYPE_ACCEPT_INVITATION_V2"
	ActivityTypeCreateSubOrganization        ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION"
	ActivityTypeCreateSubOrganizationV2      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V2"
	ActivityTypeUpdateAllowedOrigins         ActivityType = "ACTIVITY_TYPE_UPDATE_ALLOWED_ORIGINS"
	ActivityTypeCreatePrivateKeysV2          ActivityType = "ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2"
	ActivityTypeUpdateUser                   ActivityType = "ACTIVITY_TYPE_UPDATE_USER"
	ActivityTypeUpdatePolicy                 ActivityType = "ACTIVITY_TYPE_UPDATE_POLICY"
	ActivityTypeSetPaymentMethodV2           ActivityType = "ACTIVITY_TYPE_SET_PAYMENT_METHOD_V2"
	ActivityTypeCreateSubOrganizationV3      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V3"
	ActivityTypeCreateWallet                 ActivityType = "ACTIVITY_TYPE_CREATE_WALLET"
	ActivityTypeCreateWalletAccounts         ActivityType = "ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS"
	ActivityTypeInitUserEmailRecovery        ActivityType = "ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY"
	ActivityTypeRecoverUser                  ActivityType = "ACTIVITY_TYPE_RECOVER_USER"
	ActivityTypeSetOrganizationFeature       ActivityType = "ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE"
	ActivityTypeRemoveOrganizationFeature    ActivityType = "ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE"
	ActivityTypeSignRawPayloadV2             ActivityType = "ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2"
	ActivityTypeSignTransactionV2            ActivityType = "ACTIVITY_TYPE_SIGN_TRANSACTION_V2"
	ActivityTypeExportPrivateKey             ActivityType = "ACTIVITY_TYPE_EXPORT_PRIVATE_KEY"
	ActivityTypeExportWallet                 ActivityType = "ACTIVITY_TYPE_EXPORT_WALLET"
	ActivityTypeCreateSubOrganizationV4      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V4"
	ActivityTypeEmailAuth                    ActivityType = "ACTIVITY_TYPE_EMAIL_AUTH"
	ActivityTypeExportWalletAccount          ActivityType = "ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT"
	ActivityTypeInitImportWallet             ActivityType = "ACTIVITY_TYPE_INIT_IMPORT_WALLET"
	ActivityTypeImportWallet                 ActivityType = "ACTIVITY_TYPE_IMPORT_WALLET"
	ActivityTypeInitImportPrivateKey         ActivityType = "ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY"
	ActivityTypeImportPrivateKey             ActivityType = "ACTIVITY_TYPE_IMPORT_PRIVATE_KEY"
	ActivityTypeCreatePolicies               ActivityType = "ACTIVITY_TYPE_CREATE_POLICIES"
	ActivityTypeSignRawPayloads              ActivityType = "ACTIVITY_TYPE_SIGN_RAW_PAYLOADS"
	ActivityTypeCreateReadOnlySession        ActivityType = "ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION"
	ActivityTypeCreateOAuthProviders         ActivityType = "ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS"
	ActivityTypeDeleteOAuthProviders         ActivityType = "ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS"
	ActivityTypeCreateSubOrganizationV5      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V5"
	ActivityTypeOAuth                        ActivityType = "ACTIVITY_TYPE_OAUTH"
	ActivityTypeCreateAPIKeysV2              ActivityType = "ACTIVITY_TYPE_CREATE_API_KEYS_V2"
	ActivityTypeCreateReadWriteSession       ActivityType = "ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION"
	ActivityTypeEmailAuthV2                  ActivityType = "ACTIVITY_TYPE_EMAIL_AUTH_V2"
	ActivityTypeCreateSubOrganizationV6      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V6"
	ActivityTypeDeletePrivateKeys            ActivityType = "ACTIVITY_TYPE_DELETE_PRIVATE_KEYS"
	ActivityTypeDeleteWallets                ActivityType = "ACTIVITY_TYPE_DELETE_WALLETS"
	ActivityTypeCreateReadWriteSessionV2     ActivityType = "ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2"
	ActivityTypeDeleteSubOrganization        ActivityType = "ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION"
	ActivityTypeInitOTPAuth                  ActivityType = "ACTIVITY_TYPE_INIT_OTP_AUTH"
	ActivityTypeOTPAuth                      ActivityType = "ACTIVITY_TYPE_OTP_AUTH"
	ActivityTypeCreateSubOrganizationV7      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7"
	ActivityTypeUpdateWallet                 ActivityType = "ACTIVITY_TYPE_UPDATE_WALLET"
	ActivityTypeUpdatePolicyV2               ActivityType = "ACTIVITY_TYPE_UPDATE_POLICY_V2"
	ActivityTypeCreateUsersV3                ActivityType = "ACTIVITY_TYPE_CREATE_USERS_V3"
	ActivityTypeInitOTPAuthV2                ActivityType = "ACTIVITY_TYPE_INIT_OTP_AUTH_V2"
	ActivityTypeInitOTP                      ActivityType = "ACTIVITY_TYPE_INIT_OTP"
	ActivityTypeVerifyOTP                    ActivityType = "ACTIVITY_TYPE_VERIFY_OTP"
	ActivityTypeOTPLogin                     ActivityType = "ACTIVITY_TYPE_OTP_LOGIN"
	ActivityTypeStampLogin                   ActivityType = "ACTIVITY_TYPE_STAMP_LOGIN"
	ActivityTypeOAuthLogin                   ActivityType = "ACTIVITY_TYPE_OAUTH_LOGIN"
	ActivityTypeUpdateUserName               ActivityType = "ACTIVITY_TYPE_UPDATE_USER_NAME"
	ActivityTypeUpdateUserEmail              ActivityType = "ACTIVITY_TYPE_UPDATE_USER_EMAIL"
	ActivityTypeUpdateUserPhoneNumber        ActivityType = "ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER"
	ActivityTypeInitFiatOnRamp               ActivityType = "ACTIVITY_TYPE_INIT_FIAT_ON_RAMP"
	ActivityTypeCreateSmartContractInterface ActivityType = "ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE"
	ActivityTypeDeleteSmartContractInterface ActivityType = "ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE"
	ActivityTypeEnableAuthProxy              ActivityType = "ACTIVITY_TYPE_ENABLE_AUTH_PROXY"
	ActivityTypeDisableAuthProxy             ActivityType = "ACTIVITY_TYPE_DISABLE_AUTH_PROXY"
	ActivityTypeUpdateAuthProxyConfig        ActivityType = "ACTIVITY_TYPE_UPDATE_AUTH_PROXY_CONFIG"
	ActivityTypeCreateOAuth2Credential       ActivityType = "ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL"
	ActivityTypeUpdateOAuth2Credential       ActivityType = "ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL"
	ActivityTypeDeleteOAuth2Credential       ActivityType = "ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL"
	ActivityTypeOAuth2Authenticate           ActivityType = "ACTIVITY_TYPE_OAUTH2_AUTHENTICATE"
	ActivityTypeDeleteWalletAccounts         ActivityType = "ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS"
	ActivityTypeDeletePolicies               ActivityType = "ACTIVITY_TYPE_DELETE_POLICIES"
	ActivityTypeETHSendRawTransaction        ActivityType = "ACTIVITY_TYPE_ETH_SEND_RAW_TRANSACTION"
	ActivityTypeETHSendTransaction           ActivityType = "ACTIVITY_TYPE_ETH_SEND_TRANSACTION"
	ActivityTypeCreateFiatOnRampCredential   ActivityType = "ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL"
	ActivityTypeUpdateFiatOnRampCredential   ActivityType = "ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL"
	ActivityTypeDeleteFiatOnRampCredential   ActivityType = "ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL"
	ActivityTypeEmailAuthV3                  ActivityType = "ACTIVITY_TYPE_EMAIL_AUTH_V3"
	ActivityTypeInitUserEmailRecoveryV2      ActivityType = "ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2"
	ActivityTypeInitOTPAuthV3                ActivityType = "ACTIVITY_TYPE_INIT_OTP_AUTH_V3"
	ActivityTypeInitOtpv2                    ActivityType = "ACTIVITY_TYPE_INIT_OTP_V2"
	ActivityTypeUpsertGasUsageConfig         ActivityType = "ACTIVITY_TYPE_UPSERT_GAS_USAGE_CONFIG"
	ActivityTypeCreateTVCApp                 ActivityType = "ACTIVITY_TYPE_CREATE_TVC_APP"
	ActivityTypeCreateTVCDeployment          ActivityType = "ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT"
	ActivityTypeCreateTVCManifestApprovals   ActivityType = "ACTIVITY_TYPE_CREATE_TVC_MANIFEST_APPROVALS"
	ActivityTypeSolSendTransaction           ActivityType = "ACTIVITY_TYPE_SOL_SEND_TRANSACTION"
	ActivityTypeInitOtpv3                    ActivityType = "ACTIVITY_TYPE_INIT_OTP_V3"
	ActivityTypeVerifyOtpv2                  ActivityType = "ACTIVITY_TYPE_VERIFY_OTP_V2"
	ActivityTypeOTPLoginV2                   ActivityType = "ACTIVITY_TYPE_OTP_LOGIN_V2"
	ActivityTypeUpdateOrganizationName       ActivityType = "ACTIVITY_TYPE_UPDATE_ORGANIZATION_NAME"
	ActivityTypeCreateSubOrganizationV8      ActivityType = "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V8"
	ActivityTypeCreateOAuthProvidersV2       ActivityType = "ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS_V2"
	ActivityTypeCreateUsersV4                ActivityType = "ACTIVITY_TYPE_CREATE_USERS_V4"
	ActivityTypeCreateWebhookEndpoint        ActivityType = "ACTIVITY_TYPE_CREATE_WEBHOOK_ENDPOINT"
	ActivityTypeUpdateWebhookEndpoint        ActivityType = "ACTIVITY_TYPE_UPDATE_WEBHOOK_ENDPOINT"
	ActivityTypeDeleteWebhookEndpoint        ActivityType = "ACTIVITY_TYPE_DELETE_WEBHOOK_ENDPOINT"
	ActivityTypeSetIPAllowlist               ActivityType = "ACTIVITY_TYPE_SET_IP_ALLOWLIST"
	ActivityTypeRemoveIPAllowlist            ActivityType = "ACTIVITY_TYPE_REMOVE_IP_ALLOWLIST"
	ActivityTypeUpdateTVCAppLiveDeployment   ActivityType = "ACTIVITY_TYPE_UPDATE_TVC_APP_LIVE_DEPLOYMENT"
	ActivityTypeDeleteTVCDeployment          ActivityType = "ACTIVITY_TYPE_DELETE_TVC_DEPLOYMENT"
	ActivityTypeDeleteTVCAppAndDeployments   ActivityType = "ACTIVITY_TYPE_DELETE_TVC_APP_AND_DEPLOYMENTS"
	ActivityTypeRestoreTVCDeployment         ActivityType = "ACTIVITY_TYPE_RESTORE_TVC_DEPLOYMENT"
	ActivityTypeSparkSignFrost               ActivityType = "ACTIVITY_TYPE_SPARK_SIGN_FROST"
	ActivityTypeSparkPrepareTransfer         ActivityType = "ACTIVITY_TYPE_SPARK_PREPARE_TRANSFER"
	ActivityTypeSparkClaimTransfer           ActivityType = "ACTIVITY_TYPE_SPARK_CLAIM_TRANSFER"
	ActivityTypeSparkPrepareLightningReceive ActivityType = "ACTIVITY_TYPE_SPARK_PREPARE_LIGHTNING_RECEIVE"
	ActivityTypePostTVCQuorumKeyShare        ActivityType = "ACTIVITY_TYPE_POST_TVC_QUORUM_KEY_SHARE"
	ActivityTypeETHSendTransactionV2         ActivityType = "ACTIVITY_TYPE_ETH_SEND_TRANSACTION_V2"
	ActivityTypeCreateMfaPolicy              ActivityType = "ACTIVITY_TYPE_CREATE_MFA_POLICY"
	ActivityTypeUpdateMfaPolicy              ActivityType = "ACTIVITY_TYPE_UPDATE_MFA_POLICY"
	ActivityTypeDeleteMfaPolicy              ActivityType = "ACTIVITY_TYPE_DELETE_MFA_POLICY"
	ActivityTypeCreateSessionProfile         ActivityType = "ACTIVITY_TYPE_CREATE_SESSION_PROFILE"
	ActivityTypeEarnDeployWrapper            ActivityType = "ACTIVITY_TYPE_EARN_DEPLOY_WRAPPER"
	ActivityTypeEarnDeposit                  ActivityType = "ACTIVITY_TYPE_EARN_DEPOSIT"
	ActivityTypeEarnWithdraw                 ActivityType = "ACTIVITY_TYPE_EARN_WITHDRAW"
	ActivityTypeUpsertEarnClientFeeConfig    ActivityType = "ACTIVITY_TYPE_UPSERT_EARN_CLIENT_FEE_CONFIG"
	ActivityTypeExecuteSwap                  ActivityType = "ACTIVITY_TYPE_EXECUTE_SWAP"
	ActivityTypeUpsertSwapConfig             ActivityType = "ACTIVITY_TYPE_UPSERT_SWAP_CONFIG"
	ActivityTypeCreateTVCOperator            ActivityType = "ACTIVITY_TYPE_CREATE_TVC_OPERATOR"
	ActivityTypeCreateTVCQuorumKey           ActivityType = "ACTIVITY_TYPE_CREATE_TVC_QUORUM_KEY"
	ActivityTypeReEncryptTVCQuorumKeyShare   ActivityType = "ACTIVITY_TYPE_RE_ENCRYPT_TVC_QUORUM_KEY_SHARE"
)

type AddressFormat

type AddressFormat string
const (
	AddressFormatUncompressed         AddressFormat = "ADDRESS_FORMAT_UNCOMPRESSED"
	AddressFormatCompressed           AddressFormat = "ADDRESS_FORMAT_COMPRESSED"
	AddressFormatEthereum             AddressFormat = "ADDRESS_FORMAT_ETHEREUM"
	AddressFormatSolana               AddressFormat = "ADDRESS_FORMAT_SOLANA"
	AddressFormatCosmos               AddressFormat = "ADDRESS_FORMAT_COSMOS"
	AddressFormatTron                 AddressFormat = "ADDRESS_FORMAT_TRON"
	AddressFormatSui                  AddressFormat = "ADDRESS_FORMAT_SUI"
	AddressFormatAptos                AddressFormat = "ADDRESS_FORMAT_APTOS"
	AddressFormatBitcoinMainnetP2Pkh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH"
	AddressFormatBitcoinMainnetP2Sh   AddressFormat = "ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH"
	AddressFormatBitcoinMainnetP2Wpkh AddressFormat = "ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH"
	AddressFormatBitcoinMainnetP2Wsh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH"
	AddressFormatBitcoinMainnetP2Tr   AddressFormat = "ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR"
	AddressFormatBitcoinTestnetP2Pkh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH"
	AddressFormatBitcoinTestnetP2Sh   AddressFormat = "ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH"
	AddressFormatBitcoinTestnetP2Wpkh AddressFormat = "ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH"
	AddressFormatBitcoinTestnetP2Wsh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH"
	AddressFormatBitcoinTestnetP2Tr   AddressFormat = "ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR"
	AddressFormatBitcoinSignetP2Pkh   AddressFormat = "ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH"
	AddressFormatBitcoinSignetP2Sh    AddressFormat = "ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH"
	AddressFormatBitcoinSignetP2Wpkh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH"
	AddressFormatBitcoinSignetP2Wsh   AddressFormat = "ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH"
	AddressFormatBitcoinSignetP2Tr    AddressFormat = "ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR"
	AddressFormatBitcoinRegtestP2Pkh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH"
	AddressFormatBitcoinRegtestP2Sh   AddressFormat = "ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH"
	AddressFormatBitcoinRegtestP2Wpkh AddressFormat = "ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH"
	AddressFormatBitcoinRegtestP2Wsh  AddressFormat = "ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH"
	AddressFormatBitcoinRegtestP2Tr   AddressFormat = "ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR"
	AddressFormatSei                  AddressFormat = "ADDRESS_FORMAT_SEI"
	AddressFormatXlm                  AddressFormat = "ADDRESS_FORMAT_XLM"
	AddressFormatDogeMainnet          AddressFormat = "ADDRESS_FORMAT_DOGE_MAINNET"
	AddressFormatDogeTestnet          AddressFormat = "ADDRESS_FORMAT_DOGE_TESTNET"
	AddressFormatTonV3R2              AddressFormat = "ADDRESS_FORMAT_TON_V3R2"
	AddressFormatTonV4R2              AddressFormat = "ADDRESS_FORMAT_TON_V4R2"
	AddressFormatTonV5R1              AddressFormat = "ADDRESS_FORMAT_TON_V5R1"
	AddressFormatXrp                  AddressFormat = "ADDRESS_FORMAT_XRP"
	AddressFormatSparkMainnet         AddressFormat = "ADDRESS_FORMAT_SPARK_MAINNET"
	AddressFormatSparkRegtest         AddressFormat = "ADDRESS_FORMAT_SPARK_REGTEST"
)

type AppProof

type AppProof struct {
	// JSON serialized AppProofPayload.
	ProofPayload string `json:"proofPayload"`
	// Ephemeral public key.
	PublicKey string `json:"publicKey"`
	// Scheme of signing key.
	Scheme ExternalDataV1SignatureScheme `json:"scheme"`
	// Signature over hashed proof_payload.
	Signature string `json:"signature"`
}

type AppStatus

type AppStatus struct {
	// Unique identifier for this TVC App
	AppID string `json:"appId"`
	// List of deployment statuses for this app
	Deployments []DeploymentStatus `json:"deployments"`
	// The deployment ID currently serving traffic for this app
	TargetedDeploymentID string `json:"targetedDeploymentId"`
}

type ApproveActivityIntent

type ApproveActivityIntent struct {
	// An artifact verifying a User's action.
	Fingerprint string `json:"fingerprint"`
}

type ApproveActivityRequest

type ApproveActivityRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// An artifact verifying a User's action.
	Fingerprint string `json:"fingerprint"`
}

func (ApproveActivityRequest) ActivityType

func (ApproveActivityRequest) ActivityType() string

type ApproveActivityResponse

type ApproveActivityResponse struct {
	Activity Activity `json:"activity"`
}

type AssetBalance

type AssetBalance struct {
	// The balance in atomic units
	Balance *string `json:"balance,omitempty"`
	// The caip-19 asset identifier
	Caip19 *string `json:"caip19,omitempty"`
	// The number of decimals this asset uses
	Decimals *int `json:"decimals,omitempty"`
	// Normalized balance values for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise. Use the balance field instead.
	Display *AssetBalanceDisplay `json:"display,omitempty"`
	// The asset name
	Name *string `json:"name,omitempty"`
	// The asset symbol
	Symbol *string `json:"symbol,omitempty"`
}

type AssetBalanceDisplay

type AssetBalanceDisplay struct {
	// Normalized crypto value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise.
	Crypto *string `json:"crypto,omitempty"`
	// USD value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise.
	Usd *string `json:"usd,omitempty"`
}

type AssetMetadata

type AssetMetadata struct {
	// The caip-19 asset identifier
	Caip19 *string `json:"caip19,omitempty"`
	// The number of decimals this asset uses
	Decimals *int `json:"decimals,omitempty"`
	// The url of the asset logo
	LogoURL *string `json:"logoUrl,omitempty"`
	// The asset name
	Name *string `json:"name,omitempty"`
	// The asset symbol
	Symbol *string `json:"symbol,omitempty"`
}

type Attestation

type Attestation struct {
	// A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
	AttestationObject string `json:"attestationObject"`
	// A base64 url encoded payload containing metadata about the signing context and the challenge.
	ClientDataJSON string `json:"clientDataJson"`
	// The cbor encoded then base64 url encoded id of the credential.
	CredentialID string `json:"credentialId"`
	// The type of authenticator transports.
	Transports []AuthenticatorTransport `json:"transports"`
}

type AuthProxyGetAccountRequest

type AuthProxyGetAccountRequest struct {
	// Specifies the type of filter to apply, i.e 'CREDENTIAL_ID', 'NAME', 'USERNAME', 'EMAIL', 'PHONE_NUMBER', 'OIDC_TOKEN' or 'PUBLIC_KEY'
	FilterType string `json:"filterType"`
	// The value of the filter to apply for the specified type. For example, a specific email or name string.
	FilterValue string `json:"filterValue"`
	// OIDC token to verify access to PII (email/phone number) when filter_type is 'EMAIL' or 'PHONE_NUMBER'. Needed for social linking when verification_token is not available.
	OidcToken *string `json:"oidcToken,omitempty"`
	// Signed JWT containing a unique id, expiry, verification type, contact. Used to verify access to PII (email/phone number) when filter_type is 'EMAIL' or 'PHONE_NUMBER'.
	VerificationToken *string `json:"verificationToken,omitempty"`
}

type AuthProxyGetAccountResponse

type AuthProxyGetAccountResponse struct {
	OrganizationID *string `json:"organizationId,omitempty"`
}

type AuthProxyGetWalletKitConfigRequest

type AuthProxyGetWalletKitConfigRequest map[string]any

type AuthProxyGetWalletKitConfigResponse

type AuthProxyGetWalletKitConfigResponse struct {
	// List of enabled authentication providers (e.g., 'facebook', 'google', 'apple', 'email', 'sms', 'passkey', 'wallet')
	EnabledProviders []string `json:"enabledProviders"`
	// Mapping of social login providers to their OAuth client IDs.
	OAuthClientIds map[string]any `json:"oauthClientIds,omitempty"`
	// OAuth redirect URL to be used for social login flows.
	OAuthRedirectURL *string `json:"oauthRedirectUrl,omitempty"`
	// The organization ID this configuration applies to
	OrganizationID  string  `json:"organizationId"`
	OTPAlphanumeric *bool   `json:"otpAlphanumeric,omitempty"`
	OTPLength       *string `json:"otpLength,omitempty"`
	// Session expiration duration in seconds
	SessionExpirationSeconds string `json:"sessionExpirationSeconds"`
}

type AuthProxyInitOTPRequest

type AuthProxyInitOTPRequest struct {
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *AuthProxyProxyEmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Enum to specify whether to send OTP via SMS or email
	OTPType string `json:"otpType"`
}

type AuthProxyInitOTPResponse

type AuthProxyInitOTPResponse struct {
	// Unique identifier for an OTP authentication
	OTPID string `json:"otpId"`
}

type AuthProxyInitOTPV2Request

type AuthProxyInitOTPV2Request struct {
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *AuthProxyProxyEmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Enum to specify whether to send OTP code via SMS or email
	OTPType string `json:"otpType"`
}

type AuthProxyInitOTPV2Response

type AuthProxyInitOTPV2Response struct {
	// Signed bundle containing a target encryption key to use when submitting OTP codes.
	OTPEncryptionTargetBundle string `json:"otpEncryptionTargetBundle"`
	// Unique identifier for an OTP flow.
	OTPID string `json:"otpId"`
}

type AuthProxyOAuth2AuthenticateRequest

type AuthProxyOAuth2AuthenticateRequest struct {
	// The auth_code provided by the OAuth 2.0 to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
	AuthCode string `json:"authCode"`
	// The client ID registered with the OAuth 2.0 provider
	ClientID string `json:"clientId"`
	// The code verifier used by OAuth 2.0 PKCE providers
	CodeVerifier string `json:"codeVerifier"`
	// A nonce value set to sha256(publicKey), used to bind the OIDC token to a specific public key
	Nonce string `json:"nonce"`
	// The OAuth 2.0 provider to authenticate with
	Provider OAuth2Provider `json:"provider"`
	// The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
	RedirectUri string `json:"redirectUri"`
}

type AuthProxyOAuth2AuthenticateResponse

type AuthProxyOAuth2AuthenticateResponse struct {
	// A Turnkey issued OIDC token to be used with the LoginWithOAuth activity
	OidcToken string `json:"oidcToken"`
}

type AuthProxyOAuthLoginRequest

type AuthProxyOAuthLoginRequest struct {
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Base64 encoded OIDC token
	OidcToken string `json:"oidcToken"`
	// Unique identifier for a given Organization. If provided, this organization id will be used directly. If omitted, uses the OIDC token to look up the associated organization id.
	OrganizationID *string `json:"organizationId,omitempty"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
	PublicKey string `json:"publicKey"`
}

type AuthProxyOAuthLoginResponse

type AuthProxyOAuthLoginResponse struct {
	// Signed JWT containing an expiry, public key, session type, user id, and organization id
	Session string `json:"session"`
}

type AuthProxyOTPLoginRequest

type AuthProxyOTPLoginRequest struct {
	// Optional signature proving authorization for this login. The signature is over the verification token ID and the public key. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Unique identifier for a given Organization. If provided, this organization id will be used directly. If omitted, uses the verification token to look up the verified sub-organization based on the contact and verification type.
	OrganizationID *string `json:"organizationId,omitempty"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token
	PublicKey string `json:"publicKey"`
	// Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP_LOGIN requests)
	VerificationToken string `json:"verificationToken"`
}

type AuthProxyOTPLoginResponse

type AuthProxyOTPLoginResponse struct {
	// Signed JWT containing an expiry, public key, session type, user id, and organization id
	Session string `json:"session"`
}

type AuthProxyOTPLoginV2Request

type AuthProxyOTPLoginV2Request struct {
	// Signature proving authorization for this login. The signature is over the verification token ID and the new session public key.
	ClientSignature ClientSignature `json:"clientSignature"`
	// Invalidate all other previously generated Login sessions
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Unique identifier for a given Organization. If provided, this organization id will be used directly. If omitted, uses the verification token to look up the verified sub-organization based on the contact and verification type.
	OrganizationID *string `json:"organizationId,omitempty"`
	// Client-side public key generated by the user, used as the session public key upon successful login.
	PublicKey string `json:"publicKey"`
	// Session containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP_LOGIN requests)
	VerificationToken string `json:"verificationToken"`
}

type AuthProxyOTPLoginV2Response

type AuthProxyOTPLoginV2Response struct {
	// Session containing an expiry, public key, session type, user id, and organization id
	Session string `json:"session"`
}

type AuthProxyProxyEmailCustomizationParams

type AuthProxyProxyEmailCustomizationParams struct {
	// Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
	TemplateID *string `json:"templateId,omitempty"`
}

type AuthProxySignupRequest

type AuthProxySignupRequest struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// Optional signature proving authorization for this signup. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders    []OAuthProviderParams `json:"oauthProviders"`
	OrganizationName  *string               `json:"organizationName,omitempty"`
	UserEmail         *string               `json:"userEmail,omitempty"`
	UserName          *string               `json:"userName,omitempty"`
	UserPhoneNumber   *string               `json:"userPhoneNumber,omitempty"`
	UserTag           *string               `json:"userTag,omitempty"`
	VerificationToken *string               `json:"verificationToken,omitempty"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type AuthProxySignupResponse

type AuthProxySignupResponse struct {
	// A list of App Proofs generated by enclaves during activity execution, providing verifiable attestations of performed operations.
	AppProofs      []AppProof `json:"appProofs,omitempty"`
	OrganizationID string     `json:"organizationId"`
	// Root user ID created for this sub-organization
	UserID string `json:"userId"`
	// Wallet created for the sub-organization, if provided in the request
	Wallet *WalletResult `json:"wallet,omitempty"`
}

type AuthProxySignupV2Request

type AuthProxySignupV2Request struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// Optional signature proving authorization for this signup. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders    []OAuthProviderParamsV2 `json:"oauthProviders"`
	OrganizationName  *string                 `json:"organizationName,omitempty"`
	UserEmail         *string                 `json:"userEmail,omitempty"`
	UserName          *string                 `json:"userName,omitempty"`
	UserPhoneNumber   *string                 `json:"userPhoneNumber,omitempty"`
	UserTag           *string                 `json:"userTag,omitempty"`
	VerificationToken *string                 `json:"verificationToken,omitempty"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type AuthProxySignupV2Response

type AuthProxySignupV2Response struct {
	// A list of App Proofs generated by enclaves during activity execution, providing verifiable attestations of performed operations.
	AppProofs      []AppProof `json:"appProofs,omitempty"`
	OrganizationID string     `json:"organizationId"`
	// Root user ID created for this sub-organization
	UserID string `json:"userId"`
	// Wallet created for the sub-organization, if provided in the request
	Wallet *WalletResult `json:"wallet,omitempty"`
}

type AuthProxyVerifyOTPRequest

type AuthProxyVerifyOTPRequest struct {
	// OTP sent out to a user's contact (email or SMS)
	OTPCode string `json:"otpCode"`
	// ID representing the result of an init OTP activity.
	OTPID string `json:"otpId"`
	// Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature
	PublicKey *string `json:"publicKey,omitempty"`
}

type AuthProxyVerifyOTPResponse

type AuthProxyVerifyOTPResponse struct {
	// Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP_LOGIN requests)
	VerificationToken string `json:"verificationToken"`
}

type AuthProxyVerifyOTPV2Request

type AuthProxyVerifyOTPV2Request struct {
	// Encrypted bundle containing the OTP code and a client-generated public key. Turnkey's secure enclaves will decrypt this bundle, verify the OTP code, and issue a new Verification Token. Encrypted using the target encryption key provided in the INIT_OTP activity result.
	EncryptedOTPBundle string `json:"encryptedOtpBundle"`
	// ID representing the result of an init OTP activity.
	OTPID string `json:"otpId"`
}

type AuthProxyVerifyOTPV2Response

type AuthProxyVerifyOTPV2Response struct {
	// Verification Token containing a unique id, expiry, verification type, contact signed by Turnkey's enclaves. Verification status of a user is updated when the token is consumed (in OTP_LOGIN requests)
	VerificationToken string `json:"verificationToken"`
}

type AuthenticationMethod

type AuthenticationMethod struct {
	// Optional specific authenticator ID required (e.g., for requiring a specific session profile id)
	ID *string `json:"id,omitempty"`
	// The type of authenticator (e.g., AUTHENTICATION_TYPE_EMAIL, AUTHENTICATION_TYPE_SESSION) required for this MFA step.
	TypeValue AuthenticationType `json:"type"`
}

type AuthenticationMethodParams

type AuthenticationMethodParams struct {
	// Optional specific authenticator ID required (e.g., UUID of a passkey authenticator). If not provided, any authenticator of the specified type can be used.
	ID *string `json:"id,omitempty"`
	// The type of authenticator (e.g., AUTHENTICATION_TYPE_PASSKEY for passkey authentication).
	TypeValue AuthenticationType `json:"type"`
}

type AuthenticationType

type AuthenticationType string
const (
	AuthenticationTypeEmailOTP AuthenticationType = "AUTHENTICATION_TYPE_EMAIL_OTP"
	AuthenticationTypeSmsOTP   AuthenticationType = "AUTHENTICATION_TYPE_SMS_OTP"
	AuthenticationTypePasskey  AuthenticationType = "AUTHENTICATION_TYPE_PASSKEY"
	AuthenticationTypeAPIKey   AuthenticationType = "AUTHENTICATION_TYPE_API_KEY"
	AuthenticationTypeOAuth    AuthenticationType = "AUTHENTICATION_TYPE_OAUTH"
	AuthenticationTypeSession  AuthenticationType = "AUTHENTICATION_TYPE_SESSION"
)

type Authenticator

type Authenticator struct {
	// Identifier indicating the type of the Security Key.
	Aaguid          string `json:"aaguid"`
	AttestationType string `json:"attestationType"`
	// Unique identifier for a given Authenticator.
	AuthenticatorID string `json:"authenticatorId"`
	// Human-readable name for an Authenticator.
	AuthenticatorName string                  `json:"authenticatorName"`
	CreatedAt         ExternalDataV1Timestamp `json:"createdAt"`
	// A User credential that can be used to authenticate to Turnkey.
	Credential ExternalDataV1Credential `json:"credential"`
	// Unique identifier for a WebAuthn credential.
	CredentialID string `json:"credentialId"`
	// The type of Authenticator device.
	Model string `json:"model"`
	// Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE).
	Transports []AuthenticatorTransport `json:"transports"`
	UpdatedAt  ExternalDataV1Timestamp  `json:"updatedAt"`
}

type AuthenticatorAttestationResponse

type AuthenticatorAttestationResponse struct {
	AttestationObject       string                   `json:"attestationObject"`
	AuthenticatorAttachment string                   `json:"authenticatorAttachment,omitempty"`
	ClientDataJSON          string                   `json:"clientDataJson"`
	Transports              []AuthenticatorTransport `json:"transports,omitempty"`
}

type AuthenticatorParams

type AuthenticatorParams struct {
	Attestation PublicKeyCredentialWithAttestation `json:"attestation"`
	// Human-readable name for an Authenticator.
	AuthenticatorName string `json:"authenticatorName"`
	// Challenge presented for authentication purposes.
	Challenge string `json:"challenge"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type AuthenticatorParamsV2

type AuthenticatorParamsV2 struct {
	// The attestation that proves custody of the authenticator and provides metadata about it.
	Attestation Attestation `json:"attestation"`
	// Human-readable name for an Authenticator.
	AuthenticatorName string `json:"authenticatorName"`
	// Challenge presented for authentication purposes.
	Challenge string `json:"challenge"`
}

type AuthenticatorTransport

type AuthenticatorTransport string
const (
	AuthenticatorTransportBle      AuthenticatorTransport = "AUTHENTICATOR_TRANSPORT_BLE"
	AuthenticatorTransportInternal AuthenticatorTransport = "AUTHENTICATOR_TRANSPORT_INTERNAL"
	AuthenticatorTransportNfc      AuthenticatorTransport = "AUTHENTICATOR_TRANSPORT_NFC"
	AuthenticatorTransportUsb      AuthenticatorTransport = "AUTHENTICATOR_TRANSPORT_USB"
	AuthenticatorTransportHybrid   AuthenticatorTransport = "AUTHENTICATOR_TRANSPORT_HYBRID"
)

type BillingActivateBillingTierIntent

type BillingActivateBillingTierIntent struct {
	OrbPlanID *string `json:"orbPlanId,omitempty"`
	// The product that the customer wants to subscribe to.
	ProductID string `json:"productId"`
}

type BillingActivateBillingTierResult

type BillingActivateBillingTierResult struct {
	// The id of the product being subscribed to.
	ProductID string `json:"productId"`
}

type BillingDeletePaymentMethodIntent

type BillingDeletePaymentMethodIntent struct {
	// The payment method that the customer wants to remove.
	PaymentMethodID string `json:"paymentMethodId"`
}

type BillingDeletePaymentMethodResult

type BillingDeletePaymentMethodResult struct {
	// The payment method that was removed.
	PaymentMethodID string `json:"paymentMethodId"`
}

type BillingSetPaymentMethodIntent

type BillingSetPaymentMethodIntent struct {
	// The email that will receive invoices for the credit card.
	CardHolderEmail string `json:"cardHolderEmail"`
	// The name associated with the credit card.
	CardHolderName string `json:"cardHolderName"`
	// The verification digits of the customer's credit card.
	Cvv string `json:"cvv"`
	// The month that the credit card expires.
	ExpiryMonth string `json:"expiryMonth"`
	// The year that the credit card expires.
	ExpiryYear string `json:"expiryYear"`
	// The account number of the customer's credit card.
	Number string `json:"number"`
}

type BillingSetPaymentMethodIntentV2

type BillingSetPaymentMethodIntentV2 struct {
	// The email that will receive invoices for the credit card.
	CardHolderEmail string `json:"cardHolderEmail"`
	// The name associated with the credit card.
	CardHolderName string `json:"cardHolderName"`
	// The id of the payment method that was created clientside.
	PaymentMethodID string `json:"paymentMethodId"`
}

type BillingSetPaymentMethodResult

type BillingSetPaymentMethodResult struct {
	// The email address associated with the payment method.
	CardHolderEmail string `json:"cardHolderEmail"`
	// The name associated with the payment method.
	CardHolderName string `json:"cardHolderName"`
	// The last four digits of the credit card added.
	LastFour string `json:"lastFour"`
}

type BootProof

type BootProof struct {
	// The DER encoded COSE Sign1 struct Attestation doc.
	AWSAttestationDocB64 string                  `json:"awsAttestationDocB64"`
	CreatedAt            ExternalDataV1Timestamp `json:"createdAt"`
	// The label under which the enclave app was deployed.
	DeploymentLabel string `json:"deploymentLabel"`
	// Name of the enclave app
	EnclaveApp string `json:"enclaveApp"`
	// The hex encoded Ephemeral Public Key.
	EphemeralPublicKeyHex string `json:"ephemeralPublicKeyHex"`
	// Owner of the app i.e. 'tkhq'
	Owner string `json:"owner"`
	// The base64 encoded QOS manifest. Encoding depends on qos_manifest_version.
	QosManifestB64 string `json:"qosManifestB64"`
	// The base64 encoded QOS manifest envelope. Encoding depends on qos_manifest_version.
	QosManifestEnvelopeB64 string `json:"qosManifestEnvelopeB64"`
	// QOS manifest schema version.
	QosManifestVersion *string `json:"qosManifestVersion,omitempty"`
}

type BootProofResponse

type BootProofResponse struct {
	BootProof BootProof `json:"bootProof"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client provides a handle by which to interact with the Turnkey API.

func NewClient

func NewClient(stamper Stamper, organizationID string, options ...OptionFunc) (*Client, error)

NewClient returns a new Turnkey API client. stamper signs each authenticated request; pass nil only if the client will not make signed requests. organizationID sets the default organization; it may be overridden per-request.

func (*Client) ApproveActivity

func (c *Client) ApproveActivity(ctx context.Context, input ApproveActivityRequest) (*ApproveActivityResponse, error)

Approve an activity.

func (*Client) AuthProxyBaseURL

func (c *Client) AuthProxyBaseURL() string

AuthProxyBaseURL returns the configured Turnkey Auth Proxy base URL.

func (*Client) AuthProxyGetAccount

func (c *Client) AuthProxyGetAccount(ctx context.Context, input AuthProxyGetAccountRequest) (*AuthProxyGetAccountResponse, error)

Return organization id associated with a given phone number, email, public key, credential ID or OIDC token.

func (*Client) AuthProxyGetWalletKitConfig

Get wallet kit settings and feature toggles for the calling organization.

func (*Client) AuthProxyInitOTP

func (c *Client) AuthProxyInitOTP(ctx context.Context, input AuthProxyInitOTPRequest) (*AuthProxyInitOTPResponse, error)

Initialize an OTP (email or SMS) for a user.

func (*Client) AuthProxyInitOTPV2

func (c *Client) AuthProxyInitOTPV2(ctx context.Context, input AuthProxyInitOTPV2Request) (*AuthProxyInitOTPV2Response, error)

Start a new OTP flow and return a new OTP flow ID.

func (*Client) AuthProxyOAuth2Authenticate

Authenticate with an OAuth 2.0 provider and receive an OIDC token issued by Turnkey in response.

func (*Client) AuthProxyOAuthLogin

func (c *Client) AuthProxyOAuthLogin(ctx context.Context, input AuthProxyOAuthLoginRequest) (*AuthProxyOAuthLoginResponse, error)

Login using an OIDC token and public key.

func (*Client) AuthProxyOTPLogin

func (c *Client) AuthProxyOTPLogin(ctx context.Context, input AuthProxyOTPLoginRequest) (*AuthProxyOTPLoginResponse, error)

Login using a verification token and public key.

func (*Client) AuthProxyOTPLoginV2

func (c *Client) AuthProxyOTPLoginV2(ctx context.Context, input AuthProxyOTPLoginV2Request) (*AuthProxyOTPLoginV2Response, error)

Login using an existing OTP Verification Token and a client-side signature. The signature's public key must match the public key contained within the OTP Verification Token.

func (*Client) AuthProxySignup

func (c *Client) AuthProxySignup(ctx context.Context, input AuthProxySignupRequest) (*AuthProxySignupResponse, error)

Onboard a new user.

func (*Client) AuthProxySignupV2

func (c *Client) AuthProxySignupV2(ctx context.Context, input AuthProxySignupV2Request) (*AuthProxySignupV2Response, error)

Onboard a new user.

func (*Client) AuthProxyVerifyOTP

func (c *Client) AuthProxyVerifyOTP(ctx context.Context, input AuthProxyVerifyOTPRequest) (*AuthProxyVerifyOTPResponse, error)

Verify the OTP code previously sent to the user's contact and return a verification token.

func (*Client) AuthProxyVerifyOTPV2

func (c *Client) AuthProxyVerifyOTPV2(ctx context.Context, input AuthProxyVerifyOTPV2Request) (*AuthProxyVerifyOTPV2Response, error)

Verify the OTP code previously sent to the user's contact and return a verification token.

func (*Client) BaseURL

func (c *Client) BaseURL() string

BaseURL returns the configured Turnkey API base URL.

func (*Client) ClientVersion

func (c *Client) ClientVersion() string

ClientVersion returns the configured client version header value.

func (*Client) CreateAPIKeys

func (c *Client) CreateAPIKeys(ctx context.Context, input CreateAPIKeysRequest) (*CreateAPIKeysResponse, error)

Add API keys to an existing user.

func (*Client) CreateAuthenticators

func (c *Client) CreateAuthenticators(ctx context.Context, input CreateAuthenticatorsRequest) (*CreateAuthenticatorsResponse, error)

Create authenticators to authenticate requests to Turnkey.

func (*Client) CreateFiatOnRampCredential

Create a fiat on ramp provider credential

func (*Client) CreateInvitations

func (c *Client) CreateInvitations(ctx context.Context, input CreateInvitationsRequest) (*CreateInvitationsResponse, error)

Create invitations to join an existing organization.

func (*Client) CreateMfaPolicy

func (c *Client) CreateMfaPolicy(ctx context.Context, input CreateMfaPolicyRequest) (*CreateMfaPolicyResponse, error)

Create a new MFA policy for a user.

func (*Client) CreateOAuth2Credential

func (c *Client) CreateOAuth2Credential(ctx context.Context, input CreateOAuth2CredentialRequest) (*CreateOAuth2CredentialResponse, error)

Enable authentication for end users with an OAuth 2.0 provider

func (*Client) CreateOAuthProviders

func (c *Client) CreateOAuthProviders(ctx context.Context, input CreateOAuthProvidersRequest) (*CreateOAuthProvidersResponse, error)

Create Oauth providers for a specified user.

func (*Client) CreatePolicies

func (c *Client) CreatePolicies(ctx context.Context, input CreatePoliciesRequest) (*CreatePoliciesResponse, error)

Create new policies.

func (*Client) CreatePolicy

func (c *Client) CreatePolicy(ctx context.Context, input CreatePolicyRequest) (*CreatePolicyResponse, error)

Create a new policy.

func (*Client) CreatePrivateKeyTag

func (c *Client) CreatePrivateKeyTag(ctx context.Context, input CreatePrivateKeyTagRequest) (*CreatePrivateKeyTagResponse, error)

Create a private key tag and add it to private keys.

func (*Client) CreatePrivateKeys

func (c *Client) CreatePrivateKeys(ctx context.Context, input CreatePrivateKeysRequest) (*CreatePrivateKeysResponse, error)

Create new private keys.

func (*Client) CreateReadOnlySession

func (c *Client) CreateReadOnlySession(ctx context.Context, input CreateReadOnlySessionRequest) (*CreateReadOnlySessionResponse, error)

Create a read only session for a user (valid for 1 hour).

func (*Client) CreateReadWriteSession

func (c *Client) CreateReadWriteSession(ctx context.Context, input CreateReadWriteSessionRequest) (*CreateReadWriteSessionResponse, error)

Create a read write session for a user.

func (*Client) CreateSessionProfile

func (c *Client) CreateSessionProfile(ctx context.Context, input CreateSessionProfileRequest) (*CreateSessionProfileResponse, error)

Create a new session profile for an organization.

func (*Client) CreateSmartContractInterface

Create an ABI/IDL in JSON.

func (*Client) CreateSubOrganization

func (c *Client) CreateSubOrganization(ctx context.Context, input CreateSubOrganizationRequest) (*CreateSubOrganizationResponse, error)

Create a new sub-organization. Each root user must have at least one valid credential: an API key, an authenticator, an OAuth provider, or an email or phone number with a login method enabled on the sub-organization (email, email OTP, or SMS).

func (*Client) CreateTVCApp

func (c *Client) CreateTVCApp(ctx context.Context, input CreateTVCAppRequest) (*CreateTVCAppResponse, error)

Create a new TVC application

func (*Client) CreateTVCDeployment

func (c *Client) CreateTVCDeployment(ctx context.Context, input CreateTVCDeploymentRequest) (*CreateTVCDeploymentResponse, error)

Create a new TVC Deployment

func (*Client) CreateTVCManifestApprovals

Post one or more manifest approvals for a TVC Manifest

func (*Client) CreateUserTag

func (c *Client) CreateUserTag(ctx context.Context, input CreateUserTagRequest) (*CreateUserTagResponse, error)

Create a user tag and add it to users.

func (*Client) CreateUsers

func (c *Client) CreateUsers(ctx context.Context, input CreateUsersRequest) (*CreateUsersResponse, error)

Create users in an existing organization. Each user must have at least one valid credential: an API key, an authenticator, an OAuth provider, or an email or phone number with a login method enabled on the organization (email, email OTP, or SMS).

func (*Client) CreateWallet

func (c *Client) CreateWallet(ctx context.Context, input CreateWalletRequest) (*CreateWalletResponse, error)

Create a wallet and derive addresses.

func (*Client) CreateWalletAccounts

func (c *Client) CreateWalletAccounts(ctx context.Context, input CreateWalletAccountsRequest) (*CreateWalletAccountsResponse, error)

Derive additional addresses using an existing wallet.

func (*Client) CreateWebhookEndpoint

func (c *Client) CreateWebhookEndpoint(ctx context.Context, input CreateWebhookEndpointRequest) (*CreateWebhookEndpointResponse, error)

Create a webhook endpoint for an organization.

func (*Client) DefaultAuthProxyConfigID

func (c *Client) DefaultAuthProxyConfigID() *string

DefaultAuthProxyConfigID returns the configured Auth Proxy config ID, nil if not set.

func (*Client) DefaultOrganization

func (c *Client) DefaultOrganization() *string

DefaultOrganization returns the configured organization ID, or nil if none was set.

func (*Client) DeleteAPIKeys

func (c *Client) DeleteAPIKeys(ctx context.Context, input DeleteAPIKeysRequest) (*DeleteAPIKeysResponse, error)

Remove api keys from a user.

func (*Client) DeleteAuthenticators

func (c *Client) DeleteAuthenticators(ctx context.Context, input DeleteAuthenticatorsRequest) (*DeleteAuthenticatorsResponse, error)

Remove authenticators from a user.

func (*Client) DeleteFiatOnRampCredential

Delete a fiat on ramp provider credential

func (*Client) DeleteInvitation

func (c *Client) DeleteInvitation(ctx context.Context, input DeleteInvitationRequest) (*DeleteInvitationResponse, error)

Delete an existing invitation.

func (*Client) DeleteMfaPolicy

func (c *Client) DeleteMfaPolicy(ctx context.Context, input DeleteMfaPolicyRequest) (*DeleteMfaPolicyResponse, error)

Delete an MFA policy for a user.

func (*Client) DeleteOAuth2Credential

func (c *Client) DeleteOAuth2Credential(ctx context.Context, input DeleteOAuth2CredentialRequest) (*DeleteOAuth2CredentialResponse, error)

Disable authentication for end users with an OAuth 2.0 provider

func (*Client) DeleteOAuthProviders

func (c *Client) DeleteOAuthProviders(ctx context.Context, input DeleteOAuthProvidersRequest) (*DeleteOAuthProvidersResponse, error)

Remove Oauth providers for a specified user.

func (*Client) DeletePolicies

func (c *Client) DeletePolicies(ctx context.Context, input DeletePoliciesRequest) (*DeletePoliciesResponse, error)

Delete existing policies.

func (*Client) DeletePolicy

func (c *Client) DeletePolicy(ctx context.Context, input DeletePolicyRequest) (*DeletePolicyResponse, error)

Delete an existing policy.

func (*Client) DeletePrivateKeyTags

func (c *Client) DeletePrivateKeyTags(ctx context.Context, input DeletePrivateKeyTagsRequest) (*DeletePrivateKeyTagsResponse, error)

Delete private key tags within an organization.

func (*Client) DeletePrivateKeys

func (c *Client) DeletePrivateKeys(ctx context.Context, input DeletePrivateKeysRequest) (*DeletePrivateKeysResponse, error)

Delete private keys for an organization.

func (*Client) DeleteSmartContractInterface

Delete a smart contract interface.

func (*Client) DeleteSubOrganization

func (c *Client) DeleteSubOrganization(ctx context.Context, input DeleteSubOrganizationRequest) (*DeleteSubOrganizationResponse, error)

Delete a sub-organization.

func (*Client) DeleteTVCAppAndDeployments

Delete a TVC App and all of its deployments

func (*Client) DeleteTVCDeployment

func (c *Client) DeleteTVCDeployment(ctx context.Context, input DeleteTVCDeploymentRequest) (*DeleteTVCDeploymentResponse, error)

Delete a TVC Deployment

func (*Client) DeleteUserTags

func (c *Client) DeleteUserTags(ctx context.Context, input DeleteUserTagsRequest) (*DeleteUserTagsResponse, error)

Delete user tags within an organization.

func (*Client) DeleteUsers

func (c *Client) DeleteUsers(ctx context.Context, input DeleteUsersRequest) (*DeleteUsersResponse, error)

Delete users within an organization.

func (*Client) DeleteWalletAccounts

func (c *Client) DeleteWalletAccounts(ctx context.Context, input DeleteWalletAccountsRequest) (*DeleteWalletAccountsResponse, error)

Delete wallet accounts for an organization.

func (*Client) DeleteWallets

func (c *Client) DeleteWallets(ctx context.Context, input DeleteWalletsRequest) (*DeleteWalletsResponse, error)

Delete wallets for an organization.

func (*Client) DeleteWebhookEndpoint

func (c *Client) DeleteWebhookEndpoint(ctx context.Context, input DeleteWebhookEndpointRequest) (*DeleteWebhookEndpointResponse, error)

Delete a webhook endpoint for an organization.

func (*Client) ETHSendTransaction

func (c *Client) ETHSendTransaction(ctx context.Context, input ETHSendTransactionRequest) (*ETHSendTransactionResponse, error)

Submit a transaction intent describing an EVM transaction you would like to broadcast.

func (*Client) EmailAuth

func (c *Client) EmailAuth(ctx context.Context, input EmailAuthRequest) (*EmailAuthResponse, error)

Authenticate a user via email.

func (*Client) ExportPrivateKey

func (c *Client) ExportPrivateKey(ctx context.Context, input ExportPrivateKeyRequest) (*ExportPrivateKeyResponse, error)

Export a private key.

func (*Client) ExportWallet

func (c *Client) ExportWallet(ctx context.Context, input ExportWalletRequest) (*ExportWalletResponse, error)

Export a wallet.

func (*Client) ExportWalletAccount

func (c *Client) ExportWalletAccount(ctx context.Context, input ExportWalletAccountRequest) (*ExportWalletAccountResponse, error)

Export a wallet account.

func (*Client) GetAPIKey

func (c *Client) GetAPIKey(ctx context.Context, input GetAPIKeyRequest) (*GetAPIKeyResponse, error)

Get details about an API key.

func (*Client) GetAPIKeys

func (c *Client) GetAPIKeys(ctx context.Context, input GetAPIKeysRequest) (*GetAPIKeysResponse, error)

Get details about API keys for a user.

func (*Client) GetActivities

func (c *Client) GetActivities(ctx context.Context, input GetActivitiesRequest) (*GetActivitiesResponse, error)

List all activities within an organization.

func (*Client) GetActivity

func (c *Client) GetActivity(ctx context.Context, input GetActivityRequest) (*ActivityResponse, error)

Get details about an activity.

func (*Client) GetAppProofs

func (c *Client) GetAppProofs(ctx context.Context, input GetAppProofsRequest) (*GetAppProofsResponse, error)

List the App Proofs for the given activity.

func (*Client) GetAppStatus

func (c *Client) GetAppStatus(ctx context.Context, input GetAppStatusRequest) (*GetAppStatusResponse, error)

Get live runtime status for a TVC App from the cluster.

func (*Client) GetAuthenticator

func (c *Client) GetAuthenticator(ctx context.Context, input GetAuthenticatorRequest) (*GetAuthenticatorResponse, error)

Get details about an authenticator.

func (*Client) GetAuthenticators

func (c *Client) GetAuthenticators(ctx context.Context, input GetAuthenticatorsRequest) (*GetAuthenticatorsResponse, error)

Get details about authenticators for a user.

func (*Client) GetBootProof

func (c *Client) GetBootProof(ctx context.Context, input GetBootProofRequest) (*BootProofResponse, error)

Get the boot proof for a given ephemeral key.

func (*Client) GetGasUsage

func (c *Client) GetGasUsage(ctx context.Context, input GetGasUsageRequest) (*GetGasUsageResponse, error)

Get gas usage and gas limits for either the parent organization or a sub-organization.

func (*Client) GetIPAllowlist

func (c *Client) GetIPAllowlist(ctx context.Context, input GetIPAllowlistRequest) (*GetIPAllowlistResponse, error)

Get IP allowlist and rules for an organization.

func (*Client) GetLatestBootProof

func (c *Client) GetLatestBootProof(ctx context.Context, input GetLatestBootProofRequest) (*BootProofResponse, error)

Get the latest boot proof for a given enclave app name.

func (*Client) GetMfaPolicies

func (c *Client) GetMfaPolicies(ctx context.Context, input GetMfaPoliciesRequest) (*GetMfaPoliciesResponse, error)

Get all MFA policies for a user.

func (*Client) GetMfaPolicy

func (c *Client) GetMfaPolicy(ctx context.Context, input GetMfaPolicyRequest) (*GetMfaPolicyResponse, error)

Get a single MFA policy for a user.

func (*Client) GetMfaStatus

func (c *Client) GetMfaStatus(ctx context.Context, input GetMfaStatusRequest) (*GetMfaStatusResponse, error)

Get the MFA status of an activity for a specific user or all voting users.

func (*Client) GetNonces

func (c *Client) GetNonces(ctx context.Context, input GetNoncesRequest) (*GetNoncesResponse, error)

Get nonce values for an address on a given network. Can fetch the standard on-chain nonce and/or the gas station nonce used for sponsored transactions.

func (*Client) GetOAuth2Credential

func (c *Client) GetOAuth2Credential(ctx context.Context, input GetOAuth2CredentialRequest) (*GetOAuth2CredentialResponse, error)

Get details about an OAuth 2.0 credential.

func (*Client) GetOAuthProviders

func (c *Client) GetOAuthProviders(ctx context.Context, input GetOAuthProvidersRequest) (*GetOAuthProvidersResponse, error)

Get details about Oauth providers for a user.

func (*Client) GetOnRampTransactionStatus

Get the status of an on ramp transaction.

func (*Client) GetOrganizationConfigs

func (c *Client) GetOrganizationConfigs(ctx context.Context, input GetOrganizationConfigsRequest) (*GetOrganizationConfigsResponse, error)

Get quorum settings and features for an organization.

func (*Client) GetPolicies

func (c *Client) GetPolicies(ctx context.Context, input GetPoliciesRequest) (*GetPoliciesResponse, error)

List all policies within an organization.

func (*Client) GetPolicy

func (c *Client) GetPolicy(ctx context.Context, input GetPolicyRequest) (*GetPolicyResponse, error)

Get details about a policy.

func (*Client) GetPolicyEvaluations

func (c *Client) GetPolicyEvaluations(ctx context.Context, input GetPolicyEvaluationsRequest) (*GetPolicyEvaluationsResponse, error)

Get the policy evaluations for an activity.

func (*Client) GetPrivateKey

func (c *Client) GetPrivateKey(ctx context.Context, input GetPrivateKeyRequest) (*GetPrivateKeyResponse, error)

Get details about a private key.

func (*Client) GetPrivateKeys

func (c *Client) GetPrivateKeys(ctx context.Context, input GetPrivateKeysRequest) (*GetPrivateKeysResponse, error)

List all private keys within an organization.

func (*Client) GetSendTransactionStatus

Get the status of a send transaction request.

func (*Client) GetSessionProfile

func (c *Client) GetSessionProfile(ctx context.Context, input GetSessionProfileRequest) (*GetSessionProfileResponse, error)

Get a single session profile for an organization.

func (*Client) GetSessionProfiles

func (c *Client) GetSessionProfiles(ctx context.Context, input GetSessionProfilesRequest) (*GetSessionProfilesResponse, error)

Get all session profiles for an organization.

func (*Client) GetSmartContractInterface

Get details about a smart contract interface.

func (*Client) GetSmartContractInterfaces

List all smart contract interfaces within an organization.

func (*Client) GetSubOrgIds

func (c *Client) GetSubOrgIds(ctx context.Context, input GetSubOrgIdsRequest) (*GetSubOrgIdsResponse, error)

Get all suborg IDs associated given a parent org ID and an optional filter.

func (*Client) GetTVCApp

func (c *Client) GetTVCApp(ctx context.Context, input GetTVCAppRequest) (*GetTVCAppResponse, error)

Get details about a single TVC App

func (*Client) GetTVCAppDeployments

func (c *Client) GetTVCAppDeployments(ctx context.Context, input GetTVCAppDeploymentsRequest) (*GetTVCAppDeploymentsResponse, error)

List all deployments for a given TVC App

func (*Client) GetTVCApps

func (c *Client) GetTVCApps(ctx context.Context, input GetTVCAppsRequest) (*GetTVCAppsResponse, error)

List all TVC Apps within an organization.

func (*Client) GetTVCDeployment

func (c *Client) GetTVCDeployment(ctx context.Context, input GetTVCDeploymentRequest) (*GetTVCDeploymentResponse, error)

Get details about a single TVC Deployment

func (*Client) GetTVCDeploymentDebugLogs

Get a bounded window of application logs from a debug-mode TVC deployment. Returned lines are collected from every running replica and sorted by platform timestamp.

func (*Client) GetUser

func (c *Client) GetUser(ctx context.Context, input GetUserRequest) (*GetUserResponse, error)

Get details about a user.

func (*Client) GetUsers

func (c *Client) GetUsers(ctx context.Context, input GetUsersRequest) (*GetUsersResponse, error)

List all users within an organization.

func (*Client) GetVerifiedSubOrgIds

func (c *Client) GetVerifiedSubOrgIds(ctx context.Context, input GetVerifiedSubOrgIdsRequest) (*GetVerifiedSubOrgIdsResponse, error)

Get all email or phone verified suborg IDs associated given a parent org ID.

func (*Client) GetWallet

func (c *Client) GetWallet(ctx context.Context, input GetWalletRequest) (*GetWalletResponse, error)

Get details about a wallet.

func (*Client) GetWalletAccount

func (c *Client) GetWalletAccount(ctx context.Context, input GetWalletAccountRequest) (*GetWalletAccountResponse, error)

Get a single wallet account.

func (*Client) GetWalletAccounts

func (c *Client) GetWalletAccounts(ctx context.Context, input GetWalletAccountsRequest) (*GetWalletAccountsResponse, error)

List all accounts within a wallet.

func (*Client) GetWalletAddressBalances

Get balances of supported assets for an address on the specified network. Only non-zero balances are returned.

func (*Client) GetWallets

func (c *Client) GetWallets(ctx context.Context, input GetWalletsRequest) (*GetWalletsResponse, error)

List all wallets within an organization.

func (*Client) GetWhoami

func (c *Client) GetWhoami(ctx context.Context, input GetWhoamiRequest) (*GetWhoamiResponse, error)

Get basic information about your current API or WebAuthN user and their organization. Affords sub-organization look ups via parent organization for WebAuthN or API key users.

func (*Client) ImportPrivateKey

func (c *Client) ImportPrivateKey(ctx context.Context, input ImportPrivateKeyRequest) (*ImportPrivateKeyResponse, error)

Import a private key.

func (*Client) ImportWallet

func (c *Client) ImportWallet(ctx context.Context, input ImportWalletRequest) (*ImportWalletResponse, error)

Import a wallet.

func (*Client) InitFiatOnRamp

func (c *Client) InitFiatOnRamp(ctx context.Context, input InitFiatOnRampRequest) (*InitFiatOnRampResponse, error)

Initiate a fiat on ramp flow.

func (*Client) InitImportPrivateKey

func (c *Client) InitImportPrivateKey(ctx context.Context, input InitImportPrivateKeyRequest) (*InitImportPrivateKeyResponse, error)

Initialize a new private key import.

func (*Client) InitImportWallet

func (c *Client) InitImportWallet(ctx context.Context, input InitImportWalletRequest) (*InitImportWalletResponse, error)

Initialize a new wallet import.

func (*Client) InitOTP

func (c *Client) InitOTP(ctx context.Context, input InitOTPRequest) (*InitOTPResponse, error)

Initiate a generic OTP activity.

func (*Client) InitOTPAuth

func (c *Client) InitOTPAuth(ctx context.Context, input InitOTPAuthRequest) (*InitOTPAuthResponse, error)

Initiate an OTP auth activity.

func (*Client) InitUserEmailRecovery

func (c *Client) InitUserEmailRecovery(ctx context.Context, input InitUserEmailRecoveryRequest) (*InitUserEmailRecoveryResponse, error)

Initialize a new email recovery.

func (*Client) ListEmailEvents

func (c *Client) ListEmailEvents(ctx context.Context, input ListEmailEventsRequest) (*ListEmailEventsResponse, error)

List email events for the organization.

func (*Client) ListFiatOnRampCredentials

List all fiat on ramp provider credentials within an organization.

func (*Client) ListOAuth2Credentials

func (c *Client) ListOAuth2Credentials(ctx context.Context, input ListOAuth2CredentialsRequest) (*ListOAuth2CredentialsResponse, error)

List all OAuth 2.0 credentials within an organization.

func (*Client) ListPrivateKeyTags

func (c *Client) ListPrivateKeyTags(ctx context.Context, input ListPrivateKeyTagsRequest) (*ListPrivateKeyTagsResponse, error)

List all private key tags within an organization.

func (*Client) ListSupportedAssets

func (c *Client) ListSupportedAssets(ctx context.Context, input ListSupportedAssetsRequest) (*ListSupportedAssetsResponse, error)

List supported assets for the specified network.

func (*Client) ListUserTags

func (c *Client) ListUserTags(ctx context.Context, input ListUserTagsRequest) (*ListUserTagsResponse, error)

List all user tags within an organization.

func (*Client) ListWebhookEndpoints

func (c *Client) ListWebhookEndpoints(ctx context.Context, input ListWebhookEndpointsRequest) (*ListWebhookEndpointsResponse, error)

List webhook endpoints within an organization.

func (*Client) OAuth

func (c *Client) OAuth(ctx context.Context, input OAuthRequest) (*OAuthResponse, error)

Authenticate a user with an OIDC token (Oauth).

func (*Client) OAuth2Authenticate

func (c *Client) OAuth2Authenticate(ctx context.Context, input OAuth2AuthenticateRequest) (*OAuth2AuthenticateResponse, error)

Authenticate a user with an OAuth 2.0 provider and receive an OIDC token to use with the LoginWithOAuth or CreateSubOrganization activities

func (*Client) OAuthLogin

func (c *Client) OAuthLogin(ctx context.Context, input OAuthLoginRequest) (*OAuthLoginResponse, error)

Create an Oauth session for a user.

func (*Client) OTPAuth

func (c *Client) OTPAuth(ctx context.Context, input OTPAuthRequest) (*OTPAuthResponse, error)

Authenticate a user with an OTP code sent via email or SMS.

func (*Client) OTPLogin

func (c *Client) OTPLogin(ctx context.Context, input OTPLoginRequest) (*OTPLoginResponse, error)

Create an OTP session for a user.

func (*Client) RecoverUser

func (c *Client) RecoverUser(ctx context.Context, input RecoverUserRequest) (*RecoverUserResponse, error)

Complete the process of recovering a user by adding an authenticator.

func (*Client) RejectActivity

func (c *Client) RejectActivity(ctx context.Context, input RejectActivityRequest) (*RejectActivityResponse, error)

Reject an activity.

func (*Client) RemoveIPAllowlist

func (c *Client) RemoveIPAllowlist(ctx context.Context, input RemoveIPAllowlistRequest) (*RemoveIPAllowlistResponse, error)

Delete IP allowlist and all associated rules for organization or API key. After removal, access will be determined by organization-level allowlist (for API keys) or allowed from all IPs (for organizations).

func (*Client) RemoveOrganizationFeature

Remove an organization feature. This activity must be approved by the current root quorum.

func (*Client) RestoreTVCDeployment

func (c *Client) RestoreTVCDeployment(ctx context.Context, input RestoreTVCDeploymentRequest) (*RestoreTVCDeploymentResponse, error)

Restore a deleted TVC Deployment

func (*Client) SetIPAllowlist

func (c *Client) SetIPAllowlist(ctx context.Context, input SetIPAllowlistRequest) (*SetIPAllowlistResponse, error)

Create or update IP allowlist and rules for organization or API key. The IP allowlist restricts API access to specific CIDR blocks. Organization-level allowlists apply to all API keys unless overridden by a key-specific allowlist.

func (*Client) SetOrganizationFeature

func (c *Client) SetOrganizationFeature(ctx context.Context, input SetOrganizationFeatureRequest) (*SetOrganizationFeatureResponse, error)

Set an organization feature. This activity must be approved by the current root quorum.

func (*Client) SignRawPayload

func (c *Client) SignRawPayload(ctx context.Context, input SignRawPayloadRequest) (*SignRawPayloadResponse, error)

Sign a raw payload.

func (*Client) SignRawPayloads

func (c *Client) SignRawPayloads(ctx context.Context, input SignRawPayloadsRequest) (*SignRawPayloadsResponse, error)

Sign multiple raw payloads with the same signing parameters.

func (*Client) SignTransaction

func (c *Client) SignTransaction(ctx context.Context, input SignTransactionRequest) (*SignTransactionResponse, error)

Sign a transaction.

func (*Client) SolSendTransaction

func (c *Client) SolSendTransaction(ctx context.Context, input SolSendTransactionRequest) (*SolSendTransactionResponse, error)

Submit a transaction intent describing an SVM transaction you would like to broadcast.

func (*Client) SparkClaimTransfer

func (c *Client) SparkClaimTransfer(ctx context.Context, input SparkClaimTransferRequest) (*SparkClaimTransferResponse, error)

Construct receiver-side encrypted operator packages to claim a Spark transfer. Does not perform FROST signing.

func (*Client) SparkPrepareLightningReceive

Generate a Lightning preimage and distribute Feldman shares to operators for a Spark Lightning receive. Does not perform FROST signing.

func (*Client) SparkPrepareTransfer

func (c *Client) SparkPrepareTransfer(ctx context.Context, input SparkPrepareTransferRequest) (*SparkPrepareTransferResponse, error)

Construct sender-side encrypted operator packages for a Spark BTC transfer. Does not perform FROST signing.

func (*Client) SparkSignFrost

func (c *Client) SparkSignFrost(ctx context.Context, input SparkSignFrostRequest) (*SparkSignFrostResponse, error)

Perform pure FROST partial signing for a Spark wallet. Produces partial signatures without constructing operator packages.

func (*Client) StampApproveActivity

func (c *Client) StampApproveActivity(ctx context.Context, input ApproveActivityRequest) (*SignedRequest, error)

func (*Client) StampCreateAPIKeys

func (c *Client) StampCreateAPIKeys(ctx context.Context, input CreateAPIKeysRequest) (*SignedRequest, error)

func (*Client) StampCreateAuthenticators

func (c *Client) StampCreateAuthenticators(ctx context.Context, input CreateAuthenticatorsRequest) (*SignedRequest, error)

func (*Client) StampCreateFiatOnRampCredential

func (c *Client) StampCreateFiatOnRampCredential(ctx context.Context, input CreateFiatOnRampCredentialRequest) (*SignedRequest, error)

func (*Client) StampCreateInvitations

func (c *Client) StampCreateInvitations(ctx context.Context, input CreateInvitationsRequest) (*SignedRequest, error)

func (*Client) StampCreateMfaPolicy

func (c *Client) StampCreateMfaPolicy(ctx context.Context, input CreateMfaPolicyRequest) (*SignedRequest, error)

func (*Client) StampCreateOAuth2Credential

func (c *Client) StampCreateOAuth2Credential(ctx context.Context, input CreateOAuth2CredentialRequest) (*SignedRequest, error)

func (*Client) StampCreateOAuthProviders

func (c *Client) StampCreateOAuthProviders(ctx context.Context, input CreateOAuthProvidersRequest) (*SignedRequest, error)

func (*Client) StampCreatePolicies

func (c *Client) StampCreatePolicies(ctx context.Context, input CreatePoliciesRequest) (*SignedRequest, error)

func (*Client) StampCreatePolicy

func (c *Client) StampCreatePolicy(ctx context.Context, input CreatePolicyRequest) (*SignedRequest, error)

func (*Client) StampCreatePrivateKeyTag

func (c *Client) StampCreatePrivateKeyTag(ctx context.Context, input CreatePrivateKeyTagRequest) (*SignedRequest, error)

func (*Client) StampCreatePrivateKeys

func (c *Client) StampCreatePrivateKeys(ctx context.Context, input CreatePrivateKeysRequest) (*SignedRequest, error)

func (*Client) StampCreateReadOnlySession

func (c *Client) StampCreateReadOnlySession(ctx context.Context, input CreateReadOnlySessionRequest) (*SignedRequest, error)

func (*Client) StampCreateReadWriteSession

func (c *Client) StampCreateReadWriteSession(ctx context.Context, input CreateReadWriteSessionRequest) (*SignedRequest, error)

func (*Client) StampCreateSessionProfile

func (c *Client) StampCreateSessionProfile(ctx context.Context, input CreateSessionProfileRequest) (*SignedRequest, error)

func (*Client) StampCreateSmartContractInterface

func (c *Client) StampCreateSmartContractInterface(ctx context.Context, input CreateSmartContractInterfaceRequest) (*SignedRequest, error)

func (*Client) StampCreateSubOrganization

func (c *Client) StampCreateSubOrganization(ctx context.Context, input CreateSubOrganizationRequest) (*SignedRequest, error)

func (*Client) StampCreateTVCApp

func (c *Client) StampCreateTVCApp(ctx context.Context, input CreateTVCAppRequest) (*SignedRequest, error)

func (*Client) StampCreateTVCDeployment

func (c *Client) StampCreateTVCDeployment(ctx context.Context, input CreateTVCDeploymentRequest) (*SignedRequest, error)

func (*Client) StampCreateTVCManifestApprovals

func (c *Client) StampCreateTVCManifestApprovals(ctx context.Context, input CreateTVCManifestApprovalsRequest) (*SignedRequest, error)

func (*Client) StampCreateUserTag

func (c *Client) StampCreateUserTag(ctx context.Context, input CreateUserTagRequest) (*SignedRequest, error)

func (*Client) StampCreateUsers

func (c *Client) StampCreateUsers(ctx context.Context, input CreateUsersRequest) (*SignedRequest, error)

func (*Client) StampCreateWallet

func (c *Client) StampCreateWallet(ctx context.Context, input CreateWalletRequest) (*SignedRequest, error)

func (*Client) StampCreateWalletAccounts

func (c *Client) StampCreateWalletAccounts(ctx context.Context, input CreateWalletAccountsRequest) (*SignedRequest, error)

func (*Client) StampCreateWebhookEndpoint

func (c *Client) StampCreateWebhookEndpoint(ctx context.Context, input CreateWebhookEndpointRequest) (*SignedRequest, error)

func (*Client) StampDeleteAPIKeys

func (c *Client) StampDeleteAPIKeys(ctx context.Context, input DeleteAPIKeysRequest) (*SignedRequest, error)

func (*Client) StampDeleteAuthenticators

func (c *Client) StampDeleteAuthenticators(ctx context.Context, input DeleteAuthenticatorsRequest) (*SignedRequest, error)

func (*Client) StampDeleteFiatOnRampCredential

func (c *Client) StampDeleteFiatOnRampCredential(ctx context.Context, input DeleteFiatOnRampCredentialRequest) (*SignedRequest, error)

func (*Client) StampDeleteInvitation

func (c *Client) StampDeleteInvitation(ctx context.Context, input DeleteInvitationRequest) (*SignedRequest, error)

func (*Client) StampDeleteMfaPolicy

func (c *Client) StampDeleteMfaPolicy(ctx context.Context, input DeleteMfaPolicyRequest) (*SignedRequest, error)

func (*Client) StampDeleteOAuth2Credential

func (c *Client) StampDeleteOAuth2Credential(ctx context.Context, input DeleteOAuth2CredentialRequest) (*SignedRequest, error)

func (*Client) StampDeleteOAuthProviders

func (c *Client) StampDeleteOAuthProviders(ctx context.Context, input DeleteOAuthProvidersRequest) (*SignedRequest, error)

func (*Client) StampDeletePolicies

func (c *Client) StampDeletePolicies(ctx context.Context, input DeletePoliciesRequest) (*SignedRequest, error)

func (*Client) StampDeletePolicy

func (c *Client) StampDeletePolicy(ctx context.Context, input DeletePolicyRequest) (*SignedRequest, error)

func (*Client) StampDeletePrivateKeyTags

func (c *Client) StampDeletePrivateKeyTags(ctx context.Context, input DeletePrivateKeyTagsRequest) (*SignedRequest, error)

func (*Client) StampDeletePrivateKeys

func (c *Client) StampDeletePrivateKeys(ctx context.Context, input DeletePrivateKeysRequest) (*SignedRequest, error)

func (*Client) StampDeleteSmartContractInterface

func (c *Client) StampDeleteSmartContractInterface(ctx context.Context, input DeleteSmartContractInterfaceRequest) (*SignedRequest, error)

func (*Client) StampDeleteSubOrganization

func (c *Client) StampDeleteSubOrganization(ctx context.Context, input DeleteSubOrganizationRequest) (*SignedRequest, error)

func (*Client) StampDeleteTVCAppAndDeployments

func (c *Client) StampDeleteTVCAppAndDeployments(ctx context.Context, input DeleteTVCAppAndDeploymentsRequest) (*SignedRequest, error)

func (*Client) StampDeleteTVCDeployment

func (c *Client) StampDeleteTVCDeployment(ctx context.Context, input DeleteTVCDeploymentRequest) (*SignedRequest, error)

func (*Client) StampDeleteUserTags

func (c *Client) StampDeleteUserTags(ctx context.Context, input DeleteUserTagsRequest) (*SignedRequest, error)

func (*Client) StampDeleteUsers

func (c *Client) StampDeleteUsers(ctx context.Context, input DeleteUsersRequest) (*SignedRequest, error)

func (*Client) StampDeleteWalletAccounts

func (c *Client) StampDeleteWalletAccounts(ctx context.Context, input DeleteWalletAccountsRequest) (*SignedRequest, error)

func (*Client) StampDeleteWallets

func (c *Client) StampDeleteWallets(ctx context.Context, input DeleteWalletsRequest) (*SignedRequest, error)

func (*Client) StampDeleteWebhookEndpoint

func (c *Client) StampDeleteWebhookEndpoint(ctx context.Context, input DeleteWebhookEndpointRequest) (*SignedRequest, error)

func (*Client) StampETHSendTransaction

func (c *Client) StampETHSendTransaction(ctx context.Context, input ETHSendTransactionRequest) (*SignedRequest, error)

func (*Client) StampEmailAuth

func (c *Client) StampEmailAuth(ctx context.Context, input EmailAuthRequest) (*SignedRequest, error)

func (*Client) StampExportPrivateKey

func (c *Client) StampExportPrivateKey(ctx context.Context, input ExportPrivateKeyRequest) (*SignedRequest, error)

func (*Client) StampExportWallet

func (c *Client) StampExportWallet(ctx context.Context, input ExportWalletRequest) (*SignedRequest, error)

func (*Client) StampExportWalletAccount

func (c *Client) StampExportWalletAccount(ctx context.Context, input ExportWalletAccountRequest) (*SignedRequest, error)

func (*Client) StampImportPrivateKey

func (c *Client) StampImportPrivateKey(ctx context.Context, input ImportPrivateKeyRequest) (*SignedRequest, error)

func (*Client) StampImportWallet

func (c *Client) StampImportWallet(ctx context.Context, input ImportWalletRequest) (*SignedRequest, error)

func (*Client) StampInitFiatOnRamp

func (c *Client) StampInitFiatOnRamp(ctx context.Context, input InitFiatOnRampRequest) (*SignedRequest, error)

func (*Client) StampInitImportPrivateKey

func (c *Client) StampInitImportPrivateKey(ctx context.Context, input InitImportPrivateKeyRequest) (*SignedRequest, error)

func (*Client) StampInitImportWallet

func (c *Client) StampInitImportWallet(ctx context.Context, input InitImportWalletRequest) (*SignedRequest, error)

func (*Client) StampInitOTP

func (c *Client) StampInitOTP(ctx context.Context, input InitOTPRequest) (*SignedRequest, error)

func (*Client) StampInitOTPAuth

func (c *Client) StampInitOTPAuth(ctx context.Context, input InitOTPAuthRequest) (*SignedRequest, error)

func (*Client) StampInitUserEmailRecovery

func (c *Client) StampInitUserEmailRecovery(ctx context.Context, input InitUserEmailRecoveryRequest) (*SignedRequest, error)

func (*Client) StampLogin

func (c *Client) StampLogin(ctx context.Context, input StampLoginRequest) (*StampLoginResponse, error)

Create a session for a user through stamping client side (API key, wallet client, or passkey client).

func (*Client) StampOAuth

func (c *Client) StampOAuth(ctx context.Context, input OAuthRequest) (*SignedRequest, error)

func (*Client) StampOAuth2Authenticate

func (c *Client) StampOAuth2Authenticate(ctx context.Context, input OAuth2AuthenticateRequest) (*SignedRequest, error)

func (*Client) StampOAuthLogin

func (c *Client) StampOAuthLogin(ctx context.Context, input OAuthLoginRequest) (*SignedRequest, error)

func (*Client) StampOTPAuth

func (c *Client) StampOTPAuth(ctx context.Context, input OTPAuthRequest) (*SignedRequest, error)

func (*Client) StampOTPLogin

func (c *Client) StampOTPLogin(ctx context.Context, input OTPLoginRequest) (*SignedRequest, error)

func (*Client) StampRecoverUser

func (c *Client) StampRecoverUser(ctx context.Context, input RecoverUserRequest) (*SignedRequest, error)

func (*Client) StampRejectActivity

func (c *Client) StampRejectActivity(ctx context.Context, input RejectActivityRequest) (*SignedRequest, error)

func (*Client) StampRemoveIPAllowlist

func (c *Client) StampRemoveIPAllowlist(ctx context.Context, input RemoveIPAllowlistRequest) (*SignedRequest, error)

func (*Client) StampRemoveOrganizationFeature

func (c *Client) StampRemoveOrganizationFeature(ctx context.Context, input RemoveOrganizationFeatureRequest) (*SignedRequest, error)

func (*Client) StampRestoreTVCDeployment

func (c *Client) StampRestoreTVCDeployment(ctx context.Context, input RestoreTVCDeploymentRequest) (*SignedRequest, error)

func (*Client) StampSetIPAllowlist

func (c *Client) StampSetIPAllowlist(ctx context.Context, input SetIPAllowlistRequest) (*SignedRequest, error)

func (*Client) StampSetOrganizationFeature

func (c *Client) StampSetOrganizationFeature(ctx context.Context, input SetOrganizationFeatureRequest) (*SignedRequest, error)

func (*Client) StampSignRawPayload

func (c *Client) StampSignRawPayload(ctx context.Context, input SignRawPayloadRequest) (*SignedRequest, error)

func (*Client) StampSignRawPayloads

func (c *Client) StampSignRawPayloads(ctx context.Context, input SignRawPayloadsRequest) (*SignedRequest, error)

func (*Client) StampSignTransaction

func (c *Client) StampSignTransaction(ctx context.Context, input SignTransactionRequest) (*SignedRequest, error)

func (*Client) StampSolSendTransaction

func (c *Client) StampSolSendTransaction(ctx context.Context, input SolSendTransactionRequest) (*SignedRequest, error)

func (*Client) StampSparkClaimTransfer

func (c *Client) StampSparkClaimTransfer(ctx context.Context, input SparkClaimTransferRequest) (*SignedRequest, error)

func (*Client) StampSparkPrepareLightningReceive

func (c *Client) StampSparkPrepareLightningReceive(ctx context.Context, input SparkPrepareLightningReceiveRequest) (*SignedRequest, error)

func (*Client) StampSparkPrepareTransfer

func (c *Client) StampSparkPrepareTransfer(ctx context.Context, input SparkPrepareTransferRequest) (*SignedRequest, error)

func (*Client) StampSparkSignFrost

func (c *Client) StampSparkSignFrost(ctx context.Context, input SparkSignFrostRequest) (*SignedRequest, error)

func (*Client) StampStampLogin

func (c *Client) StampStampLogin(ctx context.Context, input StampLoginRequest) (*SignedRequest, error)

func (*Client) StampUpdateFiatOnRampCredential

func (c *Client) StampUpdateFiatOnRampCredential(ctx context.Context, input UpdateFiatOnRampCredentialRequest) (*SignedRequest, error)

func (*Client) StampUpdateMfaPolicy

func (c *Client) StampUpdateMfaPolicy(ctx context.Context, input UpdateMfaPolicyRequest) (*SignedRequest, error)

func (*Client) StampUpdateOAuth2Credential

func (c *Client) StampUpdateOAuth2Credential(ctx context.Context, input UpdateOAuth2CredentialRequest) (*SignedRequest, error)

func (*Client) StampUpdateOrganizationName

func (c *Client) StampUpdateOrganizationName(ctx context.Context, input UpdateOrganizationNameRequest) (*SignedRequest, error)

func (*Client) StampUpdatePolicy

func (c *Client) StampUpdatePolicy(ctx context.Context, input UpdatePolicyRequest) (*SignedRequest, error)

func (*Client) StampUpdatePrivateKeyTag

func (c *Client) StampUpdatePrivateKeyTag(ctx context.Context, input UpdatePrivateKeyTagRequest) (*SignedRequest, error)

func (*Client) StampUpdateRootQuorum

func (c *Client) StampUpdateRootQuorum(ctx context.Context, input UpdateRootQuorumRequest) (*SignedRequest, error)

func (*Client) StampUpdateTVCAppLiveDeployment

func (c *Client) StampUpdateTVCAppLiveDeployment(ctx context.Context, input UpdateTVCAppLiveDeploymentRequest) (*SignedRequest, error)

func (*Client) StampUpdateUser

func (c *Client) StampUpdateUser(ctx context.Context, input UpdateUserRequest) (*SignedRequest, error)

func (*Client) StampUpdateUserEmail

func (c *Client) StampUpdateUserEmail(ctx context.Context, input UpdateUserEmailRequest) (*SignedRequest, error)

func (*Client) StampUpdateUserName

func (c *Client) StampUpdateUserName(ctx context.Context, input UpdateUserNameRequest) (*SignedRequest, error)

func (*Client) StampUpdateUserPhoneNumber

func (c *Client) StampUpdateUserPhoneNumber(ctx context.Context, input UpdateUserPhoneNumberRequest) (*SignedRequest, error)

func (*Client) StampUpdateUserTag

func (c *Client) StampUpdateUserTag(ctx context.Context, input UpdateUserTagRequest) (*SignedRequest, error)

func (*Client) StampUpdateWallet

func (c *Client) StampUpdateWallet(ctx context.Context, input UpdateWalletRequest) (*SignedRequest, error)

func (*Client) StampUpdateWebhookEndpoint

func (c *Client) StampUpdateWebhookEndpoint(ctx context.Context, input UpdateWebhookEndpointRequest) (*SignedRequest, error)

func (*Client) StampVerifyOTP

func (c *Client) StampVerifyOTP(ctx context.Context, input VerifyOTPRequest) (*SignedRequest, error)

func (*Client) UpdateFiatOnRampCredential

Update a fiat on ramp provider credential

func (*Client) UpdateMfaPolicy

func (c *Client) UpdateMfaPolicy(ctx context.Context, input UpdateMfaPolicyRequest) (*UpdateMfaPolicyResponse, error)

Update an MFA policy for a user.

func (*Client) UpdateOAuth2Credential

func (c *Client) UpdateOAuth2Credential(ctx context.Context, input UpdateOAuth2CredentialRequest) (*UpdateOAuth2CredentialResponse, error)

Update an OAuth 2.0 provider credential

func (*Client) UpdateOrganizationName

func (c *Client) UpdateOrganizationName(ctx context.Context, input UpdateOrganizationNameRequest) (*UpdateOrganizationNameResponse, error)

Update the name of an organization.

func (*Client) UpdatePolicy

func (c *Client) UpdatePolicy(ctx context.Context, input UpdatePolicyRequest) (*UpdatePolicyResponse, error)

Update an existing policy.

func (*Client) UpdatePrivateKeyTag

func (c *Client) UpdatePrivateKeyTag(ctx context.Context, input UpdatePrivateKeyTagRequest) (*UpdatePrivateKeyTagResponse, error)

Update human-readable name or associated private keys. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.

func (*Client) UpdateRootQuorum

func (c *Client) UpdateRootQuorum(ctx context.Context, input UpdateRootQuorumRequest) (*UpdateRootQuorumResponse, error)

Set the threshold and members of the root quorum. This activity must be approved by the current root quorum.

func (*Client) UpdateTVCAppLiveDeployment

Set the live deployment for a TVC App

func (*Client) UpdateUser

func (c *Client) UpdateUser(ctx context.Context, input UpdateUserRequest) (*UpdateUserResponse, error)

Update a user in an existing organization.

func (*Client) UpdateUserEmail

func (c *Client) UpdateUserEmail(ctx context.Context, input UpdateUserEmailRequest) (*UpdateUserEmailResponse, error)

Update a user's email in an existing organization.

func (*Client) UpdateUserName

func (c *Client) UpdateUserName(ctx context.Context, input UpdateUserNameRequest) (*UpdateUserNameResponse, error)

Update a user's name in an existing organization.

func (*Client) UpdateUserPhoneNumber

func (c *Client) UpdateUserPhoneNumber(ctx context.Context, input UpdateUserPhoneNumberRequest) (*UpdateUserPhoneNumberResponse, error)

Update a user's phone number in an existing organization.

func (*Client) UpdateUserTag

func (c *Client) UpdateUserTag(ctx context.Context, input UpdateUserTagRequest) (*UpdateUserTagResponse, error)

Update human-readable name or associated users. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.

func (*Client) UpdateWallet

func (c *Client) UpdateWallet(ctx context.Context, input UpdateWalletRequest) (*UpdateWalletResponse, error)

Update a wallet for an organization.

func (*Client) UpdateWebhookEndpoint

func (c *Client) UpdateWebhookEndpoint(ctx context.Context, input UpdateWebhookEndpointRequest) (*UpdateWebhookEndpointResponse, error)

Update a webhook endpoint for an organization.

func (*Client) ValidateTVCImage

func (c *Client) ValidateTVCImage(ctx context.Context, input ValidateTVCImageRequest) (*ValidateTVCImageResponse, error)

Validate a container image URL and pull secret for TVC deployment

func (*Client) VerifyOTP

func (c *Client) VerifyOTP(ctx context.Context, input VerifyOTPRequest) (*VerifyOTPResponse, error)

Verify a generic OTP.

type ClientSignature

type ClientSignature struct {
	// The message that was signed.
	Message string `json:"message"`
	// The public component of a cryptographic key pair used to create the signature.
	PublicKey string `json:"publicKey"`
	// The signature scheme used to generate the client signature.
	Scheme ClientSignatureScheme `json:"scheme"`
	// The cryptographic signature over the message.
	Signature string `json:"signature"`
}

type ClientSignatureScheme

type ClientSignatureScheme string
const (
	ClientSignatureSchemeApip256 ClientSignatureScheme = "CLIENT_SIGNATURE_SCHEME_API_P256"
)

type Config

type Config struct {
	Features []Feature             `json:"features,omitempty"`
	Quorum   *ExternalDataV1Quorum `json:"quorum,omitempty"`
}

type CreateAPIKeysIntent

type CreateAPIKeysIntent struct {
	// A list of API Keys.
	APIKeys []APIKeyParams `json:"apiKeys"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type CreateAPIKeysIntentV2

type CreateAPIKeysIntentV2 struct {
	// A list of API Keys.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type CreateAPIKeysRequest

type CreateAPIKeysRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of API Keys.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

func (CreateAPIKeysRequest) ActivityType

func (CreateAPIKeysRequest) ActivityType() string

type CreateAPIKeysResponse

type CreateAPIKeysResponse struct {
	Activity Activity `json:"activity"`
	CreateAPIKeysResult
}

type CreateAPIKeysResult

type CreateAPIKeysResult struct {
	// A list of API Key IDs.
	APIKeyIds []string `json:"apiKeyIds"`
}

type CreateAPIOnlyUsersIntent

type CreateAPIOnlyUsersIntent struct {
	// A list of API-only Users to create.
	APIOnlyUsers []APIOnlyUserParams `json:"apiOnlyUsers"`
}

type CreateAPIOnlyUsersResult

type CreateAPIOnlyUsersResult struct {
	// A list of API-only User IDs.
	UserIds []string `json:"userIds"`
}

type CreateAuthenticatorsIntent

type CreateAuthenticatorsIntent struct {
	// A list of Authenticators.
	Authenticators []AuthenticatorParams `json:"authenticators"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type CreateAuthenticatorsIntentV2

type CreateAuthenticatorsIntentV2 struct {
	// A list of Authenticators.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type CreateAuthenticatorsRequest

type CreateAuthenticatorsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Authenticators.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

func (CreateAuthenticatorsRequest) ActivityType

func (CreateAuthenticatorsRequest) ActivityType() string

type CreateAuthenticatorsResponse

type CreateAuthenticatorsResponse struct {
	Activity Activity `json:"activity"`
	CreateAuthenticatorsResult
}

type CreateAuthenticatorsResult

type CreateAuthenticatorsResult struct {
	// A list of Authenticator IDs.
	AuthenticatorIds []string `json:"authenticatorIds"`
}

type CreateFiatOnRampCredentialIntent

type CreateFiatOnRampCredentialIntent struct {
	// Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
	EncryptedPrivateAPIKey *string `json:"encryptedPrivateApiKey,omitempty"`
	// Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
	EncryptedSecretAPIKey string `json:"encryptedSecretApiKey"`
	// The fiat on-ramp provider
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier
	ProjectID *string `json:"projectId,omitempty"`
	// Publishable API key for the on-ramp provider
	PublishableAPIKey string `json:"publishableApiKey"`
	// If the on-ramp credential is a sandbox credential
	SandboxMode *bool `json:"sandboxMode,omitempty"`
}

type CreateFiatOnRampCredentialRequest

type CreateFiatOnRampCredentialRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
	EncryptedPrivateAPIKey *string `json:"encryptedPrivateApiKey,omitempty"`
	// Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
	EncryptedSecretAPIKey string `json:"encryptedSecretApiKey"`
	// The fiat on-ramp provider
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier
	ProjectID *string `json:"projectId,omitempty"`
	// Publishable API key for the on-ramp provider
	PublishableAPIKey string `json:"publishableApiKey"`
	// If the on-ramp credential is a sandbox credential
	SandboxMode *bool `json:"sandboxMode,omitempty"`
}

func (CreateFiatOnRampCredentialRequest) ActivityType

type CreateFiatOnRampCredentialResponse

type CreateFiatOnRampCredentialResponse struct {
	Activity Activity `json:"activity"`
	CreateFiatOnRampCredentialResult
}

type CreateFiatOnRampCredentialResult

type CreateFiatOnRampCredentialResult struct {
	// Unique identifier of the Fiat On-Ramp credential that was created
	FiatOnRampCredentialID string `json:"fiatOnRampCredentialId"`
}

type CreateInvitationsIntent

type CreateInvitationsIntent struct {
	// A list of Invitations.
	Invitations []InvitationParams `json:"invitations"`
}

type CreateInvitationsRequest

type CreateInvitationsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Invitations.
	Invitations []InvitationParams `json:"invitations"`
}

func (CreateInvitationsRequest) ActivityType

func (CreateInvitationsRequest) ActivityType() string

type CreateInvitationsResponse

type CreateInvitationsResponse struct {
	Activity Activity `json:"activity"`
	CreateInvitationsResult
}

type CreateInvitationsResult

type CreateInvitationsResult struct {
	// A list of Invitation IDs
	InvitationIds []string `json:"invitationIds"`
}

type CreateMfaPolicyIntent

type CreateMfaPolicyIntent struct {
	// A condition expression that evaluates to true or false, determining when this MFA policy applies.
	Condition string `json:"condition"`
	// Human-readable name for a Policy.
	MfaPolicyName string `json:"mfaPolicyName"`
	// Notes for an MFA Policy.
	Notes *string `json:"notes,omitempty"`
	// The order in which this MFA policy is evaluated, starting from 0, relative to other MFA policies. Lower order values are evaluated first.
	Order int64 `json:"order"`
	// An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA.
	RequiredAuthenticationMethods []RequiredAuthenticationMethodParams `json:"requiredAuthenticationMethods"`
	// The ID of the User to add the MFA Policy to.
	UserID string `json:"userId"`
}

type CreateMfaPolicyRequest

type CreateMfaPolicyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A condition expression that evaluates to true or false, determining when this MFA policy applies.
	Condition string `json:"condition"`
	// Human-readable name for a Policy.
	MfaPolicyName string `json:"mfaPolicyName"`
	// Notes for an MFA Policy.
	Notes *string `json:"notes,omitempty"`
	// The order in which this MFA policy is evaluated, starting from 0, relative to other MFA policies. Lower order values are evaluated first.
	Order int64 `json:"order"`
	// An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA.
	RequiredAuthenticationMethods []RequiredAuthenticationMethodParams `json:"requiredAuthenticationMethods"`
	// The ID of the User to add the MFA Policy to.
	UserID string `json:"userId"`
}

func (CreateMfaPolicyRequest) ActivityType

func (CreateMfaPolicyRequest) ActivityType() string

type CreateMfaPolicyResponse

type CreateMfaPolicyResponse struct {
	Activity Activity `json:"activity"`
	CreateMfaPolicyResult
}

type CreateMfaPolicyResult

type CreateMfaPolicyResult struct {
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
}

type CreateOAuth2CredentialIntent

type CreateOAuth2CredentialIntent struct {
	// The Client ID issued by the OAuth 2.0 provider
	ClientID string `json:"clientId"`
	// The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
	EncryptedClientSecret string `json:"encryptedClientSecret"`
	// The OAuth 2.0 provider
	Provider OAuth2Provider `json:"provider"`
}

type CreateOAuth2CredentialRequest

type CreateOAuth2CredentialRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The Client ID issued by the OAuth 2.0 provider
	ClientID string `json:"clientId"`
	// The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
	EncryptedClientSecret string `json:"encryptedClientSecret"`
	// The OAuth 2.0 provider
	Provider OAuth2Provider `json:"provider"`
}

func (CreateOAuth2CredentialRequest) ActivityType

func (CreateOAuth2CredentialRequest) ActivityType() string

type CreateOAuth2CredentialResponse

type CreateOAuth2CredentialResponse struct {
	Activity Activity `json:"activity"`
	CreateOAuth2CredentialResult
}

type CreateOAuth2CredentialResult

type CreateOAuth2CredentialResult struct {
	// Unique identifier of the OAuth 2.0 credential that was created
	OAuth2CredentialID string `json:"oauth2CredentialId"`
}

type CreateOAuthProvidersIntent

type CreateOAuthProvidersIntent struct {
	// A list of Oauth providers.
	OAuthProviders []OAuthProviderParams `json:"oauthProviders"`
	// The ID of the User to add an Oauth provider to
	UserID string `json:"userId"`
}

type CreateOAuthProvidersIntentV2

type CreateOAuthProvidersIntentV2 struct {
	// A list of Oauth providers.
	OAuthProviders []OAuthProviderParamsV2 `json:"oauthProviders"`
	// The ID of the User to add an Oauth provider to
	UserID string `json:"userId"`
}

type CreateOAuthProvidersRequest

type CreateOAuthProvidersRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Oauth providers.
	OAuthProviders []OAuthProviderParamsV2 `json:"oauthProviders"`
	// The ID of the User to add an Oauth provider to
	UserID string `json:"userId"`
}

func (CreateOAuthProvidersRequest) ActivityType

func (CreateOAuthProvidersRequest) ActivityType() string

type CreateOAuthProvidersResponse

type CreateOAuthProvidersResponse struct {
	Activity Activity `json:"activity"`
	CreateOAuthProvidersResultV2
}

type CreateOAuthProvidersResult

type CreateOAuthProvidersResult struct {
	// A list of unique identifiers for Oauth Providers
	ProviderIds []string `json:"providerIds"`
}

type CreateOAuthProvidersResultV2

type CreateOAuthProvidersResultV2 struct {
	// A list of unique identifiers for Oauth Providers
	ProviderIds []string `json:"providerIds"`
}

type CreateOrganizationIntent

type CreateOrganizationIntent struct {
	// Human-readable name for an Organization.
	OrganizationName string `json:"organizationName"`
	// The root user's Authenticator.
	RootAuthenticator AuthenticatorParams `json:"rootAuthenticator"`
	// The root user's email address.
	RootEmail string `json:"rootEmail"`
	// Unique identifier for the root user object.
	RootUserID *string `json:"rootUserId,omitempty"`
}

type CreateOrganizationIntentV2

type CreateOrganizationIntentV2 struct {
	// Human-readable name for an Organization.
	OrganizationName string `json:"organizationName"`
	// The root user's Authenticator.
	RootAuthenticator AuthenticatorParamsV2 `json:"rootAuthenticator"`
	// The root user's email address.
	RootEmail string `json:"rootEmail"`
	// Unique identifier for the root user object.
	RootUserID *string `json:"rootUserId,omitempty"`
}

type CreateOrganizationResult

type CreateOrganizationResult struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type CreatePoliciesIntent

type CreatePoliciesIntent struct {
	// An array of policy intents to be created.
	Policies []CreatePolicyIntentV3 `json:"policies"`
}

type CreatePoliciesRequest

type CreatePoliciesRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// An array of policy intents to be created.
	Policies []CreatePolicyIntentV3 `json:"policies"`
}

func (CreatePoliciesRequest) ActivityType

func (CreatePoliciesRequest) ActivityType() string

type CreatePoliciesResponse

type CreatePoliciesResponse struct {
	Activity Activity `json:"activity"`
	CreatePoliciesResult
}

type CreatePoliciesResult

type CreatePoliciesResult struct {
	// A list of unique identifiers for the created policies.
	PolicyIds []string `json:"policyIds"`
}

type CreatePolicyIntent

type CreatePolicyIntent struct {
	// The instruction to DENY or ALLOW a particular activity following policy selector(s).
	Effect Effect  `json:"effect"`
	Notes  *string `json:"notes,omitempty"`
	// Human-readable name for a Policy.
	PolicyName string `json:"policyName"`
	// A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
	Selectors []Selector `json:"selectors"`
}

type CreatePolicyIntentV2

type CreatePolicyIntentV2 struct {
	// Whether to ALLOW or DENY requests that match the condition and consensus requirements.
	Effect Effect  `json:"effect"`
	Notes  *string `json:"notes,omitempty"`
	// Human-readable name for a Policy.
	PolicyName string `json:"policyName"`
	// A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
	Selectors []SelectorV2 `json:"selectors"`
}

type CreatePolicyIntentV3

type CreatePolicyIntentV3 struct {
	// The condition expression that triggers the Effect
	Condition *string `json:"condition,omitempty"`
	// The consensus expression that triggers the Effect
	Consensus *string `json:"consensus,omitempty"`
	// The instruction to DENY or ALLOW an activity.
	Effect Effect `json:"effect"`
	// Notes for a Policy.
	Notes string `json:"notes"`
	// Human-readable name for a Policy.
	PolicyName string `json:"policyName"`
}

type CreatePolicyRequest

type CreatePolicyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The condition expression that triggers the Effect
	Condition *string `json:"condition,omitempty"`
	// The consensus expression that triggers the Effect
	Consensus *string `json:"consensus,omitempty"`
	// The instruction to DENY or ALLOW an activity.
	Effect Effect `json:"effect"`
	// Notes for a Policy.
	Notes string `json:"notes"`
	// Human-readable name for a Policy.
	PolicyName string `json:"policyName"`
}

func (CreatePolicyRequest) ActivityType

func (CreatePolicyRequest) ActivityType() string

type CreatePolicyResponse

type CreatePolicyResponse struct {
	Activity Activity `json:"activity"`
	CreatePolicyResult
}

type CreatePolicyResult

type CreatePolicyResult struct {
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
}

type CreatePrivateKeyTagIntent

type CreatePrivateKeyTagIntent struct {
	// A list of Private Key IDs.
	PrivateKeyIds []string `json:"privateKeyIds"`
	// Human-readable name for a Private Key Tag.
	PrivateKeyTagName string `json:"privateKeyTagName"`
}

type CreatePrivateKeyTagRequest

type CreatePrivateKeyTagRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Private Key IDs.
	PrivateKeyIds []string `json:"privateKeyIds"`
	// Human-readable name for a Private Key Tag.
	PrivateKeyTagName string `json:"privateKeyTagName"`
}

func (CreatePrivateKeyTagRequest) ActivityType

func (CreatePrivateKeyTagRequest) ActivityType() string

type CreatePrivateKeyTagResponse

type CreatePrivateKeyTagResponse struct {
	Activity Activity `json:"activity"`
	CreatePrivateKeyTagResult
}

type CreatePrivateKeyTagResult

type CreatePrivateKeyTagResult struct {
	// A list of Private Key IDs.
	PrivateKeyIds []string `json:"privateKeyIds"`
	// Unique identifier for a given Private Key Tag.
	PrivateKeyTagID string `json:"privateKeyTagId"`
}

type CreatePrivateKeysIntent

type CreatePrivateKeysIntent struct {
	// A list of Private Keys.
	PrivateKeys []PrivateKeyParams `json:"privateKeys"`
}

type CreatePrivateKeysIntentV2

type CreatePrivateKeysIntentV2 struct {
	// A list of Private Keys.
	PrivateKeys []PrivateKeyParams `json:"privateKeys"`
}

type CreatePrivateKeysRequest

type CreatePrivateKeysRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Private Keys.
	PrivateKeys []PrivateKeyParams `json:"privateKeys"`
}

func (CreatePrivateKeysRequest) ActivityType

func (CreatePrivateKeysRequest) ActivityType() string

type CreatePrivateKeysResponse

type CreatePrivateKeysResponse struct {
	Activity Activity `json:"activity"`
	CreatePrivateKeysResultV2
}

type CreatePrivateKeysResult

type CreatePrivateKeysResult struct {
	// A list of Private Key IDs.
	PrivateKeyIds []string `json:"privateKeyIds"`
}

type CreatePrivateKeysResultV2

type CreatePrivateKeysResultV2 struct {
	// A list of Private Key IDs and addresses.
	PrivateKeys []PrivateKeyResult `json:"privateKeys"`
}

type CreateReadOnlySessionIntent

type CreateReadOnlySessionIntent map[string]any

type CreateReadOnlySessionRequest

type CreateReadOnlySessionRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
}

func (CreateReadOnlySessionRequest) ActivityType

func (CreateReadOnlySessionRequest) ActivityType() string

type CreateReadOnlySessionResponse

type CreateReadOnlySessionResponse struct {
	Activity Activity `json:"activity"`
	CreateReadOnlySessionResult
}

type CreateReadOnlySessionResult

type CreateReadOnlySessionResult struct {
	// Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
	OrganizationID string `json:"organizationId"`
	// Human-readable name for an Organization.
	OrganizationName string `json:"organizationName"`
	// String representing a read only session
	Session string `json:"session"`
	// UTC timestamp in seconds representing the expiry time for the read only session.
	SessionExpiry string `json:"sessionExpiry"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	Username string `json:"username"`
}

type CreateReadWriteSessionIntent

type CreateReadWriteSessionIntent struct {
	// Optional human-readable name for an API Key. If none provided, default to Read Write Session - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Email of the user to create a read write session for
	Email string `json:"email"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type CreateReadWriteSessionIntentV2

type CreateReadWriteSessionIntentV2 struct {
	// Optional human-readable name for an API Key. If none provided, default to Read Write Session - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated ReadWriteSession API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
	// Optional unique identifier for a given User. If none provided, the read write session will be created for the user who is making the request.
	UserID *string `json:"userId,omitempty"`
}

type CreateReadWriteSessionRequest

type CreateReadWriteSessionRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional human-readable name for an API Key. If none provided, default to Read Write Session - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated ReadWriteSession API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
	// Optional unique identifier for a given User. If none provided, the read write session will be created for the user who is making the request.
	UserID *string `json:"userId,omitempty"`
}

func (CreateReadWriteSessionRequest) ActivityType

func (CreateReadWriteSessionRequest) ActivityType() string

type CreateReadWriteSessionResponse

type CreateReadWriteSessionResponse struct {
	Activity Activity `json:"activity"`
	CreateReadWriteSessionResultV2
}

type CreateReadWriteSessionResult

type CreateReadWriteSessionResult struct {
	// Unique identifier for the created API key.
	APIKeyID string `json:"apiKeyId"`
	// HPKE encrypted credential bundle
	CredentialBundle string `json:"credentialBundle"`
	// Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
	OrganizationID string `json:"organizationId"`
	// Human-readable name for an Organization.
	OrganizationName string `json:"organizationName"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	Username string `json:"username"`
}

type CreateReadWriteSessionResultV2

type CreateReadWriteSessionResultV2 struct {
	// Unique identifier for the created API key.
	APIKeyID string `json:"apiKeyId"`
	// HPKE encrypted credential bundle
	CredentialBundle string `json:"credentialBundle"`
	// Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
	OrganizationID string `json:"organizationId"`
	// Human-readable name for an Organization.
	OrganizationName string `json:"organizationName"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	Username string `json:"username"`
}

type CreateSessionProfileIntent

type CreateSessionProfileIntent struct {
	// The duration in seconds for which sessions created with this Session Profile are valid. If not set, expiration will be determined by the value passed in to the intent of login activities.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Notes for a Session Profile.
	Notes *string `json:"notes,omitempty"`
	// The scope string that defines the permissions for this Session Profile.
	Scope string `json:"scope"`
	// Human-readable name for a Session Profile.
	SessionProfileName string `json:"sessionProfileName"`
}

type CreateSessionProfileRequest

type CreateSessionProfileRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The duration in seconds for which sessions created with this Session Profile are valid. If not set, expiration will be determined by the value passed in to the intent of login activities.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Notes for a Session Profile.
	Notes *string `json:"notes,omitempty"`
	// The scope string that defines the permissions for this Session Profile.
	Scope string `json:"scope"`
	// Human-readable name for a Session Profile.
	SessionProfileName string `json:"sessionProfileName"`
}

func (CreateSessionProfileRequest) ActivityType

func (CreateSessionProfileRequest) ActivityType() string

type CreateSessionProfileResponse

type CreateSessionProfileResponse struct {
	Activity Activity `json:"activity"`
	CreateSessionProfileResult
}

type CreateSessionProfileResult

type CreateSessionProfileResult struct {
	// Unique identifier for a given Session Profile.
	SessionProfileID string `json:"sessionProfileId"`
}

type CreateSmartContractInterfaceIntent

type CreateSmartContractInterfaceIntent struct {
	// Human-readable name for a Smart Contract Interface.
	Label string `json:"label"`
	// Notes for a Smart Contract Interface.
	Notes *string `json:"notes,omitempty"`
	// Corresponding contract address or program ID
	SmartContractAddress string `json:"smartContractAddress"`
	// ABI/IDL as a JSON string. Limited to 400kb
	SmartContractInterface string                     `json:"smartContractInterface"`
	TypeValue              SmartContractInterfaceType `json:"type"`
}

type CreateSmartContractInterfaceRequest

type CreateSmartContractInterfaceRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Human-readable name for a Smart Contract Interface.
	Label string `json:"label"`
	// Notes for a Smart Contract Interface.
	Notes *string `json:"notes,omitempty"`
	// Corresponding contract address or program ID
	SmartContractAddress string `json:"smartContractAddress"`
	// ABI/IDL as a JSON string. Limited to 400kb
	SmartContractInterface string                     `json:"smartContractInterface"`
	TypeValue              SmartContractInterfaceType `json:"type"`
}

func (CreateSmartContractInterfaceRequest) ActivityType

type CreateSmartContractInterfaceResponse

type CreateSmartContractInterfaceResponse struct {
	Activity Activity `json:"activity"`
	CreateSmartContractInterfaceResult
}

type CreateSmartContractInterfaceResult

type CreateSmartContractInterfaceResult struct {
	// The ID of the created Smart Contract Interface.
	SmartContractInterfaceID string `json:"smartContractInterfaceId"`
}

type CreateSubOrganizationIntent

type CreateSubOrganizationIntent struct {
	// Name for this sub-organization
	Name string `json:"name"`
	// Root User authenticator for this new sub-organization
	RootAuthenticator AuthenticatorParamsV2 `json:"rootAuthenticator"`
}

type CreateSubOrganizationIntentV2

type CreateSubOrganizationIntentV2 struct {
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParams `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
}

type CreateSubOrganizationIntentV3

type CreateSubOrganizationIntentV3 struct {
	// A list of Private Keys.
	PrivateKeys []PrivateKeyParams `json:"privateKeys"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParams `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
}

type CreateSubOrganizationIntentV4

type CreateSubOrganizationIntentV4 struct {
	// Disable email auth for the sub-organization
	DisableEmailAuth *bool `json:"disableEmailAuth,omitempty"`
	// Disable email recovery for the sub-organization
	DisableEmailRecovery *bool `json:"disableEmailRecovery,omitempty"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParams `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type CreateSubOrganizationIntentV5

type CreateSubOrganizationIntentV5 struct {
	// Disable email auth for the sub-organization
	DisableEmailAuth *bool `json:"disableEmailAuth,omitempty"`
	// Disable email recovery for the sub-organization
	DisableEmailRecovery *bool `json:"disableEmailRecovery,omitempty"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParamsV2 `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type CreateSubOrganizationIntentV6

type CreateSubOrganizationIntentV6 struct {
	// Disable email auth for the sub-organization
	DisableEmailAuth *bool `json:"disableEmailAuth,omitempty"`
	// Disable email recovery for the sub-organization
	DisableEmailRecovery *bool `json:"disableEmailRecovery,omitempty"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParamsV3 `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type CreateSubOrganizationIntentV7

type CreateSubOrganizationIntentV7 struct {
	// Optional signature proving authorization for this sub-organization creation. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// Disable email auth for the sub-organization
	DisableEmailAuth *bool `json:"disableEmailAuth,omitempty"`
	// Disable email recovery for the sub-organization
	DisableEmailRecovery *bool `json:"disableEmailRecovery,omitempty"`
	// Disable OTP email auth for the sub-organization
	DisableOTPEmailAuth *bool `json:"disableOtpEmailAuth,omitempty"`
	// Disable OTP SMS auth for the sub-organization
	DisableSmsAuth *bool `json:"disableSmsAuth,omitempty"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParamsV4 `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type CreateSubOrganizationIntentV8

type CreateSubOrganizationIntentV8 struct {
	// Optional signature proving authorization for this sub-organization creation. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// Disable email auth for the sub-organization
	DisableEmailAuth *bool `json:"disableEmailAuth,omitempty"`
	// Disable email recovery for the sub-organization
	DisableEmailRecovery *bool `json:"disableEmailRecovery,omitempty"`
	// Disable OTP email auth for the sub-organization
	DisableOTPEmailAuth *bool `json:"disableOtpEmailAuth,omitempty"`
	// Disable OTP SMS auth for the sub-organization
	DisableSmsAuth *bool `json:"disableSmsAuth,omitempty"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParamsV5 `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

type CreateSubOrganizationRequest

type CreateSubOrganizationRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional signature proving authorization for this sub-organization creation. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// Disable email auth for the sub-organization
	DisableEmailAuth *bool `json:"disableEmailAuth,omitempty"`
	// Disable email recovery for the sub-organization
	DisableEmailRecovery *bool `json:"disableEmailRecovery,omitempty"`
	// Disable OTP email auth for the sub-organization
	DisableOTPEmailAuth *bool `json:"disableOtpEmailAuth,omitempty"`
	// Disable OTP SMS auth for the sub-organization
	DisableSmsAuth *bool `json:"disableSmsAuth,omitempty"`
	// The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
	RootQuorumThreshold int `json:"rootQuorumThreshold"`
	// Root users to create within this sub-organization
	RootUsers []RootUserParamsV5 `json:"rootUsers"`
	// Name for this sub-organization
	SubOrganizationName string `json:"subOrganizationName"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
	// The wallet to create for the sub-organization
	Wallet *WalletParams `json:"wallet,omitempty"`
}

func (CreateSubOrganizationRequest) ActivityType

func (CreateSubOrganizationRequest) ActivityType() string

type CreateSubOrganizationResponse

type CreateSubOrganizationResponse struct {
	Activity Activity `json:"activity"`
	CreateSubOrganizationResultV8
}

type CreateSubOrganizationResult

type CreateSubOrganizationResult struct {
	RootUserIds       []string `json:"rootUserIds,omitempty"`
	SubOrganizationID string   `json:"subOrganizationId"`
}

type CreateSubOrganizationResultV3

type CreateSubOrganizationResultV3 struct {
	// A list of Private Key IDs and addresses.
	PrivateKeys       []PrivateKeyResult `json:"privateKeys"`
	RootUserIds       []string           `json:"rootUserIds,omitempty"`
	SubOrganizationID string             `json:"subOrganizationId"`
}

type CreateSubOrganizationResultV4

type CreateSubOrganizationResultV4 struct {
	RootUserIds       []string      `json:"rootUserIds,omitempty"`
	SubOrganizationID string        `json:"subOrganizationId"`
	Wallet            *WalletResult `json:"wallet,omitempty"`
}

type CreateSubOrganizationResultV5

type CreateSubOrganizationResultV5 struct {
	RootUserIds       []string      `json:"rootUserIds,omitempty"`
	SubOrganizationID string        `json:"subOrganizationId"`
	Wallet            *WalletResult `json:"wallet,omitempty"`
}

type CreateSubOrganizationResultV6

type CreateSubOrganizationResultV6 struct {
	RootUserIds       []string      `json:"rootUserIds,omitempty"`
	SubOrganizationID string        `json:"subOrganizationId"`
	Wallet            *WalletResult `json:"wallet,omitempty"`
}

type CreateSubOrganizationResultV7

type CreateSubOrganizationResultV7 struct {
	RootUserIds       []string      `json:"rootUserIds,omitempty"`
	SubOrganizationID string        `json:"subOrganizationId"`
	Wallet            *WalletResult `json:"wallet,omitempty"`
}

type CreateSubOrganizationResultV8

type CreateSubOrganizationResultV8 struct {
	RootUserIds       []string      `json:"rootUserIds,omitempty"`
	SubOrganizationID string        `json:"subOrganizationId"`
	Wallet            *WalletResult `json:"wallet,omitempty"`
}

type CreateTVCAppIntent

type CreateTVCAppIntent struct {
	// When true, this app may create deployments in debug-mode. Debug-mode deployments expose logs and emit zero'd attestation PCRs, so remote attestation cannot succeed. Cannot be changed after app creation. Setting this true means the app's quorum key is considered permanently insecure, and a new app with a fresh quorum key must be created. Default if not provided: false.
	EnableDebugModeDeployments *bool `json:"enableDebugModeDeployments,omitempty"`
	// Enables network egress for this TVC app. Default if not provided: false.
	EnableEgress *bool `json:"enableEgress,omitempty"`
	// Unique identifier for an existing TVC operator set to use as the Manifest Set for this TVC application. If left empty, a new Manifest Set configuration is required
	ManifestSetID *string `json:"manifestSetId,omitempty"`
	// Configuration to create a new TVC operator set, used as the Manifest Set for this TVC application. If left empty, a Manifest Set ID is required
	ManifestSetParams *TVCOperatorSetParams `json:"manifestSetParams,omitempty"`
	// The name of the new TVC application
	Name string `json:"name"`
	// Quorum public key to use for this application
	QuorumPublicKey string `json:"quorumPublicKey"`
	// Unique identifier for an existing TVC operator set to use as the Share Set for this TVC application. If left empty, a new Share Set configuration is required
	ShareSetID *string `json:"shareSetId,omitempty"`
	// Configuration to create a new TVC operator set, used as the Share Set for this TVC application. If left empty, a Share Set ID is required
	ShareSetParams *TVCOperatorSetParams `json:"shareSetParams,omitempty"`
}

type CreateTVCAppRequest

type CreateTVCAppRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// When true, this app may create deployments in debug-mode. Debug-mode deployments expose logs and emit zero'd attestation PCRs, so remote attestation cannot succeed. Cannot be changed after app creation. Setting this true means the app's quorum key is considered permanently insecure, and a new app with a fresh quorum key must be created. Default if not provided: false.
	EnableDebugModeDeployments *bool `json:"enableDebugModeDeployments,omitempty"`
	// Enables network egress for this TVC app. Default if not provided: false.
	EnableEgress *bool `json:"enableEgress,omitempty"`
	// Unique identifier for an existing TVC operator set to use as the Manifest Set for this TVC application. If left empty, a new Manifest Set configuration is required
	ManifestSetID *string `json:"manifestSetId,omitempty"`
	// Configuration to create a new TVC operator set, used as the Manifest Set for this TVC application. If left empty, a Manifest Set ID is required
	ManifestSetParams *TVCOperatorSetParams `json:"manifestSetParams,omitempty"`
	// The name of the new TVC application
	Name string `json:"name"`
	// Quorum public key to use for this application
	QuorumPublicKey string `json:"quorumPublicKey"`
	// Unique identifier for an existing TVC operator set to use as the Share Set for this TVC application. If left empty, a new Share Set configuration is required
	ShareSetID *string `json:"shareSetId,omitempty"`
	// Configuration to create a new TVC operator set, used as the Share Set for this TVC application. If left empty, a Share Set ID is required
	ShareSetParams *TVCOperatorSetParams `json:"shareSetParams,omitempty"`
}

func (CreateTVCAppRequest) ActivityType

func (CreateTVCAppRequest) ActivityType() string

type CreateTVCAppResponse

type CreateTVCAppResponse struct {
	Activity Activity `json:"activity"`
	CreateTVCAppResult
}

type CreateTVCAppResult

type CreateTVCAppResult struct {
	// The unique identifier for the TVC application
	AppID string `json:"appId"`
	// The unique identifier for the TVC manifest set
	ManifestSetID string `json:"manifestSetId"`
	// The unique identifier(s) of the manifest set operators
	ManifestSetOperatorIds []string `json:"manifestSetOperatorIds"`
	// The required number of approvals for the manifest set
	ManifestSetThreshold int64 `json:"manifestSetThreshold"`
}

type CreateTVCDeploymentIntent

type CreateTVCDeploymentIntent struct {
	// The unique identifier of the to-be-deployed TVC application
	AppID string `json:"appId"`
	// Optional flag to indicate whether to deploy the TVC app in debug mode, which includes additional logging and debugging tools. Default is false.
	DebugMode *bool `json:"debugMode,omitempty"`
	// Digest of the pivot binary in the pivot container. This value will be inserted in the QOS manifest to ensure application integrity.
	ExpectedPivotDigest string `json:"expectedPivotDigest"`
	// Port to use for health checks.
	HealthCheckPort int64 `json:"healthCheckPort"`
	// Health check type (TVC_HEALTH_CHECK_TYPE_HTTP or TVC_HEALTH_CHECK_TYPE_GRPC). HTTP health checks are made with a GET request on /health, and gRPC health checks follow the standard gRPC health checking protocol.
	HealthCheckType TVCHealthCheckType `json:"healthCheckType"`
	// Optional nonce to ensure uniqueness of the deployment manifest. If not provided, it defaults to the current Unix timestamp in seconds.
	Nonce *int64 `json:"nonce,omitempty"`
	// Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example ["--foo", "bar"]
	PivotArgs []string `json:"pivotArgs"`
	// Optional encrypted pull secret to authorize Turnkey to pull the pivot container image. If your image is public, leave this empty.
	PivotContainerEncryptedPullSecret *string `json:"pivotContainerEncryptedPullSecret,omitempty"`
	// URL of the container containing the pivot binary
	PivotContainerImageURL string `json:"pivotContainerImageUrl"`
	// Location of the binary in the pivot container
	PivotPath string `json:"pivotPath"`
	// Port to use for public ingress.
	PublicIngressPort int64 `json:"publicIngressPort"`
	// The QuorumOS version to use to deploy this application
	QosVersion string `json:"qosVersion"`
}

type CreateTVCDeploymentRequest

type CreateTVCDeploymentRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The unique identifier of the to-be-deployed TVC application
	AppID string `json:"appId"`
	// Optional flag to indicate whether to deploy the TVC app in debug mode, which includes additional logging and debugging tools. Default is false.
	DebugMode *bool `json:"debugMode,omitempty"`
	// Digest of the pivot binary in the pivot container. This value will be inserted in the QOS manifest to ensure application integrity.
	ExpectedPivotDigest string `json:"expectedPivotDigest"`
	// Port to use for health checks.
	HealthCheckPort int64 `json:"healthCheckPort"`
	// Health check type (TVC_HEALTH_CHECK_TYPE_HTTP or TVC_HEALTH_CHECK_TYPE_GRPC). HTTP health checks are made with a GET request on /health, and gRPC health checks follow the standard gRPC health checking protocol.
	HealthCheckType TVCHealthCheckType `json:"healthCheckType"`
	// Optional nonce to ensure uniqueness of the deployment manifest. If not provided, it defaults to the current Unix timestamp in seconds.
	Nonce *int64 `json:"nonce,omitempty"`
	// Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example ["--foo", "bar"]
	PivotArgs []string `json:"pivotArgs"`
	// Optional encrypted pull secret to authorize Turnkey to pull the pivot container image. If your image is public, leave this empty.
	PivotContainerEncryptedPullSecret *string `json:"pivotContainerEncryptedPullSecret,omitempty"`
	// URL of the container containing the pivot binary
	PivotContainerImageURL string `json:"pivotContainerImageUrl"`
	// Location of the binary in the pivot container
	PivotPath string `json:"pivotPath"`
	// Port to use for public ingress.
	PublicIngressPort int64 `json:"publicIngressPort"`
	// The QuorumOS version to use to deploy this application
	QosVersion string `json:"qosVersion"`
}

func (CreateTVCDeploymentRequest) ActivityType

func (CreateTVCDeploymentRequest) ActivityType() string

type CreateTVCDeploymentResponse

type CreateTVCDeploymentResponse struct {
	Activity Activity `json:"activity"`
	CreateTVCDeploymentResult
}

type CreateTVCDeploymentResult

type CreateTVCDeploymentResult struct {
	// The unique identifier for the TVC deployment
	DeploymentID string `json:"deploymentId"`
	// The unique identifier for the TVC manifest
	ManifestID string `json:"manifestId"`
}

type CreateTVCManifestApprovalsIntent

type CreateTVCManifestApprovalsIntent struct {
	// List of manifest approvals
	Approvals []TVCManifestApproval `json:"approvals"`
	// Unique identifier of the TVC deployment to approve
	ManifestID string `json:"manifestId"`
}

type CreateTVCManifestApprovalsRequest

type CreateTVCManifestApprovalsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// List of manifest approvals
	Approvals []TVCManifestApproval `json:"approvals"`
	// Unique identifier of the TVC deployment to approve
	ManifestID string `json:"manifestId"`
}

func (CreateTVCManifestApprovalsRequest) ActivityType

type CreateTVCManifestApprovalsResponse

type CreateTVCManifestApprovalsResponse struct {
	Activity Activity `json:"activity"`
	CreateTVCManifestApprovalsResult
}

type CreateTVCManifestApprovalsResult

type CreateTVCManifestApprovalsResult struct {
	// The unique identifier(s) for the manifest approvals
	ApprovalIds []string `json:"approvalIds"`
}

type CreateTVCOperatorIntent

type CreateTVCOperatorIntent struct {
	// Human-readable name for this new TVC operator
	OperatorName string `json:"operatorName"`
	// Base derivation path for creating TVC operator wallet accounts
	Path string `json:"path"`
	// Unique identifier for an existing wallet to reuse for this TVC operator
	WalletID *string `json:"walletId,omitempty"`
	// Human-readable name for a new wallet created for this TVC operator
	WalletName *string `json:"walletName,omitempty"`
}

type CreateTVCOperatorResult

type CreateTVCOperatorResult struct {
	// Public encryption key for this TVC operator
	EncryptPublicKey string `json:"encryptPublicKey"`
	// The unique identifier for the TVC operator
	OperatorID string `json:"operatorId"`
	// Public signing key for this TVC operator
	SignPublicKey string `json:"signPublicKey"`
	// The unique identifier for the wallet containing TVC operator accounts
	WalletID string `json:"walletId"`
}

type CreateTVCQuorumKeyIntent

type CreateTVCQuorumKeyIntent struct {
	// Operator public keys used to encrypt and later approve the generated TVC quorum key shares
	OperatorEncryptKeys []string `json:"operatorEncryptKeys"`
	// The threshold of operators needed to reassemble this TVC quorum key
	Threshold int64 `json:"threshold"`
}

type CreateTVCQuorumKeyResult

type CreateTVCQuorumKeyResult struct {
	// The unique identifier for the TVC quorum key
	QuorumKeyID string `json:"quorumKeyId"`
	// Public key for the generated TVC quorum key
	QuorumPublicKey string `json:"quorumPublicKey"`
	// The unique identifier(s) for the generated TVC quorum key shares
	ShareIds []string `json:"shareIds"`
}

type CreateUserTagIntent

type CreateUserTagIntent struct {
	// A list of User IDs.
	UserIds []string `json:"userIds"`
	// Human-readable name for a User Tag.
	UserTagName string `json:"userTagName"`
}

type CreateUserTagRequest

type CreateUserTagRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of User IDs.
	UserIds []string `json:"userIds"`
	// Human-readable name for a User Tag.
	UserTagName string `json:"userTagName"`
}

func (CreateUserTagRequest) ActivityType

func (CreateUserTagRequest) ActivityType() string

type CreateUserTagResponse

type CreateUserTagResponse struct {
	Activity Activity `json:"activity"`
	CreateUserTagResult
}

type CreateUserTagResult

type CreateUserTagResult struct {
	// A list of User IDs.
	UserIds []string `json:"userIds"`
	// Unique identifier for a given User Tag.
	UserTagID string `json:"userTagId"`
}

type CreateUsersIntent

type CreateUsersIntent struct {
	// A list of Users.
	Users []UserParams `json:"users"`
}

type CreateUsersIntentV2

type CreateUsersIntentV2 struct {
	// A list of Users.
	Users []UserParamsV2 `json:"users"`
}

type CreateUsersIntentV3

type CreateUsersIntentV3 struct {
	// A list of Users.
	Users []UserParamsV3 `json:"users"`
}

type CreateUsersIntentV4

type CreateUsersIntentV4 struct {
	// A list of Users.
	Users []UserParamsV4 `json:"users"`
}

type CreateUsersRequest

type CreateUsersRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Users.
	Users []UserParamsV4 `json:"users"`
}

func (CreateUsersRequest) ActivityType

func (CreateUsersRequest) ActivityType() string

type CreateUsersResponse

type CreateUsersResponse struct {
	Activity Activity `json:"activity"`
	CreateUsersResult
}

type CreateUsersResult

type CreateUsersResult struct {
	// A list of User IDs.
	UserIds []string `json:"userIds"`
}

type CreateWalletAccountsIntent

type CreateWalletAccountsIntent struct {
	// A list of wallet Accounts.
	Accounts []WalletAccountParams `json:"accounts"`
	// Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
	Persist *bool `json:"persist,omitempty"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
}

type CreateWalletAccountsRequest

type CreateWalletAccountsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of wallet Accounts.
	Accounts []WalletAccountParams `json:"accounts"`
	// Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
	Persist *bool `json:"persist,omitempty"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
}

func (CreateWalletAccountsRequest) ActivityType

func (CreateWalletAccountsRequest) ActivityType() string

type CreateWalletAccountsResponse

type CreateWalletAccountsResponse struct {
	Activity Activity `json:"activity"`
	CreateWalletAccountsResult
}

type CreateWalletAccountsResult

type CreateWalletAccountsResult struct {
	// A list of derived addresses.
	Addresses []string `json:"addresses"`
}

type CreateWalletIntent

type CreateWalletIntent struct {
	// A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
	Accounts []WalletAccountParams `json:"accounts"`
	// Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
	MnemonicLength *int `json:"mnemonicLength,omitempty"`
	// Human-readable name for a Wallet.
	WalletName string `json:"walletName"`
}

type CreateWalletRequest

type CreateWalletRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
	Accounts []WalletAccountParams `json:"accounts"`
	// Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
	MnemonicLength *int `json:"mnemonicLength,omitempty"`
	// Human-readable name for a Wallet.
	WalletName string `json:"walletName"`
}

func (CreateWalletRequest) ActivityType

func (CreateWalletRequest) ActivityType() string

type CreateWalletResponse

type CreateWalletResponse struct {
	Activity Activity `json:"activity"`
	CreateWalletResult
}

type CreateWalletResult

type CreateWalletResult struct {
	// A list of account addresses.
	Addresses []string `json:"addresses"`
	// Unique identifier for a Wallet.
	WalletID string `json:"walletId"`
}

type CreateWebhookEndpointIntent

type CreateWebhookEndpointIntent struct {
	// Human-readable name for this webhook endpoint.
	Name string `json:"name"`
	// Event subscriptions to create for this endpoint.
	Subscriptions []WebhookSubscriptionParams `json:"subscriptions,omitempty"`
	// The destination URL for webhook delivery.
	URL string `json:"url"`
}

type CreateWebhookEndpointRequest

type CreateWebhookEndpointRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Human-readable name for this webhook endpoint.
	Name string `json:"name"`
	// Event subscriptions to create for this endpoint.
	Subscriptions []WebhookSubscriptionParams `json:"subscriptions,omitempty"`
	// The destination URL for webhook delivery.
	URL string `json:"url"`
}

func (CreateWebhookEndpointRequest) ActivityType

func (CreateWebhookEndpointRequest) ActivityType() string

type CreateWebhookEndpointResponse

type CreateWebhookEndpointResponse struct {
	Activity Activity `json:"activity"`
	CreateWebhookEndpointResult
}

type CreateWebhookEndpointResult

type CreateWebhookEndpointResult struct {
	// Unique identifier of the created webhook endpoint.
	EndpointID string `json:"endpointId"`
	// The created webhook endpoint data.
	WebhookEndpoint WebhookEndpointData `json:"webhookEndpoint"`
}

type CredPropsAuthenticationExtensionsClientOutputs

type CredPropsAuthenticationExtensionsClientOutputs struct {
	Rk bool `json:"rk"`
}

type CredentialType

type CredentialType string
const (
	CredentialTypeWebauthnAuthenticator   CredentialType = "CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR"
	CredentialTypeAPIKeyP256              CredentialType = "CREDENTIAL_TYPE_API_KEY_P256"
	CredentialTypeRecoverUserKeyP256      CredentialType = "CREDENTIAL_TYPE_RECOVER_USER_KEY_P256"
	CredentialTypeAPIKeySecp256K1         CredentialType = "CREDENTIAL_TYPE_API_KEY_SECP256K1"
	CredentialTypeEmailAuthKeyP256        CredentialType = "CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256"
	CredentialTypeAPIKeyEd25519           CredentialType = "CREDENTIAL_TYPE_API_KEY_ED25519"
	CredentialTypeOTPAuthKeyP256          CredentialType = "CREDENTIAL_TYPE_OTP_AUTH_KEY_P256"
	CredentialTypeReadWriteSessionKeyP256 CredentialType = "CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256"
	CredentialTypeOAuthKeyP256            CredentialType = "CREDENTIAL_TYPE_OAUTH_KEY_P256"
	CredentialTypeLogin                   CredentialType = "CREDENTIAL_TYPE_LOGIN"
)

type Curve

type Curve string
const (
	CurveSecp256K1 Curve = "CURVE_SECP256K1"
	CurveEd25519   Curve = "CURVE_ED25519"
	CurveP256      Curve = "CURVE_P256"
)

type CustomRevertError

type CustomRevertError struct {
	// The name of the custom error.
	ErrorName *string `json:"errorName,omitempty"`
	// The decoded parameters as a JSON object.
	ParamsJSON *string `json:"paramsJson,omitempty"`
}

type DataV1Tag

type DataV1Tag struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Unique identifier for a given Tag.
	TagID string `json:"tagId"`
	// Human-readable name for a Tag.
	TagName   string                  `json:"tagName"`
	TagType   TagType                 `json:"tagType"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type DeleteAPIKeysIntent

type DeleteAPIKeysIntent struct {
	// A list of API Key IDs.
	APIKeyIds []string `json:"apiKeyIds"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type DeleteAPIKeysRequest

type DeleteAPIKeysRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of API Key IDs.
	APIKeyIds []string `json:"apiKeyIds"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

func (DeleteAPIKeysRequest) ActivityType

func (DeleteAPIKeysRequest) ActivityType() string

type DeleteAPIKeysResponse

type DeleteAPIKeysResponse struct {
	Activity Activity `json:"activity"`
	DeleteAPIKeysResult
}

type DeleteAPIKeysResult

type DeleteAPIKeysResult struct {
	// A list of API Key IDs.
	APIKeyIds []string `json:"apiKeyIds"`
}

type DeleteAuthenticatorsIntent

type DeleteAuthenticatorsIntent struct {
	// A list of Authenticator IDs.
	AuthenticatorIds []string `json:"authenticatorIds"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type DeleteAuthenticatorsRequest

type DeleteAuthenticatorsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Authenticator IDs.
	AuthenticatorIds []string `json:"authenticatorIds"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

func (DeleteAuthenticatorsRequest) ActivityType

func (DeleteAuthenticatorsRequest) ActivityType() string

type DeleteAuthenticatorsResponse

type DeleteAuthenticatorsResponse struct {
	Activity Activity `json:"activity"`
	DeleteAuthenticatorsResult
}

type DeleteAuthenticatorsResult

type DeleteAuthenticatorsResult struct {
	// Unique identifier for a given Authenticator.
	AuthenticatorIds []string `json:"authenticatorIds"`
}

type DeleteFiatOnRampCredentialIntent

type DeleteFiatOnRampCredentialIntent struct {
	// The ID of the fiat on-ramp credential to delete
	FiatOnrampCredentialID string `json:"fiatOnrampCredentialId"`
}

type DeleteFiatOnRampCredentialRequest

type DeleteFiatOnRampCredentialRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The ID of the fiat on-ramp credential to delete
	FiatOnrampCredentialID string `json:"fiatOnrampCredentialId"`
}

func (DeleteFiatOnRampCredentialRequest) ActivityType

type DeleteFiatOnRampCredentialResponse

type DeleteFiatOnRampCredentialResponse struct {
	Activity Activity `json:"activity"`
	DeleteFiatOnRampCredentialResult
}

type DeleteFiatOnRampCredentialResult

type DeleteFiatOnRampCredentialResult struct {
	// Unique identifier of the Fiat On-Ramp credential that was deleted
	FiatOnRampCredentialID string `json:"fiatOnRampCredentialId"`
}

type DeleteInvitationIntent

type DeleteInvitationIntent struct {
	// Unique identifier for a given Invitation object.
	InvitationID string `json:"invitationId"`
}

type DeleteInvitationRequest

type DeleteInvitationRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given Invitation object.
	InvitationID string `json:"invitationId"`
}

func (DeleteInvitationRequest) ActivityType

func (DeleteInvitationRequest) ActivityType() string

type DeleteInvitationResponse

type DeleteInvitationResponse struct {
	Activity Activity `json:"activity"`
	DeleteInvitationResult
}

type DeleteInvitationResult

type DeleteInvitationResult struct {
	// Unique identifier for a given Invitation.
	InvitationID string `json:"invitationId"`
}

type DeleteMfaPolicyIntent

type DeleteMfaPolicyIntent struct {
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// The ID of the User to delete the MFA Policy from.
	UserID string `json:"userId"`
}

type DeleteMfaPolicyRequest

type DeleteMfaPolicyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// The ID of the User to delete the MFA Policy from.
	UserID string `json:"userId"`
}

func (DeleteMfaPolicyRequest) ActivityType

func (DeleteMfaPolicyRequest) ActivityType() string

type DeleteMfaPolicyResponse

type DeleteMfaPolicyResponse struct {
	Activity Activity `json:"activity"`
	DeleteMfaPolicyResult
}

type DeleteMfaPolicyResult

type DeleteMfaPolicyResult struct {
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
}

type DeleteOAuth2CredentialIntent

type DeleteOAuth2CredentialIntent struct {
	// The ID of the OAuth 2.0 credential to delete
	OAuth2CredentialID string `json:"oauth2CredentialId"`
}

type DeleteOAuth2CredentialRequest

type DeleteOAuth2CredentialRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The ID of the OAuth 2.0 credential to delete
	OAuth2CredentialID string `json:"oauth2CredentialId"`
}

func (DeleteOAuth2CredentialRequest) ActivityType

func (DeleteOAuth2CredentialRequest) ActivityType() string

type DeleteOAuth2CredentialResponse

type DeleteOAuth2CredentialResponse struct {
	Activity Activity `json:"activity"`
	DeleteOAuth2CredentialResult
}

type DeleteOAuth2CredentialResult

type DeleteOAuth2CredentialResult struct {
	// Unique identifier of the OAuth 2.0 credential that was deleted
	OAuth2CredentialID string `json:"oauth2CredentialId"`
}

type DeleteOAuthProvidersIntent

type DeleteOAuthProvidersIntent struct {
	// Unique identifier for a given Provider.
	ProviderIds []string `json:"providerIds"`
	// The ID of the User to remove an Oauth provider from
	UserID string `json:"userId"`
}

type DeleteOAuthProvidersRequest

type DeleteOAuthProvidersRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given Provider.
	ProviderIds []string `json:"providerIds"`
	// The ID of the User to remove an Oauth provider from
	UserID string `json:"userId"`
}

func (DeleteOAuthProvidersRequest) ActivityType

func (DeleteOAuthProvidersRequest) ActivityType() string

type DeleteOAuthProvidersResponse

type DeleteOAuthProvidersResponse struct {
	Activity Activity `json:"activity"`
	DeleteOAuthProvidersResult
}

type DeleteOAuthProvidersResult

type DeleteOAuthProvidersResult struct {
	// A list of unique identifiers for Oauth Providers
	ProviderIds []string `json:"providerIds"`
}

type DeleteOrganizationIntent

type DeleteOrganizationIntent struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type DeleteOrganizationResult

type DeleteOrganizationResult struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type DeletePoliciesIntent

type DeletePoliciesIntent struct {
	// List of unique identifiers for policies within an organization
	PolicyIds []string `json:"policyIds"`
}

type DeletePoliciesRequest

type DeletePoliciesRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// List of unique identifiers for policies within an organization
	PolicyIds []string `json:"policyIds"`
}

func (DeletePoliciesRequest) ActivityType

func (DeletePoliciesRequest) ActivityType() string

type DeletePoliciesResponse

type DeletePoliciesResponse struct {
	Activity Activity `json:"activity"`
	DeletePoliciesResult
}

type DeletePoliciesResult

type DeletePoliciesResult struct {
	// A list of unique identifiers for the deleted policies.
	PolicyIds []string `json:"policyIds"`
}

type DeletePolicyIntent

type DeletePolicyIntent struct {
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
}

type DeletePolicyRequest

type DeletePolicyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
}

func (DeletePolicyRequest) ActivityType

func (DeletePolicyRequest) ActivityType() string

type DeletePolicyResponse

type DeletePolicyResponse struct {
	Activity Activity `json:"activity"`
	DeletePolicyResult
}

type DeletePolicyResult

type DeletePolicyResult struct {
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
}

type DeletePrivateKeyTagsIntent

type DeletePrivateKeyTagsIntent struct {
	// A list of Private Key Tag IDs.
	PrivateKeyTagIds []string `json:"privateKeyTagIds"`
}

type DeletePrivateKeyTagsRequest

type DeletePrivateKeyTagsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Private Key Tag IDs.
	PrivateKeyTagIds []string `json:"privateKeyTagIds"`
}

func (DeletePrivateKeyTagsRequest) ActivityType

func (DeletePrivateKeyTagsRequest) ActivityType() string

type DeletePrivateKeyTagsResponse

type DeletePrivateKeyTagsResponse struct {
	Activity Activity `json:"activity"`
	DeletePrivateKeyTagsResult
}

type DeletePrivateKeyTagsResult

type DeletePrivateKeyTagsResult struct {
	// A list of Private Key IDs.
	PrivateKeyIds []string `json:"privateKeyIds"`
	// A list of Private Key Tag IDs.
	PrivateKeyTagIds []string `json:"privateKeyTagIds"`
}

type DeletePrivateKeysIntent

type DeletePrivateKeysIntent struct {
	// Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
	// List of unique identifiers for private keys within an organization
	PrivateKeyIds []string `json:"privateKeyIds"`
}

type DeletePrivateKeysRequest

type DeletePrivateKeysRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
	// List of unique identifiers for private keys within an organization
	PrivateKeyIds []string `json:"privateKeyIds"`
}

func (DeletePrivateKeysRequest) ActivityType

func (DeletePrivateKeysRequest) ActivityType() string

type DeletePrivateKeysResponse

type DeletePrivateKeysResponse struct {
	Activity Activity `json:"activity"`
	DeletePrivateKeysResult
}

type DeletePrivateKeysResult

type DeletePrivateKeysResult struct {
	// A list of private key unique identifiers that were removed
	PrivateKeyIds []string `json:"privateKeyIds"`
}

type DeleteSmartContractInterfaceIntent

type DeleteSmartContractInterfaceIntent struct {
	// The ID of a Smart Contract Interface intended for deletion.
	SmartContractInterfaceID string `json:"smartContractInterfaceId"`
}

type DeleteSmartContractInterfaceRequest

type DeleteSmartContractInterfaceRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The ID of a Smart Contract Interface intended for deletion.
	SmartContractInterfaceID string `json:"smartContractInterfaceId"`
}

func (DeleteSmartContractInterfaceRequest) ActivityType

type DeleteSmartContractInterfaceResponse

type DeleteSmartContractInterfaceResponse struct {
	Activity Activity `json:"activity"`
	DeleteSmartContractInterfaceResult
}

type DeleteSmartContractInterfaceResult

type DeleteSmartContractInterfaceResult struct {
	// The ID of the deleted Smart Contract Interface.
	SmartContractInterfaceID string `json:"smartContractInterfaceId"`
}

type DeleteSubOrganizationIntent

type DeleteSubOrganizationIntent struct {
	// Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
}

type DeleteSubOrganizationRequest

type DeleteSubOrganizationRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
}

func (DeleteSubOrganizationRequest) ActivityType

func (DeleteSubOrganizationRequest) ActivityType() string

type DeleteSubOrganizationResponse

type DeleteSubOrganizationResponse struct {
	Activity Activity `json:"activity"`
	DeleteSubOrganizationResult
}

type DeleteSubOrganizationResult

type DeleteSubOrganizationResult struct {
	// Unique identifier of the sub organization that was removed
	SubOrganizationUUID string `json:"subOrganizationUuid"`
}

type DeleteTVCAppAndDeploymentsIntent

type DeleteTVCAppAndDeploymentsIntent struct {
	// The unique identifier of the TVC app to delete. The app and all associated deployments will be removed.
	AppID string `json:"appId"`
}

type DeleteTVCAppAndDeploymentsRequest

type DeleteTVCAppAndDeploymentsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The unique identifier of the TVC app to delete. The app and all associated deployments will be removed.
	AppID string `json:"appId"`
}

func (DeleteTVCAppAndDeploymentsRequest) ActivityType

type DeleteTVCAppAndDeploymentsResponse

type DeleteTVCAppAndDeploymentsResponse struct {
	Activity Activity `json:"activity"`
	DeleteTVCAppAndDeploymentsResult
}

type DeleteTVCAppAndDeploymentsResult

type DeleteTVCAppAndDeploymentsResult struct {
	// The unique identifier of the deleted TVC app.
	AppID string `json:"appId"`
}

type DeleteTVCDeploymentIntent

type DeleteTVCDeploymentIntent struct {
	// The unique identifier of the TVC deployment to delete.
	DeploymentID string `json:"deploymentId"`
}

type DeleteTVCDeploymentRequest

type DeleteTVCDeploymentRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The unique identifier of the TVC deployment to delete.
	DeploymentID string `json:"deploymentId"`
}

func (DeleteTVCDeploymentRequest) ActivityType

func (DeleteTVCDeploymentRequest) ActivityType() string

type DeleteTVCDeploymentResponse

type DeleteTVCDeploymentResponse struct {
	Activity Activity `json:"activity"`
	DeleteTVCDeploymentResult
}

type DeleteTVCDeploymentResult

type DeleteTVCDeploymentResult struct {
	// The unique identifier of the deleted TVC deployment.
	DeploymentID string `json:"deploymentId"`
}

type DeleteUserTagsIntent

type DeleteUserTagsIntent struct {
	// A list of User Tag IDs.
	UserTagIds []string `json:"userTagIds"`
}

type DeleteUserTagsRequest

type DeleteUserTagsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of User Tag IDs.
	UserTagIds []string `json:"userTagIds"`
}

func (DeleteUserTagsRequest) ActivityType

func (DeleteUserTagsRequest) ActivityType() string

type DeleteUserTagsResponse

type DeleteUserTagsResponse struct {
	Activity Activity `json:"activity"`
	DeleteUserTagsResult
}

type DeleteUserTagsResult

type DeleteUserTagsResult struct {
	// A list of User IDs.
	UserIds []string `json:"userIds"`
	// A list of User Tag IDs.
	UserTagIds []string `json:"userTagIds"`
}

type DeleteUsersIntent

type DeleteUsersIntent struct {
	// A list of User IDs.
	UserIds []string `json:"userIds"`
}

type DeleteUsersRequest

type DeleteUsersRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of User IDs.
	UserIds []string `json:"userIds"`
}

func (DeleteUsersRequest) ActivityType

func (DeleteUsersRequest) ActivityType() string

type DeleteUsersResponse

type DeleteUsersResponse struct {
	Activity Activity `json:"activity"`
	DeleteUsersResult
}

type DeleteUsersResult

type DeleteUsersResult struct {
	// A list of User IDs.
	UserIds []string `json:"userIds"`
}

type DeleteWalletAccountsIntent

type DeleteWalletAccountsIntent struct {
	// Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
	// List of unique identifiers for wallet accounts within an organization
	WalletAccountIds []string `json:"walletAccountIds"`
}

type DeleteWalletAccountsRequest

type DeleteWalletAccountsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
	// List of unique identifiers for wallet accounts within an organization
	WalletAccountIds []string `json:"walletAccountIds"`
}

func (DeleteWalletAccountsRequest) ActivityType

func (DeleteWalletAccountsRequest) ActivityType() string

type DeleteWalletAccountsResponse

type DeleteWalletAccountsResponse struct {
	Activity Activity `json:"activity"`
	DeleteWalletAccountsResult
}

type DeleteWalletAccountsResult

type DeleteWalletAccountsResult struct {
	// A list of wallet account unique identifiers that were removed
	WalletAccountIds []string `json:"walletAccountIds"`
}

type DeleteWalletsIntent

type DeleteWalletsIntent struct {
	// Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
	// List of unique identifiers for wallets within an organization
	WalletIds []string `json:"walletIds"`
}

type DeleteWalletsRequest

type DeleteWalletsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
	DeleteWithoutExport *bool `json:"deleteWithoutExport,omitempty"`
	// List of unique identifiers for wallets within an organization
	WalletIds []string `json:"walletIds"`
}

func (DeleteWalletsRequest) ActivityType

func (DeleteWalletsRequest) ActivityType() string

type DeleteWalletsResponse

type DeleteWalletsResponse struct {
	Activity Activity `json:"activity"`
	DeleteWalletsResult
}

type DeleteWalletsResult

type DeleteWalletsResult struct {
	// A list of wallet unique identifiers that were removed
	WalletIds []string `json:"walletIds"`
}

type DeleteWebhookEndpointIntent

type DeleteWebhookEndpointIntent struct {
	// Unique identifier of the webhook endpoint to delete.
	EndpointID string `json:"endpointId"`
}

type DeleteWebhookEndpointRequest

type DeleteWebhookEndpointRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier of the webhook endpoint to delete.
	EndpointID string `json:"endpointId"`
}

func (DeleteWebhookEndpointRequest) ActivityType

func (DeleteWebhookEndpointRequest) ActivityType() string

type DeleteWebhookEndpointResponse

type DeleteWebhookEndpointResponse struct {
	Activity Activity `json:"activity"`
	DeleteWebhookEndpointResult
}

type DeleteWebhookEndpointResult

type DeleteWebhookEndpointResult struct {
	// Unique identifier of the deleted webhook endpoint.
	EndpointID string `json:"endpointId"`
}

type DeploymentStatus

type DeploymentStatus struct {
	// Unique identifier for this deployment (corresponds to k8s deployment label)
	DeploymentID string `json:"deploymentId"`
	// Desired number of replicas
	DesiredReplicas int `json:"desiredReplicas"`
	// Last time this deployment was updated
	LastUpdatedTime ExternalDataV1Timestamp `json:"lastUpdatedTime"`
	// Number of ready replicas
	ReadyReplicas int `json:"readyReplicas"`
}

type DisableAuthProxyIntent

type DisableAuthProxyIntent map[string]any

type DisableAuthProxyResult

type DisableAuthProxyResult map[string]any

type DisablePrivateKeyIntent

type DisablePrivateKeyIntent struct {
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
}

type DisablePrivateKeyResult

type DisablePrivateKeyResult struct {
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
}

type ETHCallParams

type ETHCallParams struct {
	// Hex-encoded call data for contract interactions.
	Data *string `json:"data,omitempty"`
	// Recipient address as a hex string with 0x prefix.
	To string `json:"to"`
	// Amount of native asset to send in wei.
	Value *string `json:"value,omitempty"`
}

type ETHFailureDetails

type ETHFailureDetails struct {
	// Ethereum revert chain, ordered from outermost to innermost.
	RevertChain []RevertChainEntry `json:"revertChain,omitempty"`
}

type ETHSendRawTransactionIntent

type ETHSendRawTransactionIntent struct {
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
	Caip2 string `json:"caip2"`
	// The raw, signed transaction to be sent.
	SignedTransaction string `json:"signedTransaction"`
}

type ETHSendRawTransactionResult

type ETHSendRawTransactionResult struct {
	// The transaction hash of the sent transaction
	TransactionHash string `json:"transactionHash"`
}

type ETHSendTransactionIntent

type ETHSendTransactionIntent struct {
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
	Caip2 string `json:"caip2"`
	// Hex-encoded call data for contract interactions.
	Data *string `json:"data,omitempty"`
	// Unix timestamp in seconds for EIP-712 execution deadline. Only used when sponsor=true.
	Deadline *string `json:"deadline,omitempty"`
	// A wallet or private key address to sign with. This does not support private key IDs.
	From string `json:"from"`
	// Maximum amount of gas to use for this transaction, for EIP-1559 transactions.
	GasLimit *string `json:"gasLimit,omitempty"`
	// The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture.
	GasStationNonce *string `json:"gasStationNonce,omitempty"`
	// Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
	MaxFeePerGas *string `json:"maxFeePerGas,omitempty"`
	// Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
	MaxPriorityFeePerGas *string `json:"maxPriorityFeePerGas,omitempty"`
	// Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations.
	Nonce *string `json:"nonce,omitempty"`
	// Whether to sponsor this transaction via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
	// Recipient address as a hex string with 0x prefix.
	To string `json:"to"`
	// Amount of native asset to send in wei.
	Value *string `json:"value,omitempty"`
}

type ETHSendTransactionIntentV2

type ETHSendTransactionIntentV2 struct {
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
	Caip2 string `json:"caip2"`
	// Ordered list of calls to execute. Must contain between 1 and 50 entries. A single entry with sponsor=false uses EIP-1559; multiple entries use EIP-7702 batch execution via Gas Station.
	Calls []ETHCallParams `json:"calls"`
	// Unix timestamp in seconds for EIP-712 execution deadline. Only used when sponsor=true.
	Deadline *string `json:"deadline,omitempty"`
	// A wallet or private key address to sign with. This does not support private key IDs.
	From string `json:"from"`
	// Maximum amount of gas for the outer transaction. Omit to auto-estimate.
	GasLimit *string `json:"gasLimit,omitempty"`
	// The gas station delegate contract nonce. Only used when sponsor=true. Omit to auto-fetch.
	GasStationNonce *string `json:"gasStationNonce,omitempty"`
	// Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate.
	MaxFeePerGas *string `json:"maxFeePerGas,omitempty"`
	// Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate.
	MaxPriorityFeePerGas *string `json:"maxPriorityFeePerGas,omitempty"`
	// Outer transaction nonce. Omit to auto-fetch.
	Nonce *string `json:"nonce,omitempty"`
	// Whether to sponsor this transaction via Gas Station. If false or unset, the EOA pays gas. A single call uses EIP-1559; multiple calls use EIP-7702 batch execution via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
}

type ETHSendTransactionRequest

type ETHSendTransactionRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
	Caip2 string `json:"caip2"`
	// Ordered list of calls to execute. Must contain between 1 and 50 entries. A single entry with sponsor=false uses EIP-1559; multiple entries use EIP-7702 batch execution via Gas Station.
	Calls []ETHCallParams `json:"calls"`
	// Unix timestamp in seconds for EIP-712 execution deadline. Only used when sponsor=true.
	Deadline *string `json:"deadline,omitempty"`
	// A wallet or private key address to sign with. This does not support private key IDs.
	From string `json:"from"`
	// Maximum amount of gas for the outer transaction. Omit to auto-estimate.
	GasLimit *string `json:"gasLimit,omitempty"`
	// The gas station delegate contract nonce. Only used when sponsor=true. Omit to auto-fetch.
	GasStationNonce *string `json:"gasStationNonce,omitempty"`
	// Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate.
	MaxFeePerGas *string `json:"maxFeePerGas,omitempty"`
	// Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate.
	MaxPriorityFeePerGas *string `json:"maxPriorityFeePerGas,omitempty"`
	// Outer transaction nonce. Omit to auto-fetch.
	Nonce *string `json:"nonce,omitempty"`
	// Whether to sponsor this transaction via Gas Station. If false or unset, the EOA pays gas. A single call uses EIP-1559; multiple calls use EIP-7702 batch execution via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
}

func (ETHSendTransactionRequest) ActivityType

func (ETHSendTransactionRequest) ActivityType() string

type ETHSendTransactionResponse

type ETHSendTransactionResponse struct {
	Activity Activity `json:"activity"`
	ETHSendTransactionResultV2
}

type ETHSendTransactionResult

type ETHSendTransactionResult struct {
	// The send_transaction_status ID associated with the transaction submission
	SendTransactionStatusID string `json:"sendTransactionStatusId"`
}

type ETHSendTransactionResultV2

type ETHSendTransactionResultV2 struct {
	// The send_transaction_status ID associated with the transaction submission
	SendTransactionStatusID string `json:"sendTransactionStatusId"`
}

type ETHSendTransactionStatus

type ETHSendTransactionStatus struct {
	// The Ethereum transaction hash, if available.
	TxHash *string `json:"txHash,omitempty"`
}

type EarnDeployWrapperIntent

type EarnDeployWrapperIntent struct {
	// CAIP-2 chain ID the vault lives on (e.g., 'eip155:8453' for Base).
	ChainCaip2 string `json:"chainCaip2"`
	// Address of the underlying yield vault to wrap (from the EarnVaults catalog).
	VaultAddress string `json:"vaultAddress"`
}

type EarnDeployWrapperResult

type EarnDeployWrapperResult struct {
	// Transaction hash of the wrapper deployment.
	DeployTxHash string `json:"deployTxHash"`
	// Address of the deployed fee splitter (PaymentSplitter for Morpho, RevenueSplitterOwner for Aave).
	SplitterAddress string `json:"splitterAddress"`
	// Address of the deployed fee wrapper (the deposit target).
	WrapperAddress string `json:"wrapperAddress"`
}

type EarnDepositIntent

type EarnDepositIntent struct {
	// Amount of the underlying asset to deposit, in raw on-chain units (e.g., '1000000' for 1 USDC at 6 decimals).
	Assets string `json:"assets"`
	// CAIP-2 chain ID the vault lives on (e.g., 'eip155:8453' for Base).
	ChainCaip2 string `json:"chainCaip2"`
	// A Wallet account address or Private Key address to deposit from and sign with. Must be an on-chain address; Private Key identifiers are not supported.
	SignWith string `json:"signWith"`
	// Whether to sponsor this transaction via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
	// Address of the underlying yield vault to deposit into. The org must have an enabled wrapper for this vault.
	VaultAddress string `json:"vaultAddress"`
}

type EarnDepositResult

type EarnDepositResult struct {
	// Identifier to poll deposit status via EarnDepositStatus (for the async/sponsored path).
	DepositRequestID string `json:"depositRequestId"`
	// Transaction hash of the deposit.
	DepositTxHash string `json:"depositTxHash"`
	// Number of wrapper shares minted to the depositor, in raw on-chain units.
	SharesMinted string `json:"sharesMinted"`
	// Address of the fee wrapper the deposit was routed to.
	WrapperAddress string `json:"wrapperAddress"`
}

type EarnWithdrawIntent

type EarnWithdrawIntent struct {
	// Whether amount_value is denominated in shares or assets. 'SHARES' redeems wrapper shares (calls redeem()); 'ASSETS' withdraws underlying assets (calls withdraw(), enabling yield-only claims).
	AmountType string `json:"amountType"`
	// The amount to withdraw, in raw on-chain units, interpreted according to amount_type.
	AmountValue string `json:"amountValue"`
	// CAIP-2 chain ID the vault lives on (e.g., 'eip155:8453' for Base).
	ChainCaip2 string `json:"chainCaip2"`
	// A Wallet account address or Private Key address to withdraw to and sign with. Must be an on-chain address; Private Key identifiers are not supported.
	SignWith string `json:"signWith"`
	// Whether to sponsor this transaction via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
	// Address of the underlying yield vault to withdraw from. The org must have an enabled wrapper for this vault.
	VaultAddress string `json:"vaultAddress"`
}

type EarnWithdrawResult

type EarnWithdrawResult struct {
	// Amount of the underlying asset received, in raw on-chain units.
	AssetsReceived string `json:"assetsReceived"`
	// Number of wrapper shares burned, in raw on-chain units.
	SharesBurned string `json:"sharesBurned"`
	// Identifier to poll withdrawal status via EarnWithdrawStatus.
	WithdrawRequestID string `json:"withdrawRequestId"`
	// Transaction hash of the withdrawal.
	WithdrawTxHash string `json:"withdrawTxHash"`
}

type Effect

type Effect string
const (
	EffectAllow Effect = "EFFECT_ALLOW"
	EffectDeny  Effect = "EFFECT_DENY"
)

type EmailAuthCustomizationParams

type EmailAuthCustomizationParams struct {
	// The name of the application. This field is required and will be used in email notifications if an email template is not provided.
	AppName string `json:"appName"`
	// A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
	LogoURL *string `json:"logoUrl,omitempty"`
	// A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
	MagicLinkTemplate *string `json:"magicLinkTemplate,omitempty"`
	// Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
	TemplateID *string `json:"templateId,omitempty"`
	// JSON object containing key/value pairs to be used with custom templates.
	TemplateVariables *string `json:"templateVariables,omitempty"`
}

type EmailAuthIntent

type EmailAuthIntent struct {
	// Optional human-readable name for an API Key. If none provided, default to Email Auth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Email of the authenticating user.
	Email string `json:"email"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Email Auth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type EmailAuthIntentV2

type EmailAuthIntentV2 struct {
	// Optional human-readable name for an API Key. If none provided, default to Email Auth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Email of the authenticating user.
	Email string `json:"email"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Email Auth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type EmailAuthIntentV3

type EmailAuthIntentV3 struct {
	// Optional human-readable name for an API Key. If none provided, default to Email Auth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Email of the authenticating user.
	Email string `json:"email"`
	// Parameters for customizing emails. If not provided, the default email will be used. Note that app_name is required.
	EmailCustomization EmailAuthCustomizationParams `json:"emailCustomization"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Email Auth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type EmailAuthRequest

type EmailAuthRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional human-readable name for an API Key. If none provided, default to Email Auth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Email of the authenticating user.
	Email string `json:"email"`
	// Parameters for customizing emails. If not provided, the default email will be used. Note that app_name is required.
	EmailCustomization EmailAuthCustomizationParams `json:"emailCustomization"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Email Auth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

func (EmailAuthRequest) ActivityType

func (EmailAuthRequest) ActivityType() string

type EmailAuthResponse

type EmailAuthResponse struct {
	Activity Activity `json:"activity"`
	EmailAuthResult
}

type EmailAuthResult

type EmailAuthResult struct {
	// Unique identifier for the created API key.
	APIKeyID string `json:"apiKeyId"`
	// Unique identifier for the authenticating User.
	UserID string `json:"userId"`
}

type EmailCustomizationParams

type EmailCustomizationParams struct {
	// The name of the application.
	AppName *string `json:"appName,omitempty"`
	// A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
	LogoURL *string `json:"logoUrl,omitempty"`
	// A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
	MagicLinkTemplate *string `json:"magicLinkTemplate,omitempty"`
	// Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
	TemplateID *string `json:"templateId,omitempty"`
	// JSON object containing key/value pairs to be used with custom templates.
	TemplateVariables *string `json:"templateVariables,omitempty"`
}

type EmailCustomizationParamsV2

type EmailCustomizationParamsV2 struct {
	// A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
	LogoURL *string `json:"logoUrl,omitempty"`
	// A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
	MagicLinkTemplate *string `json:"magicLinkTemplate,omitempty"`
	// Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
	TemplateID *string `json:"templateId,omitempty"`
	// JSON object containing key/value pairs to be used with custom templates.
	TemplateVariables *string `json:"templateVariables,omitempty"`
}

type EmailEvent

type EmailEvent struct {
	// Creation timestamp as millisecond epoch string
	CreatedAt string `json:"createdAt"`
	// Parsed email event details. Fields are populated based on event type and available provider metadata
	Details EmailEventDetails `json:"details"`
	// Email event type, such as Send, Delivery, Bounce, or DeliveryDelay
	EventType string `json:"eventType"`
	// Sender email address
	FromAddress string `json:"fromAddress"`
	// Unique identifier for the email event
	ID string `json:"id"`
	// Provider message identifier. Multiple events can share the same message ID
	MessageID string `json:"messageId"`
	// Unique identifier for the organization associated with the email event
	OrganizationID string `json:"organizationId"`
	// SES tenant that sent the email, when available
	SenderTenant *string `json:"senderTenant,omitempty"`
	// Event timestamp as millisecond epoch string
	Timestamp string `json:"timestamp"`
	// Recipient email address
	ToAddress string `json:"toAddress"`
}

type EmailEventDetails

type EmailEventDetails struct {
	// Bounce subtype for Bounce events
	BounceSubType *string `json:"bounceSubType,omitempty"`
	// Bounce type for Bounce events
	BounceType *string `json:"bounceType,omitempty"`
	// Delay type for DeliveryDelay events
	DeliveryDelayType *string `json:"deliveryDelayType,omitempty"`
	// Processing time in milliseconds for Delivery events
	DeliveryProcessingTimeMillis *string `json:"deliveryProcessingTimeMillis,omitempty"`
	// SMTP response for Delivery events
	DeliverySmtpResponse *string `json:"deliverySmtpResponse,omitempty"`
	// Diagnostic text for Bounce or DeliveryDelay events
	DiagnosticCode *string `json:"diagnosticCode,omitempty"`
}

type EnableAuthProxyIntent

type EnableAuthProxyIntent map[string]any

type EnableAuthProxyResult

type EnableAuthProxyResult struct {
	// A User ID with permission to initiate authentication.
	UserID string `json:"userId"`
}

type ExecuteSwapIntent

type ExecuteSwapIntent struct {
	// Base-unit amount of the input asset.
	InputAmount string `json:"inputAmount"`
	// CAIP-19 asset ID for the input asset. The chain is derived from this value.
	InputToken string `json:"inputToken"`
	// CAIP-19 asset ID for the output asset. May be on a different chain than `input_token` for cross-chain swaps.
	OutputToken string `json:"outputToken"`
	// Swap provider to execute with, as returned by get_swap_quote. When omitted, execution uses the default provider.
	Provider *string `json:"provider,omitempty"`
	// Maximum allowed slippage in basis points.
	Slippage *string `json:"slippage,omitempty"`
	// Whether to sponsor the resulting swap transaction via Gas Station when supported by the chain.
	Sponsor *bool `json:"sponsor,omitempty"`
	// Wallet account address to sign and submit the swap transaction from. Cross-wallet swaps are not supported.
	WalletAccount string `json:"walletAccount"`
}

type ExecuteSwapResult

type ExecuteSwapResult struct {
	// Swap provider used to build the transaction.
	Provider *string `json:"provider,omitempty"`
	// Quote identifier used for execution, if any.
	QuoteID *string `json:"quoteId,omitempty"`
	// The send_transaction_status ID associated with the swap transaction submission
	SendTransactionStatusID string `json:"sendTransactionStatusId"`
}

type ExportPrivateKeyIntent

type ExportPrivateKeyIntent struct {
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
	// Client-side public key generated by the user, to which the export bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type ExportPrivateKeyRequest

type ExportPrivateKeyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
	// Client-side public key generated by the user, to which the export bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

func (ExportPrivateKeyRequest) ActivityType

func (ExportPrivateKeyRequest) ActivityType() string

type ExportPrivateKeyResponse

type ExportPrivateKeyResponse struct {
	Activity Activity `json:"activity"`
	ExportPrivateKeyResult
}

type ExportPrivateKeyResult

type ExportPrivateKeyResult struct {
	// Export bundle containing a private key encrypted to the client's target public key.
	ExportBundle string `json:"exportBundle"`
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
}

type ExportWalletAccountIntent

type ExportWalletAccountIntent struct {
	// Address to identify Wallet Account.
	Address string `json:"address"`
	// Client-side public key generated by the user, to which the export bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type ExportWalletAccountRequest

type ExportWalletAccountRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Address to identify Wallet Account.
	Address string `json:"address"`
	// Client-side public key generated by the user, to which the export bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

func (ExportWalletAccountRequest) ActivityType

func (ExportWalletAccountRequest) ActivityType() string

type ExportWalletAccountResponse

type ExportWalletAccountResponse struct {
	Activity Activity `json:"activity"`
	ExportWalletAccountResult
}

type ExportWalletAccountResult

type ExportWalletAccountResult struct {
	// Address to identify Wallet Account.
	Address string `json:"address"`
	// Export bundle containing a private key encrypted by the client's target public key.
	ExportBundle string `json:"exportBundle"`
}

type ExportWalletIntent

type ExportWalletIntent struct {
	// The language of the mnemonic to export. Defaults to English.
	Language *MnemonicLanguage `json:"language,omitempty"`
	// Client-side public key generated by the user, to which the export bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
}

type ExportWalletRequest

type ExportWalletRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The language of the mnemonic to export. Defaults to English.
	Language *MnemonicLanguage `json:"language,omitempty"`
	// Client-side public key generated by the user, to which the export bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
}

func (ExportWalletRequest) ActivityType

func (ExportWalletRequest) ActivityType() string

type ExportWalletResponse

type ExportWalletResponse struct {
	Activity Activity `json:"activity"`
	ExportWalletResult
}

type ExportWalletResult

type ExportWalletResult struct {
	// Export bundle containing a wallet mnemonic + optional newline passphrase encrypted by the client's target public key.
	ExportBundle string `json:"exportBundle"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
}

type ExternalActivityV1PolicyEvaluation

type ExternalActivityV1PolicyEvaluation struct {
	// Unique identifier for a given Activity.
	ActivityID string                  `json:"activityId"`
	CreatedAt  ExternalDataV1Timestamp `json:"createdAt"`
	// Unique identifier for a given policy evaluation.
	ID string `json:"id"`
	// Unique identifier for the Organization the Activity belongs to.
	OrganizationID string `json:"organizationId"`
	// Detailed evaluation result for each Policy that was run.
	PolicyEvaluations []ImmutablecommonV1PolicyEvaluation `json:"policyEvaluations"`
	// Unique identifier for the Vote associated with this policy evaluation.
	VoteID string `json:"voteId"`
}

type ExternalDataV1Address

type ExternalDataV1Address struct {
	Address *string        `json:"address,omitempty"`
	Format  *AddressFormat `json:"format,omitempty"`
}

type ExternalDataV1Credential

type ExternalDataV1Credential struct {
	// The public component of a cryptographic key pair used to sign messages and transactions.
	PublicKey string `json:"publicKey"`
	// The session profile associated with this credential, if any. This field is only applicable for credentials of type CREDENTIAL_TYPE_LOGIN.
	SessionProfileID *string        `json:"sessionProfileId,omitempty"`
	TypeValue        CredentialType `json:"type"`
}

type ExternalDataV1Quorum

type ExternalDataV1Quorum struct {
	// Count of unique approvals required to meet quorum.
	Threshold int `json:"threshold"`
	// Unique identifiers of quorum set members.
	UserIds []string `json:"userIds"`
}

type ExternalDataV1SignatureScheme

type ExternalDataV1SignatureScheme string
const (
	ExternalDataV1SignatureSchemeSignatureSchemeEphemeralKeyP256 ExternalDataV1SignatureScheme = "SIGNATURE_SCHEME_EPHEMERAL_KEY_P256"
)

type ExternalDataV1SmartContractInterface

type ExternalDataV1SmartContractInterface struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// The label corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA).
	Label string `json:"label"`
	// The notes corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA).
	Notes string `json:"notes"`
	// The Organization the Smart Contract Interface belongs to.
	OrganizationID string `json:"organizationId"`
	// The address corresponding to the Smart Contract or Program.
	SmartContractAddress string `json:"smartContractAddress"`
	// The JSON corresponding to the Smart Contract Interface (ABI or IDL).
	SmartContractInterface string `json:"smartContractInterface"`
	// Unique identifier for a given Smart Contract Interface (ABI or IDL).
	SmartContractInterfaceID string `json:"smartContractInterfaceId"`
	// The type corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA).
	TypeValue string                  `json:"type"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type ExternalDataV1Timestamp

type ExternalDataV1Timestamp struct {
	Nanos   string `json:"nanos"`
	Seconds string `json:"seconds"`
}

type Feature

type Feature struct {
	Name  *FeatureName `json:"name,omitempty"`
	Value *string      `json:"value,omitempty"`
}

type FeatureName

type FeatureName string
const (
	FeatureNameRootUserEmailRecovery    FeatureName = "FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY"
	FeatureNameWebauthnOrigins          FeatureName = "FEATURE_NAME_WEBAUTHN_ORIGINS"
	FeatureNameEmailAuth                FeatureName = "FEATURE_NAME_EMAIL_AUTH"
	FeatureNameEmailRecovery            FeatureName = "FEATURE_NAME_EMAIL_RECOVERY"
	FeatureNameWebhook                  FeatureName = "FEATURE_NAME_WEBHOOK"
	FeatureNameSmsAuth                  FeatureName = "FEATURE_NAME_SMS_AUTH"
	FeatureNameOTPEmailAuth             FeatureName = "FEATURE_NAME_OTP_EMAIL_AUTH"
	FeatureNameAuthProxy                FeatureName = "FEATURE_NAME_AUTH_PROXY"
	FeatureNameSolanaRentPrefundEnabled FeatureName = "FEATURE_NAME_SOLANA_RENT_PREFUND_ENABLED"
	FeatureNameSwapConfig               FeatureName = "FEATURE_NAME_SWAP_CONFIG"
	FeatureNameEarnConfig               FeatureName = "FEATURE_NAME_EARN_CONFIG"
)

type FiatOnRampBlockchainNetwork

type FiatOnRampBlockchainNetwork string
const (
	FiatOnRampBlockchainNetworkBitcoin  FiatOnRampBlockchainNetwork = "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BITCOIN"
	FiatOnRampBlockchainNetworkEthereum FiatOnRampBlockchainNetwork = "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_ETHEREUM"
	FiatOnRampBlockchainNetworkSolana   FiatOnRampBlockchainNetwork = "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_SOLANA"
	FiatOnRampBlockchainNetworkBase     FiatOnRampBlockchainNetwork = "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BASE"
)

type FiatOnRampCredential

type FiatOnRampCredential struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
	EncryptedPrivateAPIKey *string `json:"encryptedPrivateApiKey,omitempty"`
	// Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key.
	EncryptedSecretAPIKey string `json:"encryptedSecretApiKey"`
	// Unique identifier for a given Fiat On-Ramp Credential.
	FiatOnrampCredentialID string `json:"fiatOnrampCredentialId"`
	// The fiat on-ramp provider.
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Unique identifier for an Organization.
	OrganizationID string `json:"organizationId"`
	// Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
	ProjectID *string `json:"projectId,omitempty"`
	// Publishable API key for the on-ramp provider.
	PublishableAPIKey string `json:"publishableApiKey"`
	// If the on-ramp credential is a sandbox credential.
	SandboxMode *bool                   `json:"sandboxMode,omitempty"`
	UpdatedAt   ExternalDataV1Timestamp `json:"updatedAt"`
}

type FiatOnRampCryptoCurrency

type FiatOnRampCryptoCurrency string
const (
	FiatOnRampCryptoCurrencyBtc  FiatOnRampCryptoCurrency = "FIAT_ON_RAMP_CRYPTO_CURRENCY_BTC"
	FiatOnRampCryptoCurrencyETH  FiatOnRampCryptoCurrency = "FIAT_ON_RAMP_CRYPTO_CURRENCY_ETH"
	FiatOnRampCryptoCurrencySol  FiatOnRampCryptoCurrency = "FIAT_ON_RAMP_CRYPTO_CURRENCY_SOL"
	FiatOnRampCryptoCurrencyUsdc FiatOnRampCryptoCurrency = "FIAT_ON_RAMP_CRYPTO_CURRENCY_USDC"
)

type FiatOnRampCurrency

type FiatOnRampCurrency string
const (
	FiatOnRampCurrencyAud FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_AUD"
	FiatOnRampCurrencyBgn FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_BGN"
	FiatOnRampCurrencyBrl FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_BRL"
	FiatOnRampCurrencyCad FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_CAD"
	FiatOnRampCurrencyChf FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_CHF"
	FiatOnRampCurrencyCop FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_COP"
	FiatOnRampCurrencyCzk FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_CZK"
	FiatOnRampCurrencyDkk FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_DKK"
	FiatOnRampCurrencyDop FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_DOP"
	FiatOnRampCurrencyEgp FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_EGP"
	FiatOnRampCurrencyEur FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_EUR"
	FiatOnRampCurrencyGbp FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_GBP"
	FiatOnRampCurrencyHkd FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_HKD"
	FiatOnRampCurrencyIdr FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_IDR"
	FiatOnRampCurrencyIls FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_ILS"
	FiatOnRampCurrencyJod FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_JOD"
	FiatOnRampCurrencyKes FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_KES"
	FiatOnRampCurrencyKwd FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_KWD"
	FiatOnRampCurrencyLkr FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_LKR"
	FiatOnRampCurrencyMxn FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_MXN"
	FiatOnRampCurrencyNgn FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_NGN"
	FiatOnRampCurrencyNok FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_NOK"
	FiatOnRampCurrencyNzd FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_NZD"
	FiatOnRampCurrencyOmr FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_OMR"
	FiatOnRampCurrencyPen FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_PEN"
	FiatOnRampCurrencyPln FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_PLN"
	FiatOnRampCurrencyRon FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_RON"
	FiatOnRampCurrencySek FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_SEK"
	FiatOnRampCurrencyThb FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_THB"
	FiatOnRampCurrencyTry FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_TRY"
	FiatOnRampCurrencyTwd FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_TWD"
	FiatOnRampCurrencyUsd FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_USD"
	FiatOnRampCurrencyVnd FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_VND"
	FiatOnRampCurrencyZar FiatOnRampCurrency = "FIAT_ON_RAMP_CURRENCY_ZAR"
)

type FiatOnRampPaymentMethod

type FiatOnRampPaymentMethod string
const (
	FiatOnRampPaymentMethodCreditDebitCard       FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD"
	FiatOnRampPaymentMethodApplePay              FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_APPLE_PAY"
	FiatOnRampPaymentMethodGbpBankTransfer       FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_GBP_BANK_TRANSFER"
	FiatOnRampPaymentMethodGbpOpenBankingPayment FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_GBP_OPEN_BANKING_PAYMENT"
	FiatOnRampPaymentMethodGooglePay             FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_GOOGLE_PAY"
	FiatOnRampPaymentMethodSepaBankTransfer      FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_SEPA_BANK_TRANSFER"
	FiatOnRampPaymentMethodPixInstantPayment     FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_PIX_INSTANT_PAYMENT"
	FiatOnRampPaymentMethodPaypal                FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_PAYPAL"
	FiatOnRampPaymentMethodVenmo                 FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_VENMO"
	FiatOnRampPaymentMethodMoonpayBalance        FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE"
	FiatOnRampPaymentMethodCryptoAccount         FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_CRYPTO_ACCOUNT"
	FiatOnRampPaymentMethodFiatWallet            FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_FIAT_WALLET"
	FiatOnRampPaymentMethodAchBankAccount        FiatOnRampPaymentMethod = "FIAT_ON_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT"
)

type FiatOnRampProvider

type FiatOnRampProvider string
const (
	FiatOnRampProviderCoinbase FiatOnRampProvider = "FIAT_ON_RAMP_PROVIDER_COINBASE"
	FiatOnRampProviderMoonpay  FiatOnRampProvider = "FIAT_ON_RAMP_PROVIDER_MOONPAY"
)

type GetAPIKeyRequest

type GetAPIKeyRequest struct {
	// Unique identifier for a given API key.
	APIKeyID string `json:"apiKeyId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetAPIKeyResponse

type GetAPIKeyResponse struct {
	// An API key.
	APIKey APIKey `json:"apiKey"`
}

type GetAPIKeysRequest

type GetAPIKeysRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given user.
	UserID *string `json:"userId,omitempty"`
}

type GetAPIKeysResponse

type GetAPIKeysResponse struct {
	// A list of API keys.
	APIKeys []APIKey `json:"apiKeys"`
}

type GetActivitiesRequest

type GetActivitiesRequest struct {
	// Array of activity statuses filtering which activities will be listed in the response.
	FilterByStatus []ActivityStatus `json:"filterByStatus,omitempty"`
	// Array of activity types filtering which activities will be listed in the response.
	FilterByType []ActivityType `json:"filterByType,omitempty"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Parameters used for cursor-based pagination.
	PaginationOptions *Pagination `json:"paginationOptions,omitempty"`
}

type GetActivitiesResponse

type GetActivitiesResponse struct {
	// A list of activities.
	Activities []Activity `json:"activities"`
}

type GetActivityRequest

type GetActivityRequest struct {
	// Unique identifier for a given activity object.
	ActivityID string `json:"activityId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetAppProofsRequest

type GetAppProofsRequest struct {
	// Unique identifier for a given activity.
	ActivityID string `json:"activityId"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetAppProofsResponse

type GetAppProofsResponse struct {
	AppProofs []AppProof `json:"appProofs"`
}

type GetAppStatusRequest

type GetAppStatusRequest struct {
	// Unique identifier for a given TVC App.
	AppID string `json:"appId"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetAppStatusResponse

type GetAppStatusResponse struct {
	// Live runtime status for the TVC App
	AppStatus AppStatus `json:"appStatus"`
}

type GetAuthenticatorRequest

type GetAuthenticatorRequest struct {
	// Unique identifier for a given authenticator.
	AuthenticatorID string `json:"authenticatorId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetAuthenticatorResponse

type GetAuthenticatorResponse struct {
	// An authenticator.
	Authenticator Authenticator `json:"authenticator"`
}

type GetAuthenticatorsRequest

type GetAuthenticatorsRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given user.
	UserID string `json:"userId"`
}

type GetAuthenticatorsResponse

type GetAuthenticatorsResponse struct {
	// A list of authenticators.
	Authenticators []Authenticator `json:"authenticators"`
}

type GetBootProofRequest

type GetBootProofRequest struct {
	// Hex encoded ephemeral public key.
	EphemeralKey string `json:"ephemeralKey"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetGasUsageRequest

type GetGasUsageRequest struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetGasUsageResponse

type GetGasUsageResponse struct {
	// The total gas usage (in USD) of all sponsored transactions processed over the last `window_duration_minutes`
	UsageUsd string `json:"usageUsd"`
	// The window duration (in minutes) for the organization or sub-organization.
	WindowDurationMinutes int `json:"windowDurationMinutes"`
	// The window limit (in USD) for the organization or sub-organization.
	WindowLimitUsd string `json:"windowLimitUsd"`
}

type GetIPAllowlistRequest

type GetIPAllowlistRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// If provided, return only the allowlist for this specific API key.
	PublicKey *string `json:"publicKey,omitempty"`
}

type GetIPAllowlistResponse

type GetIPAllowlistResponse struct {
	Allowlist IPAllowlist `json:"allowlist"`
}

type GetLatestBootProofRequest

type GetLatestBootProofRequest struct {
	// Name of enclave app.
	AppName string `json:"appName"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetMfaPoliciesRequest

type GetMfaPoliciesRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given user.
	UserID string `json:"userId"`
}

type GetMfaPoliciesResponse

type GetMfaPoliciesResponse struct {
	// A list of multi-factor authentication policies for a user.
	MfaPolicies []MfaPolicy `json:"mfaPolicies"`
}

type GetMfaPolicyRequest

type GetMfaPolicyRequest struct {
	// Unique identifier for a given MFA policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given user.
	UserID string `json:"userId"`
}

type GetMfaPolicyResponse

type GetMfaPolicyResponse struct {
	// Multi-factor authentication policy for a user.
	MfaPolicy MfaPolicy `json:"mfaPolicy"`
}

type GetMfaStatusRequest

type GetMfaStatusRequest struct {
	// The unique identifier of the activity to get MFA status for.
	ActivityID string `json:"activityId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Optional user ID to filter MFA status for a specific user.
	UserID *string `json:"userId,omitempty"`
}

type GetMfaStatusResponse

type GetMfaStatusResponse struct {
	// A list of MFA statuses for the activity's votes.
	MfaStatuses []MfaStatus `json:"mfaStatuses"`
}

type GetNoncesRequest

type GetNoncesRequest struct {
	// The Ethereum address to query nonces for.
	Address string `json:"address"`
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
	Caip2 string `json:"caip2"`
	// Whether to fetch the gas station nonce used for sponsored transactions.
	GasStationNonce *bool `json:"gasStationNonce,omitempty"`
	// Whether to fetch the standard on-chain nonce.
	Nonce *bool `json:"nonce,omitempty"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetNoncesResponse

type GetNoncesResponse struct {
	// The gas station nonce for sponsored transactions, if requested.
	GasStationNonce *string `json:"gasStationNonce,omitempty"`
	// The standard on-chain nonce for the address, if requested.
	Nonce *string `json:"nonce,omitempty"`
}

type GetOAuth2CredentialRequest

type GetOAuth2CredentialRequest struct {
	// Unique identifier for a given OAuth 2.0 Credential.
	OAuth2CredentialID string `json:"oauth2CredentialId"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type GetOAuth2CredentialResponse

type GetOAuth2CredentialResponse struct {
	OAuth2Credential OAuth2Credential `json:"oauth2Credential"`
}

type GetOAuthProvidersRequest

type GetOAuthProvidersRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given user.
	UserID *string `json:"userId,omitempty"`
}

type GetOAuthProvidersResponse

type GetOAuthProvidersResponse struct {
	// A list of Oauth providers.
	OAuthProviders []OAuthProvider `json:"oauthProviders"`
}

type GetOnRampTransactionStatusRequest

type GetOnRampTransactionStatusRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Optional flag to specify if the transaction status should be refreshed from the fiat on ramp provider. Default = false.
	Refresh *bool `json:"refresh,omitempty"`
	// The unique identifier for the fiat on ramp transaction.
	TransactionID string `json:"transactionId"`
}

type GetOnRampTransactionStatusResponse

type GetOnRampTransactionStatusResponse struct {
	// The status of the fiat on ramp transaction.
	TransactionStatus string `json:"transactionStatus"`
}

type GetOrganizationConfigsRequest

type GetOrganizationConfigsRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetOrganizationConfigsResponse

type GetOrganizationConfigsResponse struct {
	// Organization configs including quorum settings and organization features.
	Configs Config `json:"configs"`
}

type GetPoliciesRequest

type GetPoliciesRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetPoliciesResponse

type GetPoliciesResponse struct {
	// A list of policies.
	Policies []Policy `json:"policies"`
}

type GetPolicyEvaluationsRequest

type GetPolicyEvaluationsRequest struct {
	// Unique identifier for a given activity.
	ActivityID string `json:"activityId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetPolicyEvaluationsResponse

type GetPolicyEvaluationsResponse struct {
	PolicyEvaluations []ExternalActivityV1PolicyEvaluation `json:"policyEvaluations"`
}

type GetPolicyRequest

type GetPolicyRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given policy.
	PolicyID string `json:"policyId"`
}

type GetPolicyResponse

type GetPolicyResponse struct {
	// Object that codifies rules defining the actions that are permissible within an organization.
	Policy Policy `json:"policy"`
}

type GetPrivateKeyRequest

type GetPrivateKeyRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given private key.
	PrivateKeyID string `json:"privateKeyId"`
}

type GetPrivateKeyResponse

type GetPrivateKeyResponse struct {
	// Cryptographic public/private key pair that can be used for cryptocurrency needs or more generalized encryption.
	PrivateKey PrivateKey `json:"privateKey"`
}

type GetPrivateKeysRequest

type GetPrivateKeysRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetPrivateKeysResponse

type GetPrivateKeysResponse struct {
	// A list of private keys.
	PrivateKeys []PrivateKey `json:"privateKeys"`
}

type GetSendTransactionStatusRequest

type GetSendTransactionStatusRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// The unique identifier of a send transaction request.
	SendTransactionStatusID string `json:"sendTransactionStatusId"`
}

type GetSendTransactionStatusResponse

type GetSendTransactionStatusResponse struct {
	// Structured error information including revert details, if available.
	Error *TxError `json:"error,omitempty"`
	// Ethereum-specific transaction status.
	ETH *ETHSendTransactionStatus `json:"eth,omitempty"`
	// Solana-specific transaction status.
	Solana *SolanaSendTransactionStatus `json:"solana,omitempty"`
	// The error encountered when broadcasting or confirming the transaction, if any.
	TxError *string `json:"txError,omitempty"`
	// The current status of the send transaction.
	TxStatus string `json:"txStatus"`
}

type GetSessionProfileRequest

type GetSessionProfileRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a session profile.
	SessionProfileID string `json:"sessionProfileId"`
}

type GetSessionProfileResponse

type GetSessionProfileResponse struct {
	// Session profile for a user, including details about the user's authenticators, Oauth providers, API keys, and MFA policies.
	SessionProfile SessionProfile `json:"sessionProfile"`
}

type GetSessionProfilesRequest

type GetSessionProfilesRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetSessionProfilesResponse

type GetSessionProfilesResponse struct {
	// A list of session profiles for users in the organization.
	SessionProfiles []SessionProfile `json:"sessionProfiles"`
}

type GetSmartContractInterfaceRequest

type GetSmartContractInterfaceRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given smart contract interface.
	SmartContractInterfaceID string `json:"smartContractInterfaceId"`
}

type GetSmartContractInterfaceResponse

type GetSmartContractInterfaceResponse struct {
	// Object to be used in conjunction with policies to guard transaction signing.
	SmartContractInterface ExternalDataV1SmartContractInterface `json:"smartContractInterface"`
}

type GetSmartContractInterfacesRequest

type GetSmartContractInterfacesRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetSmartContractInterfacesResponse

type GetSmartContractInterfacesResponse struct {
	// A list of smart contract interfaces.
	SmartContractInterfaces []ExternalDataV1SmartContractInterface `json:"smartContractInterfaces"`
}

type GetSubOrgIdsRequest

type GetSubOrgIdsRequest struct {
	// Specifies the type of filter to apply, i.e 'CREDENTIAL_ID', 'NAME', 'USERNAME', 'EMAIL', 'PHONE_NUMBER', 'OIDC_TOKEN', 'WALLET_ACCOUNT_ADDRESS' or 'PUBLIC_KEY'
	FilterType *string `json:"filterType,omitempty"`
	// The value of the filter to apply for the specified type. For example, a specific email or name string.
	FilterValue *string `json:"filterValue,omitempty"`
	// Unique identifier for the parent organization. This is used to find sub-organizations within it.
	OrganizationID string `json:"organizationId"`
	// Parameters used for cursor-based pagination.
	PaginationOptions *Pagination `json:"paginationOptions,omitempty"`
}

type GetSubOrgIdsResponse

type GetSubOrgIdsResponse struct {
	// List of unique identifiers for the matching sub-organizations.
	OrganizationIds []string `json:"organizationIds"`
}

type GetTVCAppDeploymentsRequest

type GetTVCAppDeploymentsRequest struct {
	// Unique identifier for a given TVC App.
	AppID string `json:"appId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetTVCAppDeploymentsResponse

type GetTVCAppDeploymentsResponse struct {
	// List of deployments for this TVC App
	TVCDeployments []TVCDeployment `json:"tvcDeployments"`
}

type GetTVCAppRequest

type GetTVCAppRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given TVC App.
	TVCAppID string `json:"tvcAppId"`
}

type GetTVCAppResponse

type GetTVCAppResponse struct {
	// Details about a single TVC App
	TVCApp TVCApp `json:"tvcApp"`
}

type GetTVCAppsRequest

type GetTVCAppsRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetTVCAppsResponse

type GetTVCAppsResponse struct {
	// A list of TVC Apps.
	TVCApps []TVCApp `json:"tvcApps"`
}

type GetTVCDeploymentDebugLogsRequest

type GetTVCDeploymentDebugLogsRequest struct {
	// Unique identifier for a given TVC Deployment. The deployment must be running in debug mode.
	DeploymentID string `json:"deploymentId"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
	// Return logs newer than this many seconds ago. If unset or zero, no since-time limit is applied. Useful for clients that poll to follow logs.
	SinceSeconds *string `json:"sinceSeconds,omitempty"`
	// Limit returned history to the last N lines per replica. If unset or zero, no tail-line limit is applied.
	TailLines *int `json:"tailLines,omitempty"`
}

type GetTVCDeploymentDebugLogsResponse

type GetTVCDeploymentDebugLogsResponse struct {
	// Application log entries sorted by platform timestamp.
	Entries []TVCDeploymentDebugLogEntry `json:"entries"`
}

type GetTVCDeploymentRequest

type GetTVCDeploymentRequest struct {
	// Unique identifier for a given TVC Deployment.
	DeploymentID string `json:"deploymentId"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetTVCDeploymentResponse

type GetTVCDeploymentResponse struct {
	// Details about a single TVC Deployment
	TVCDeployment TVCDeployment `json:"tvcDeployment"`
}

type GetUserRequest

type GetUserRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given user.
	UserID string `json:"userId"`
}

type GetUserResponse

type GetUserResponse struct {
	// Web and/or API user within your organization.
	User User `json:"user"`
}

type GetUsersRequest

type GetUsersRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetUsersResponse

type GetUsersResponse struct {
	// A list of users.
	Users []User `json:"users"`
}

type GetVerifiedSubOrgIdsRequest

type GetVerifiedSubOrgIdsRequest struct {
	// Specifies the type of filter to apply, i.e 'EMAIL', 'PHONE_NUMBER'.
	FilterType *string `json:"filterType,omitempty"`
	// The value of the filter to apply for the specified type. For example, a specific email or phone number string.
	FilterValue *string `json:"filterValue,omitempty"`
	// Unique identifier for the parent organization. This is used to find sub-organizations within it.
	OrganizationID string `json:"organizationId"`
	// Parameters used for cursor-based pagination.
	PaginationOptions *Pagination `json:"paginationOptions,omitempty"`
}

type GetVerifiedSubOrgIdsResponse

type GetVerifiedSubOrgIdsResponse struct {
	// List of unique identifiers for the matching sub-organizations.
	OrganizationIds []string `json:"organizationIds"`
}

type GetWalletAccountRequest

type GetWalletAccountRequest struct {
	// Address corresponding to a wallet account.
	Address *string `json:"address,omitempty"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Path corresponding to a wallet account.
	Path *string `json:"path,omitempty"`
	// Unique identifier for a given wallet.
	WalletID string `json:"walletId"`
}

type GetWalletAccountResponse

type GetWalletAccountResponse struct {
	// The resulting wallet account.
	Account WalletAccount `json:"account"`
}

type GetWalletAccountsRequest

type GetWalletAccountsRequest struct {
	// Optional flag to specify if the wallet details should be included in the response. Default = false.
	IncludeWalletDetails *bool `json:"includeWalletDetails,omitempty"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Parameters used for cursor-based pagination.
	PaginationOptions *Pagination `json:"paginationOptions,omitempty"`
	// Unique identifier for a given wallet. If not provided, all accounts for the organization will be returned.
	WalletID *string `json:"walletId,omitempty"`
}

type GetWalletAccountsResponse

type GetWalletAccountsResponse struct {
	// A list of accounts generated from a wallet that share a common seed.
	Accounts []WalletAccount `json:"accounts"`
}

type GetWalletAddressBalancesRequest

type GetWalletAddressBalancesRequest struct {
	// Address corresponding to a wallet account. Private key addresses are not supported.
	Address string `json:"address"`
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet or 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values.
	Caip2 string `json:"caip2"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetWalletAddressBalancesResponse

type GetWalletAddressBalancesResponse struct {
	// List of asset balances
	Balances []AssetBalance `json:"balances,omitempty"`
}

type GetWalletRequest

type GetWalletRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Unique identifier for a given wallet.
	WalletID string `json:"walletId"`
}

type GetWalletResponse

type GetWalletResponse struct {
	// A collection of deterministically generated cryptographic public / private key pairs that share a common seed.
	Wallet Wallet `json:"wallet"`
}

type GetWalletsRequest

type GetWalletsRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type GetWalletsResponse

type GetWalletsResponse struct {
	// A list of wallets.
	Wallets []Wallet `json:"wallets"`
}

type GetWhoamiRequest

type GetWhoamiRequest struct {
	// Unique identifier for a given organization. If the request is being made by a WebAuthN user and their sub-organization ID is unknown, this can be the parent organization ID; using the sub-organization ID when possible is preferred due to performance reasons.
	OrganizationID string `json:"organizationId"`
}

type GetWhoamiResponse

type GetWhoamiResponse struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
	// Human-readable name for an organization.
	OrganizationName string `json:"organizationName"`
	// Unique identifier for a given user.
	UserID string `json:"userId"`
	// Human-readable name for a user.
	Username string `json:"username"`
}

type HashFunction

type HashFunction string
const (
	HashFunctionNoOp          HashFunction = "HASH_FUNCTION_NO_OP"
	HashFunctionSha256        HashFunction = "HASH_FUNCTION_SHA256"
	HashFunctionKeccak256     HashFunction = "HASH_FUNCTION_KECCAK256"
	HashFunctionNotApplicable HashFunction = "HASH_FUNCTION_NOT_APPLICABLE"
)

type IPAllowlist

type IPAllowlist struct {
	// Whether the IP allowlist is enabled. Only present for organization-level allowlists. Null for API key-level allowlists (presence of the allowlist implies enablement).
	Enabled *bool `json:"enabled,omitempty"`
	// Behavior when an error occurs during IP allowlist evaluation. Valid values: ALLOW, DENY. Defaults to DENY.
	OnEvaluationError *string `json:"onEvaluationError,omitempty"`
	// Unique identifier for the organization this allowlist belongs to.
	OrganizationID string `json:"organizationId"`
	// Public key of the API key this allowlist applies to. Null means the allowlist applies to the entire organization.
	PublicKey *string `json:"publicKey,omitempty"`
	// List of IP allowlist rules with their metadata.
	Rules []IPAllowlistRule `json:"rules"`
}

type IPAllowlistIntentRule

type IPAllowlistIntentRule struct {
	// CIDR block (e.g., '192.168.1.0/24', '2001:db8::/32').
	Cidr string `json:"cidr"`
	// Optional human-readable label for this rule (e.g., 'Office VPN').
	Label *string `json:"label,omitempty"`
}

type IPAllowlistRule

type IPAllowlistRule struct {
	// CIDR block (e.g., '192.168.1.0/24').
	Cidr string `json:"cidr"`
	// Creation timestamp as millisecond epoch string.
	CreatedAt *string `json:"createdAt,omitempty"`
	// Optional human-readable label for this rule.
	Label *string `json:"label,omitempty"`
}

type Immutableactivityv1Address

type Immutableactivityv1Address struct {
	Address *string        `json:"address,omitempty"`
	Format  *AddressFormat `json:"format,omitempty"`
}

type ImmutablecommonV1PolicyEvaluation

type ImmutablecommonV1PolicyEvaluation struct {
	Outcome  *Outcome `json:"outcome,omitempty"`
	PolicyID *string  `json:"policyId,omitempty"`
}

type ImportPrivateKeyIntent

type ImportPrivateKeyIntent struct {
	// Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
	AddressFormats []AddressFormat `json:"addressFormats"`
	// Cryptographic Curve used to generate a given Private Key.
	Curve Curve `json:"curve"`
	// Bundle containing a raw private key encrypted to the enclave's target public key.
	EncryptedBundle string `json:"encryptedBundle"`
	// Human-readable name for a Private Key.
	PrivateKeyName string `json:"privateKeyName"`
	// The ID of the User importing a Private Key.
	UserID string `json:"userId"`
}

type ImportPrivateKeyRequest

type ImportPrivateKeyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
	AddressFormats []AddressFormat `json:"addressFormats"`
	// Cryptographic Curve used to generate a given Private Key.
	Curve Curve `json:"curve"`
	// Bundle containing a raw private key encrypted to the enclave's target public key.
	EncryptedBundle string `json:"encryptedBundle"`
	// Human-readable name for a Private Key.
	PrivateKeyName string `json:"privateKeyName"`
	// The ID of the User importing a Private Key.
	UserID string `json:"userId"`
}

func (ImportPrivateKeyRequest) ActivityType

func (ImportPrivateKeyRequest) ActivityType() string

type ImportPrivateKeyResponse

type ImportPrivateKeyResponse struct {
	Activity Activity `json:"activity"`
	ImportPrivateKeyResult
}

type ImportPrivateKeyResult

type ImportPrivateKeyResult struct {
	// A list of addresses.
	Addresses []Immutableactivityv1Address `json:"addresses"`
	// Unique identifier for a Private Key.
	PrivateKeyID string `json:"privateKeyId"`
}

type ImportWalletIntent

type ImportWalletIntent struct {
	// A list of wallet Accounts.
	Accounts []WalletAccountParams `json:"accounts"`
	// Bundle containing a wallet mnemonic encrypted to the enclave's target public key.
	EncryptedBundle string `json:"encryptedBundle"`
	// The ID of the User importing a Wallet.
	UserID string `json:"userId"`
	// Human-readable name for a Wallet.
	WalletName string `json:"walletName"`
}

type ImportWalletRequest

type ImportWalletRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of wallet Accounts.
	Accounts []WalletAccountParams `json:"accounts"`
	// Bundle containing a wallet mnemonic encrypted to the enclave's target public key.
	EncryptedBundle string `json:"encryptedBundle"`
	// The ID of the User importing a Wallet.
	UserID string `json:"userId"`
	// Human-readable name for a Wallet.
	WalletName string `json:"walletName"`
}

func (ImportWalletRequest) ActivityType

func (ImportWalletRequest) ActivityType() string

type ImportWalletResponse

type ImportWalletResponse struct {
	Activity Activity `json:"activity"`
	ImportWalletResult
}

type ImportWalletResult

type ImportWalletResult struct {
	// A list of account addresses.
	Addresses []string `json:"addresses"`
	// Unique identifier for a Wallet.
	WalletID string `json:"walletId"`
}

type InitFiatOnRampIntent

type InitFiatOnRampIntent struct {
	// ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.
	CountryCode *string `json:"countryCode,omitempty"`
	// ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country_code=US.
	CountrySubdivisionCode *string `json:"countrySubdivisionCode,omitempty"`
	// Code for the cryptocurrency to be purchased, e.g., btc, eth. Maps to MoonPay's currencyCode or Coinbase's defaultAsset.
	CryptoCurrencyCode FiatOnRampCryptoCurrency `json:"cryptoCurrencyCode"`
	// Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.
	FiatCurrencyAmount *string `json:"fiatCurrencyAmount,omitempty"`
	// Code for the fiat currency to be used in the transaction, e.g., USD, EUR.
	FiatCurrencyCode *FiatOnRampCurrency `json:"fiatCurrencyCode,omitempty"`
	// Blockchain network to be used for the transaction, e.g., bitcoin, ethereum. Maps to MoonPay's network or Coinbase's defaultNetwork.
	Network FiatOnRampBlockchainNetwork `json:"network"`
	// Enum to specify which on-ramp provider to use
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Pre-selected payment method, e.g., CREDIT_DEBIT_CARD, APPLE_PAY. Validated against the chosen provider.
	PaymentMethod *FiatOnRampPaymentMethod `json:"paymentMethod,omitempty"`
	// Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.
	SandboxMode *bool `json:"sandboxMode,omitempty"`
	// Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.
	URLForSignature *string `json:"urlForSignature,omitempty"`
	// Destination wallet address for the buy transaction.
	WalletAddress string `json:"walletAddress"`
}

type InitFiatOnRampRequest

type InitFiatOnRampRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.
	CountryCode *string `json:"countryCode,omitempty"`
	// ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country_code=US.
	CountrySubdivisionCode *string `json:"countrySubdivisionCode,omitempty"`
	// Code for the cryptocurrency to be purchased, e.g., btc, eth. Maps to MoonPay's currencyCode or Coinbase's defaultAsset.
	CryptoCurrencyCode FiatOnRampCryptoCurrency `json:"cryptoCurrencyCode"`
	// Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.
	FiatCurrencyAmount *string `json:"fiatCurrencyAmount,omitempty"`
	// Code for the fiat currency to be used in the transaction, e.g., USD, EUR.
	FiatCurrencyCode *FiatOnRampCurrency `json:"fiatCurrencyCode,omitempty"`
	// Blockchain network to be used for the transaction, e.g., bitcoin, ethereum. Maps to MoonPay's network or Coinbase's defaultNetwork.
	Network FiatOnRampBlockchainNetwork `json:"network"`
	// Enum to specify which on-ramp provider to use
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Pre-selected payment method, e.g., CREDIT_DEBIT_CARD, APPLE_PAY. Validated against the chosen provider.
	PaymentMethod *FiatOnRampPaymentMethod `json:"paymentMethod,omitempty"`
	// Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.
	SandboxMode *bool `json:"sandboxMode,omitempty"`
	// Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.
	URLForSignature *string `json:"urlForSignature,omitempty"`
	// Destination wallet address for the buy transaction.
	WalletAddress string `json:"walletAddress"`
}

func (InitFiatOnRampRequest) ActivityType

func (InitFiatOnRampRequest) ActivityType() string

type InitFiatOnRampResponse

type InitFiatOnRampResponse struct {
	Activity Activity `json:"activity"`
	InitFiatOnRampResult
}

type InitFiatOnRampResult

type InitFiatOnRampResult struct {
	// Unique identifier used to retrieve transaction statuses for a given fiat on-ramp flow.
	OnRampTransactionID string `json:"onRampTransactionId"`
	// Unique URL for a given fiat on-ramp flow.
	OnRampURL string `json:"onRampUrl"`
	// Optional signature of the MoonPay Widget URL. The signature is generated if the Init Fiat On Ramp intent includes the urlForSignature field. The signature can be used to initialize the MoonPay SDKs when URL signing is enabled for your project.
	OnRampURLSignature *string `json:"onRampUrlSignature,omitempty"`
}

type InitImportPrivateKeyIntent

type InitImportPrivateKeyIntent struct {
	// The ID of the User importing a Private Key.
	UserID string `json:"userId"`
}

type InitImportPrivateKeyRequest

type InitImportPrivateKeyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The ID of the User importing a Private Key.
	UserID string `json:"userId"`
}

func (InitImportPrivateKeyRequest) ActivityType

func (InitImportPrivateKeyRequest) ActivityType() string

type InitImportPrivateKeyResponse

type InitImportPrivateKeyResponse struct {
	Activity Activity `json:"activity"`
	InitImportPrivateKeyResult
}

type InitImportPrivateKeyResult

type InitImportPrivateKeyResult struct {
	// Import bundle containing a public key and signature to use for importing client data.
	ImportBundle string `json:"importBundle"`
}

type InitImportWalletIntent

type InitImportWalletIntent struct {
	// The ID of the User importing a Wallet.
	UserID string `json:"userId"`
}

type InitImportWalletRequest

type InitImportWalletRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The ID of the User importing a Wallet.
	UserID string `json:"userId"`
}

func (InitImportWalletRequest) ActivityType

func (InitImportWalletRequest) ActivityType() string

type InitImportWalletResponse

type InitImportWalletResponse struct {
	Activity Activity `json:"activity"`
	InitImportWalletResult
}

type InitImportWalletResult

type InitImportWalletResult struct {
	// Import bundle containing a public key and signature to use for importing client data.
	ImportBundle string `json:"importBundle"`
}

type InitOTPAuthIntent

type InitOTPAuthIntent struct {
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Enum to specify whether to send OTP via SMS or email
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default sms message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

type InitOTPAuthIntentV2

type InitOTPAuthIntentV2 struct {
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Enum to specify whether to send OTP via SMS or email
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default SMS message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

type InitOTPAuthIntentV3

type InitOTPAuthIntentV3 struct {
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// The name of the application. This field is required and will be used in email notifications if an email template is not provided.
	AppName string `json:"appName"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParamsV2 `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default SMS message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

type InitOTPAuthRequest

type InitOTPAuthRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// The name of the application. This field is required and will be used in email notifications if an email template is not provided.
	AppName string `json:"appName"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParamsV2 `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default SMS message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

func (InitOTPAuthRequest) ActivityType

func (InitOTPAuthRequest) ActivityType() string

type InitOTPAuthResponse

type InitOTPAuthResponse struct {
	Activity Activity `json:"activity"`
	InitOTPAuthResultV2
}

type InitOTPAuthResult

type InitOTPAuthResult struct {
	// Unique identifier for an OTP authentication
	OTPID string `json:"otpId"`
}

type InitOTPAuthResultV2

type InitOTPAuthResultV2 struct {
	// Unique identifier for an OTP authentication
	OTPID string `json:"otpId"`
}

type InitOTPIntent

type InitOTPIntent struct {
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default sms message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

type InitOTPIntentV2

type InitOTPIntentV2 struct {
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// The name of the application. This field is required and will be used in email notifications if an email template is not provided.
	AppName string `json:"appName"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParamsV2 `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default SMS message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

type InitOTPIntentV3

type InitOTPIntentV3 struct {
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). If set to false, OTP code will only be numeric. Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// The name of the application.
	AppName string `json:"appName"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParamsV2 `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default sms message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

type InitOTPRequest

type InitOTPRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). If set to false, OTP code will only be numeric. Default = true
	Alphanumeric *bool `json:"alphanumeric,omitempty"`
	// The name of the application.
	AppName string `json:"appName"`
	// Email or phone number to send the OTP code to
	Contact string `json:"contact"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParamsV2 `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional length of the OTP code. Default = 9
	OTPLength *int `json:"otpLength,omitempty"`
	// Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL
	OTPType string `json:"otpType"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Optional parameters for customizing SMS message. If not provided, the default sms message will be used.
	SmsCustomization *SmsCustomizationParams `json:"smsCustomization,omitempty"`
	// Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
	UserIdentifier *string `json:"userIdentifier,omitempty"`
}

func (InitOTPRequest) ActivityType

func (InitOTPRequest) ActivityType() string

type InitOTPResponse

type InitOTPResponse struct {
	Activity Activity `json:"activity"`
	InitOTPResultV2
}

type InitOTPResult

type InitOTPResult struct {
	// Unique identifier for an OTP authentication
	OTPID string `json:"otpId"`
}

type InitOTPResultV2

type InitOTPResultV2 struct {
	// Signed bundle containing a target encryption key to use when submitting OTP codes.
	OTPEncryptionTargetBundle string `json:"otpEncryptionTargetBundle"`
	// Unique identifier for an OTP flow
	OTPID string `json:"otpId"`
}

type InitUserEmailRecoveryIntent

type InitUserEmailRecoveryIntent struct {
	// Email of the user starting recovery
	Email string `json:"email"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomization *EmailCustomizationParams `json:"emailCustomization,omitempty"`
	// Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the recovery bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type InitUserEmailRecoveryIntentV2

type InitUserEmailRecoveryIntentV2 struct {
	// Email of the user starting recovery
	Email string `json:"email"`
	// Parameters for customizing emails. If not provided, the default email will be used. Note that `app_name` is required.
	EmailCustomization EmailAuthCustomizationParams `json:"emailCustomization"`
	// Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the recovery bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type InitUserEmailRecoveryRequest

type InitUserEmailRecoveryRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Email of the user starting recovery
	Email string `json:"email"`
	// Parameters for customizing emails. If not provided, the default email will be used. Note that `app_name` is required.
	EmailCustomization EmailAuthCustomizationParams `json:"emailCustomization"`
	// Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional custom email address to use as reply-to
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Optional custom email address from which to send the OTP email
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Client-side public key generated by the user, to which the recovery bundle will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

func (InitUserEmailRecoveryRequest) ActivityType

func (InitUserEmailRecoveryRequest) ActivityType() string

type InitUserEmailRecoveryResponse

type InitUserEmailRecoveryResponse struct {
	Activity Activity `json:"activity"`
	InitUserEmailRecoveryResult
}

type InitUserEmailRecoveryResult

type InitUserEmailRecoveryResult struct {
	// Unique identifier for the user being recovered.
	UserID string `json:"userId"`
}

type Intent

type Intent struct {
	AcceptInvitationIntent             *AcceptInvitationIntent             `json:"acceptInvitationIntent,omitempty"`
	AcceptInvitationIntentV2           *AcceptInvitationIntentV2           `json:"acceptInvitationIntentV2,omitempty"`
	ActivateBillingTierIntent          *BillingActivateBillingTierIntent   `json:"activateBillingTierIntent,omitempty"`
	ApproveActivityIntent              *ApproveActivityIntent              `json:"approveActivityIntent,omitempty"`
	CreateAPIKeysIntent                *CreateAPIKeysIntent                `json:"createApiKeysIntent,omitempty"`
	CreateAPIKeysIntentV2              *CreateAPIKeysIntentV2              `json:"createApiKeysIntentV2,omitempty"`
	CreateAPIOnlyUsersIntent           *CreateAPIOnlyUsersIntent           `json:"createApiOnlyUsersIntent,omitempty"`
	CreateAuthenticatorsIntent         *CreateAuthenticatorsIntent         `json:"createAuthenticatorsIntent,omitempty"`
	CreateAuthenticatorsIntentV2       *CreateAuthenticatorsIntentV2       `json:"createAuthenticatorsIntentV2,omitempty"`
	CreateFiatOnRampCredentialIntent   *CreateFiatOnRampCredentialIntent   `json:"createFiatOnRampCredentialIntent,omitempty"`
	CreateInvitationsIntent            *CreateInvitationsIntent            `json:"createInvitationsIntent,omitempty"`
	CreateMfaPolicyIntent              *CreateMfaPolicyIntent              `json:"createMfaPolicyIntent,omitempty"`
	CreateOAuth2CredentialIntent       *CreateOAuth2CredentialIntent       `json:"createOauth2CredentialIntent,omitempty"`
	CreateOAuthProvidersIntent         *CreateOAuthProvidersIntent         `json:"createOauthProvidersIntent,omitempty"`
	CreateOAuthProvidersIntentV2       *CreateOAuthProvidersIntentV2       `json:"createOauthProvidersIntentV2,omitempty"`
	CreateOrganizationIntent           *CreateOrganizationIntent           `json:"createOrganizationIntent,omitempty"`
	CreateOrganizationIntentV2         *CreateOrganizationIntentV2         `json:"createOrganizationIntentV2,omitempty"`
	CreatePoliciesIntent               *CreatePoliciesIntent               `json:"createPoliciesIntent,omitempty"`
	CreatePolicyIntent                 *CreatePolicyIntent                 `json:"createPolicyIntent,omitempty"`
	CreatePolicyIntentV2               *CreatePolicyIntentV2               `json:"createPolicyIntentV2,omitempty"`
	CreatePolicyIntentV3               *CreatePolicyIntentV3               `json:"createPolicyIntentV3,omitempty"`
	CreatePrivateKeyTagIntent          *CreatePrivateKeyTagIntent          `json:"createPrivateKeyTagIntent,omitempty"`
	CreatePrivateKeysIntent            *CreatePrivateKeysIntent            `json:"createPrivateKeysIntent,omitempty"`
	CreatePrivateKeysIntentV2          *CreatePrivateKeysIntentV2          `json:"createPrivateKeysIntentV2,omitempty"`
	CreateReadOnlySessionIntent        *CreateReadOnlySessionIntent        `json:"createReadOnlySessionIntent,omitempty"`
	CreateReadWriteSessionIntent       *CreateReadWriteSessionIntent       `json:"createReadWriteSessionIntent,omitempty"`
	CreateReadWriteSessionIntentV2     *CreateReadWriteSessionIntentV2     `json:"createReadWriteSessionIntentV2,omitempty"`
	CreateSessionProfileIntent         *CreateSessionProfileIntent         `json:"createSessionProfileIntent,omitempty"`
	CreateSmartContractInterfaceIntent *CreateSmartContractInterfaceIntent `json:"createSmartContractInterfaceIntent,omitempty"`
	CreateSubOrganizationIntent        *CreateSubOrganizationIntent        `json:"createSubOrganizationIntent,omitempty"`
	CreateSubOrganizationIntentV2      *CreateSubOrganizationIntentV2      `json:"createSubOrganizationIntentV2,omitempty"`
	CreateSubOrganizationIntentV3      *CreateSubOrganizationIntentV3      `json:"createSubOrganizationIntentV3,omitempty"`
	CreateSubOrganizationIntentV4      *CreateSubOrganizationIntentV4      `json:"createSubOrganizationIntentV4,omitempty"`
	CreateSubOrganizationIntentV5      *CreateSubOrganizationIntentV5      `json:"createSubOrganizationIntentV5,omitempty"`
	CreateSubOrganizationIntentV6      *CreateSubOrganizationIntentV6      `json:"createSubOrganizationIntentV6,omitempty"`
	CreateSubOrganizationIntentV7      *CreateSubOrganizationIntentV7      `json:"createSubOrganizationIntentV7,omitempty"`
	CreateSubOrganizationIntentV8      *CreateSubOrganizationIntentV8      `json:"createSubOrganizationIntentV8,omitempty"`
	CreateTVCAppIntent                 *CreateTVCAppIntent                 `json:"createTvcAppIntent,omitempty"`
	CreateTVCDeploymentIntent          *CreateTVCDeploymentIntent          `json:"createTvcDeploymentIntent,omitempty"`
	CreateTVCManifestApprovalsIntent   *CreateTVCManifestApprovalsIntent   `json:"createTvcManifestApprovalsIntent,omitempty"`
	CreateTVCOperatorIntent            *CreateTVCOperatorIntent            `json:"createTvcOperatorIntent,omitempty"`
	CreateTVCQuorumKeyIntent           *CreateTVCQuorumKeyIntent           `json:"createTvcQuorumKeyIntent,omitempty"`
	CreateUserTagIntent                *CreateUserTagIntent                `json:"createUserTagIntent,omitempty"`
	CreateUsersIntent                  *CreateUsersIntent                  `json:"createUsersIntent,omitempty"`
	CreateUsersIntentV2                *CreateUsersIntentV2                `json:"createUsersIntentV2,omitempty"`
	CreateUsersIntentV3                *CreateUsersIntentV3                `json:"createUsersIntentV3,omitempty"`
	CreateUsersIntentV4                *CreateUsersIntentV4                `json:"createUsersIntentV4,omitempty"`
	CreateWalletAccountsIntent         *CreateWalletAccountsIntent         `json:"createWalletAccountsIntent,omitempty"`
	CreateWalletIntent                 *CreateWalletIntent                 `json:"createWalletIntent,omitempty"`
	CreateWebhookEndpointIntent        *CreateWebhookEndpointIntent        `json:"createWebhookEndpointIntent,omitempty"`
	DeleteAPIKeysIntent                *DeleteAPIKeysIntent                `json:"deleteApiKeysIntent,omitempty"`
	DeleteAuthenticatorsIntent         *DeleteAuthenticatorsIntent         `json:"deleteAuthenticatorsIntent,omitempty"`
	DeleteFiatOnRampCredentialIntent   *DeleteFiatOnRampCredentialIntent   `json:"deleteFiatOnRampCredentialIntent,omitempty"`
	DeleteInvitationIntent             *DeleteInvitationIntent             `json:"deleteInvitationIntent,omitempty"`
	DeleteMfaPolicyIntent              *DeleteMfaPolicyIntent              `json:"deleteMfaPolicyIntent,omitempty"`
	DeleteOAuth2CredentialIntent       *DeleteOAuth2CredentialIntent       `json:"deleteOauth2CredentialIntent,omitempty"`
	DeleteOAuthProvidersIntent         *DeleteOAuthProvidersIntent         `json:"deleteOauthProvidersIntent,omitempty"`
	DeleteOrganizationIntent           *DeleteOrganizationIntent           `json:"deleteOrganizationIntent,omitempty"`
	DeletePaymentMethodIntent          *BillingDeletePaymentMethodIntent   `json:"deletePaymentMethodIntent,omitempty"`
	DeletePoliciesIntent               *DeletePoliciesIntent               `json:"deletePoliciesIntent,omitempty"`
	DeletePolicyIntent                 *DeletePolicyIntent                 `json:"deletePolicyIntent,omitempty"`
	DeletePrivateKeyTagsIntent         *DeletePrivateKeyTagsIntent         `json:"deletePrivateKeyTagsIntent,omitempty"`
	DeletePrivateKeysIntent            *DeletePrivateKeysIntent            `json:"deletePrivateKeysIntent,omitempty"`
	DeleteSmartContractInterfaceIntent *DeleteSmartContractInterfaceIntent `json:"deleteSmartContractInterfaceIntent,omitempty"`
	DeleteSubOrganizationIntent        *DeleteSubOrganizationIntent        `json:"deleteSubOrganizationIntent,omitempty"`
	DeleteTVCAppAndDeploymentsIntent   *DeleteTVCAppAndDeploymentsIntent   `json:"deleteTvcAppAndDeploymentsIntent,omitempty"`
	DeleteTVCDeploymentIntent          *DeleteTVCDeploymentIntent          `json:"deleteTvcDeploymentIntent,omitempty"`
	DeleteUserTagsIntent               *DeleteUserTagsIntent               `json:"deleteUserTagsIntent,omitempty"`
	DeleteUsersIntent                  *DeleteUsersIntent                  `json:"deleteUsersIntent,omitempty"`
	DeleteWalletAccountsIntent         *DeleteWalletAccountsIntent         `json:"deleteWalletAccountsIntent,omitempty"`
	DeleteWalletsIntent                *DeleteWalletsIntent                `json:"deleteWalletsIntent,omitempty"`
	DeleteWebhookEndpointIntent        *DeleteWebhookEndpointIntent        `json:"deleteWebhookEndpointIntent,omitempty"`
	DisableAuthProxyIntent             *DisableAuthProxyIntent             `json:"disableAuthProxyIntent,omitempty"`
	DisablePrivateKeyIntent            *DisablePrivateKeyIntent            `json:"disablePrivateKeyIntent,omitempty"`
	EarnDeployWrapperIntent            *EarnDeployWrapperIntent            `json:"earnDeployWrapperIntent,omitempty"`
	EarnDepositIntent                  *EarnDepositIntent                  `json:"earnDepositIntent,omitempty"`
	EarnWithdrawIntent                 *EarnWithdrawIntent                 `json:"earnWithdrawIntent,omitempty"`
	EmailAuthIntent                    *EmailAuthIntent                    `json:"emailAuthIntent,omitempty"`
	EmailAuthIntentV2                  *EmailAuthIntentV2                  `json:"emailAuthIntentV2,omitempty"`
	EmailAuthIntentV3                  *EmailAuthIntentV3                  `json:"emailAuthIntentV3,omitempty"`
	EnableAuthProxyIntent              *EnableAuthProxyIntent              `json:"enableAuthProxyIntent,omitempty"`
	ETHSendRawTransactionIntent        *ETHSendRawTransactionIntent        `json:"ethSendRawTransactionIntent,omitempty"`
	ETHSendTransactionIntent           *ETHSendTransactionIntent           `json:"ethSendTransactionIntent,omitempty"`
	ETHSendTransactionIntentV2         *ETHSendTransactionIntentV2         `json:"ethSendTransactionIntentV2,omitempty"`
	ExecuteSwapIntent                  *ExecuteSwapIntent                  `json:"executeSwapIntent,omitempty"`
	ExportPrivateKeyIntent             *ExportPrivateKeyIntent             `json:"exportPrivateKeyIntent,omitempty"`
	ExportWalletAccountIntent          *ExportWalletAccountIntent          `json:"exportWalletAccountIntent,omitempty"`
	ExportWalletIntent                 *ExportWalletIntent                 `json:"exportWalletIntent,omitempty"`
	ImportPrivateKeyIntent             *ImportPrivateKeyIntent             `json:"importPrivateKeyIntent,omitempty"`
	ImportWalletIntent                 *ImportWalletIntent                 `json:"importWalletIntent,omitempty"`
	InitFiatOnRampIntent               *InitFiatOnRampIntent               `json:"initFiatOnRampIntent,omitempty"`
	InitImportPrivateKeyIntent         *InitImportPrivateKeyIntent         `json:"initImportPrivateKeyIntent,omitempty"`
	InitImportWalletIntent             *InitImportWalletIntent             `json:"initImportWalletIntent,omitempty"`
	InitOTPAuthIntent                  *InitOTPAuthIntent                  `json:"initOtpAuthIntent,omitempty"`
	InitOTPAuthIntentV2                *InitOTPAuthIntentV2                `json:"initOtpAuthIntentV2,omitempty"`
	InitOTPAuthIntentV3                *InitOTPAuthIntentV3                `json:"initOtpAuthIntentV3,omitempty"`
	InitOTPIntent                      *InitOTPIntent                      `json:"initOtpIntent,omitempty"`
	InitOTPIntentV2                    *InitOTPIntentV2                    `json:"initOtpIntentV2,omitempty"`
	InitOTPIntentV3                    *InitOTPIntentV3                    `json:"initOtpIntentV3,omitempty"`
	InitUserEmailRecoveryIntent        *InitUserEmailRecoveryIntent        `json:"initUserEmailRecoveryIntent,omitempty"`
	InitUserEmailRecoveryIntentV2      *InitUserEmailRecoveryIntentV2      `json:"initUserEmailRecoveryIntentV2,omitempty"`
	OAuth2AuthenticateIntent           *OAuth2AuthenticateIntent           `json:"oauth2AuthenticateIntent,omitempty"`
	OAuthIntent                        *OAuthIntent                        `json:"oauthIntent,omitempty"`
	OAuthLoginIntent                   *OAuthLoginIntent                   `json:"oauthLoginIntent,omitempty"`
	OTPAuthIntent                      *OTPAuthIntent                      `json:"otpAuthIntent,omitempty"`
	OTPLoginIntent                     *OTPLoginIntent                     `json:"otpLoginIntent,omitempty"`
	OTPLoginIntentV2                   *OTPLoginIntentV2                   `json:"otpLoginIntentV2,omitempty"`
	PostTVCQuorumKeyShareIntent        *PostTVCQuorumKeyShareIntent        `json:"postTvcQuorumKeyShareIntent,omitempty"`
	ReEncryptTVCQuorumKeyShareIntent   *ReEncryptTVCQuorumKeyShareIntent   `json:"reEncryptTvcQuorumKeyShareIntent,omitempty"`
	RecoverUserIntent                  *RecoverUserIntent                  `json:"recoverUserIntent,omitempty"`
	RejectActivityIntent               *RejectActivityIntent               `json:"rejectActivityIntent,omitempty"`
	RemoveIPAllowlistIntent            *RemoveIPAllowlistIntent            `json:"removeIpAllowlistIntent,omitempty"`
	RemoveOrganizationFeatureIntent    *RemoveOrganizationFeatureIntent    `json:"removeOrganizationFeatureIntent,omitempty"`
	RestoreTVCDeploymentIntent         *RestoreTVCDeploymentIntent         `json:"restoreTvcDeploymentIntent,omitempty"`
	SetIPAllowlistIntent               *SetIPAllowlistIntent               `json:"setIpAllowlistIntent,omitempty"`
	SetOrganizationFeatureIntent       *SetOrganizationFeatureIntent       `json:"setOrganizationFeatureIntent,omitempty"`
	SetPaymentMethodIntent             *BillingSetPaymentMethodIntent      `json:"setPaymentMethodIntent,omitempty"`
	SetPaymentMethodIntentV2           *BillingSetPaymentMethodIntentV2    `json:"setPaymentMethodIntentV2,omitempty"`
	SignRawPayloadIntent               *SignRawPayloadIntent               `json:"signRawPayloadIntent,omitempty"`
	SignRawPayloadIntentV2             *SignRawPayloadIntentV2             `json:"signRawPayloadIntentV2,omitempty"`
	SignRawPayloadsIntent              *SignRawPayloadsIntent              `json:"signRawPayloadsIntent,omitempty"`
	SignTransactionIntent              *SignTransactionIntent              `json:"signTransactionIntent,omitempty"`
	SignTransactionIntentV2            *SignTransactionIntentV2            `json:"signTransactionIntentV2,omitempty"`
	SolSendTransactionIntent           *SolSendTransactionIntent           `json:"solSendTransactionIntent,omitempty"`
	SparkClaimTransferIntent           *SparkClaimTransferIntent           `json:"sparkClaimTransferIntent,omitempty"`
	SparkPrepareLightningReceiveIntent *SparkPrepareLightningReceiveIntent `json:"sparkPrepareLightningReceiveIntent,omitempty"`
	SparkPrepareTransferIntent         *SparkPrepareTransferIntent         `json:"sparkPrepareTransferIntent,omitempty"`
	SparkSignFrostIntent               *SparkSignFrostIntent               `json:"sparkSignFrostIntent,omitempty"`
	StampLoginIntent                   *StampLoginIntent                   `json:"stampLoginIntent,omitempty"`
	UpdateAllowedOriginsIntent         *UpdateAllowedOriginsIntent         `json:"updateAllowedOriginsIntent,omitempty"`
	UpdateAuthProxyConfigIntent        *UpdateAuthProxyConfigIntent        `json:"updateAuthProxyConfigIntent,omitempty"`
	UpdateFiatOnRampCredentialIntent   *UpdateFiatOnRampCredentialIntent   `json:"updateFiatOnRampCredentialIntent,omitempty"`
	UpdateMfaPolicyIntent              *UpdateMfaPolicyIntent              `json:"updateMfaPolicyIntent,omitempty"`
	UpdateOAuth2CredentialIntent       *UpdateOAuth2CredentialIntent       `json:"updateOauth2CredentialIntent,omitempty"`
	UpdateOrganizationNameIntent       *UpdateOrganizationNameIntent       `json:"updateOrganizationNameIntent,omitempty"`
	UpdatePolicyIntent                 *UpdatePolicyIntent                 `json:"updatePolicyIntent,omitempty"`
	UpdatePolicyIntentV2               *UpdatePolicyIntentV2               `json:"updatePolicyIntentV2,omitempty"`
	UpdatePrivateKeyTagIntent          *UpdatePrivateKeyTagIntent          `json:"updatePrivateKeyTagIntent,omitempty"`
	UpdateRootQuorumIntent             *UpdateRootQuorumIntent             `json:"updateRootQuorumIntent,omitempty"`
	UpdateTVCAppLiveDeploymentIntent   *UpdateTVCAppLiveDeploymentIntent   `json:"updateTvcAppLiveDeploymentIntent,omitempty"`
	UpdateUserEmailIntent              *UpdateUserEmailIntent              `json:"updateUserEmailIntent,omitempty"`
	UpdateUserIntent                   *UpdateUserIntent                   `json:"updateUserIntent,omitempty"`
	UpdateUserNameIntent               *UpdateUserNameIntent               `json:"updateUserNameIntent,omitempty"`
	UpdateUserPhoneNumberIntent        *UpdateUserPhoneNumberIntent        `json:"updateUserPhoneNumberIntent,omitempty"`
	UpdateUserTagIntent                *UpdateUserTagIntent                `json:"updateUserTagIntent,omitempty"`
	UpdateWalletIntent                 *UpdateWalletIntent                 `json:"updateWalletIntent,omitempty"`
	UpdateWebhookEndpointIntent        *UpdateWebhookEndpointIntent        `json:"updateWebhookEndpointIntent,omitempty"`
	UpsertEarnClientFeeConfigIntent    *UpsertEarnClientFeeConfigIntent    `json:"upsertEarnClientFeeConfigIntent,omitempty"`
	UpsertGasUsageConfigIntent         *UpsertGasUsageConfigIntent         `json:"upsertGasUsageConfigIntent,omitempty"`
	UpsertSwapConfigIntent             *UpsertSwapConfigIntent             `json:"upsertSwapConfigIntent,omitempty"`
	VerifyOTPIntent                    *VerifyOTPIntent                    `json:"verifyOtpIntent,omitempty"`
	VerifyOTPIntentV2                  *VerifyOTPIntentV2                  `json:"verifyOtpIntentV2,omitempty"`
}

type InvitationParams

type InvitationParams struct {
	// The User's permissible access method(s).
	AccessType AccessType `json:"accessType"`
	// The email address of the intended Invitation recipient.
	ReceiverUserEmail string `json:"receiverUserEmail"`
	// The name of the intended Invitation recipient.
	ReceiverUserName string `json:"receiverUserName"`
	// A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body.
	ReceiverUserTags []string `json:"receiverUserTags"`
	// Unique identifier for the Sender of an Invitation.
	SenderUserID string `json:"senderUserId"`
}

type ListEmailEventsRequest

type ListEmailEventsRequest struct {
	// Recipient email address to list email events for
	Email string `json:"email"`
	// Optional email event type to filter by. Examples include Send, Delivery, Bounce, and DeliveryDelay
	EventType *string `json:"eventType,omitempty"`
	// Unique identifier for a given organization
	OrganizationID string `json:"organizationId"`
	// Parameters used for cursor-based pagination
	PaginationOptions *Pagination `json:"paginationOptions,omitempty"`
}

type ListEmailEventsResponse

type ListEmailEventsResponse struct {
	// Email events matching the requested filters, ordered by most recent event first.
	EmailEvents []EmailEvent `json:"emailEvents"`
}

type ListFiatOnRampCredentialsRequest

type ListFiatOnRampCredentialsRequest struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type ListFiatOnRampCredentialsResponse

type ListFiatOnRampCredentialsResponse struct {
	FiatOnRampCredentials []FiatOnRampCredential `json:"fiatOnRampCredentials"`
}

type ListOAuth2CredentialsRequest

type ListOAuth2CredentialsRequest struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type ListOAuth2CredentialsResponse

type ListOAuth2CredentialsResponse struct {
	OAuth2Credentials []OAuth2Credential `json:"oauth2Credentials"`
}

type ListPrivateKeyTagsRequest

type ListPrivateKeyTagsRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type ListPrivateKeyTagsResponse

type ListPrivateKeyTagsResponse struct {
	// A list of private key tags.
	PrivateKeyTags []DataV1Tag `json:"privateKeyTags"`
}

type ListSupportedAssetsRequest

type ListSupportedAssetsRequest struct {
	// CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet or 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values.
	Caip2 string `json:"caip2"`
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type ListSupportedAssetsResponse

type ListSupportedAssetsResponse struct {
	// List of asset metadata
	Assets []AssetMetadata `json:"assets,omitempty"`
}

type ListUserTagsRequest

type ListUserTagsRequest struct {
	// Unique identifier for a given organization.
	OrganizationID string `json:"organizationId"`
}

type ListUserTagsResponse

type ListUserTagsResponse struct {
	// A list of user tags.
	UserTags []DataV1Tag `json:"userTags"`
}

type ListWebhookEndpointsRequest

type ListWebhookEndpointsRequest struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
}

type ListWebhookEndpointsResponse

type ListWebhookEndpointsResponse struct {
	WebhookEndpoints []WebhookEndpointData `json:"webhookEndpoints"`
}

type LogLine

type LogLine struct {
	// One log line, exactly as the application printed it (without the trailing newline)
	Content string `json:"content"`
	// When the line was logged. Stable across replays, so lines can be chronologically merged across pods
	Ts *ExternalDataV1Timestamp `json:"ts,omitempty"`
}

type Logger

type Logger interface {
	Printf(format string, v ...interface{})
}

Logger defines a minimal logging interface.

type LoginUsage

type LoginUsage struct {
	// Public key for authentication
	PublicKey string `json:"publicKey"`
}

type MfaPolicy

type MfaPolicy struct {
	// A condition expression that evaluates to true or false, determining when this MFA policy applies.
	Condition string                  `json:"condition"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// Human-readable name for an MFA Policy.
	MfaPolicyName string `json:"mfaPolicyName"`
	// Optional human-readable notes added by a User to describe a particular MFA policy.
	Notes *string `json:"notes,omitempty"`
	// The order in which this policy is evaluated relative to other MFA policies.
	Order int64 `json:"order"`
	// An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA.
	RequiredAuthenticationMethods []RequiredAuthenticationMethod `json:"requiredAuthenticationMethods"`
	UpdatedAt                     ExternalDataV1Timestamp        `json:"updatedAt"`
}

type MfaStatus

type MfaStatus struct {
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// An ordered list of authentication requirements needed to satisfy this MFA policy.
	RequiredMethods []RequiredAuthenticationMethod `json:"requiredMethods"`
	// Whether the MFA policy requirements are currently satisfied.
	Satisfied bool `json:"satisfied"`
	// A list of authentication methods already satisfied for this MFA policy.
	SatisfiedMethods []AuthenticationMethod `json:"satisfiedMethods"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type MnemonicLanguage

type MnemonicLanguage string
const (
	MnemonicLanguageEnglish            MnemonicLanguage = "MNEMONIC_LANGUAGE_ENGLISH"
	MnemonicLanguageSimplifiedChinese  MnemonicLanguage = "MNEMONIC_LANGUAGE_SIMPLIFIED_CHINESE"
	MnemonicLanguageTraditionalChinese MnemonicLanguage = "MNEMONIC_LANGUAGE_TRADITIONAL_CHINESE"
	MnemonicLanguageCzech              MnemonicLanguage = "MNEMONIC_LANGUAGE_CZECH"
	MnemonicLanguageFrench             MnemonicLanguage = "MNEMONIC_LANGUAGE_FRENCH"
	MnemonicLanguageItalian            MnemonicLanguage = "MNEMONIC_LANGUAGE_ITALIAN"
	MnemonicLanguageJapanese           MnemonicLanguage = "MNEMONIC_LANGUAGE_JAPANESE"
	MnemonicLanguageKorean             MnemonicLanguage = "MNEMONIC_LANGUAGE_KOREAN"
	MnemonicLanguageSpanish            MnemonicLanguage = "MNEMONIC_LANGUAGE_SPANISH"
)

type NativeRevertError

type NativeRevertError struct {
	// The error message for Error(string) reverts.
	Message *string `json:"message,omitempty"`
	// The type of native error: 'error_string', 'panic', or 'execution_reverted'.
	NativeType *string `json:"nativeType,omitempty"`
	// The panic code for Panic(uint256) reverts.
	PanicCode *string `json:"panicCode,omitempty"`
}

type NoopCodegenAnchorResponse

type NoopCodegenAnchorResponse struct {
	Stamp      WebAuthnStamp `json:"stamp"`
	TokenUsage *TokenUsage   `json:"tokenUsage,omitempty"`
}

type OAuth2AuthenticateIntent

type OAuth2AuthenticateIntent struct {
	// The auth_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
	AuthCode string `json:"authCode"`
	// An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token
	BearerTokenTargetPublicKey *string `json:"bearerTokenTargetPublicKey,omitempty"`
	// The code verifier used by OAuth 2.0 PKCE providers
	CodeVerifier string `json:"codeVerifier"`
	// A nonce value set to sha256(publicKey), used to bind the OIDC token to a specific public key
	Nonce string `json:"nonce"`
	// The OAuth 2.0 credential id whose client_id and client_secret will be used in the OAuth 2.0 flow
	OAuth2CredentialID string `json:"oauth2CredentialId"`
	// The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
	RedirectUri string `json:"redirectUri"`
}

type OAuth2AuthenticateRequest

type OAuth2AuthenticateRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The auth_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
	AuthCode string `json:"authCode"`
	// An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token
	BearerTokenTargetPublicKey *string `json:"bearerTokenTargetPublicKey,omitempty"`
	// The code verifier used by OAuth 2.0 PKCE providers
	CodeVerifier string `json:"codeVerifier"`
	// A nonce value set to sha256(publicKey), used to bind the OIDC token to a specific public key
	Nonce string `json:"nonce"`
	// The OAuth 2.0 credential id whose client_id and client_secret will be used in the OAuth 2.0 flow
	OAuth2CredentialID string `json:"oauth2CredentialId"`
	// The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
	RedirectUri string `json:"redirectUri"`
}

func (OAuth2AuthenticateRequest) ActivityType

func (OAuth2AuthenticateRequest) ActivityType() string

type OAuth2AuthenticateResponse

type OAuth2AuthenticateResponse struct {
	Activity Activity `json:"activity"`
	OAuth2AuthenticateResult
}

type OAuth2AuthenticateResult

type OAuth2AuthenticateResult struct {
	// Base64 encoded OIDC token issued by Turnkey to be used with the LoginWithOAuth activity
	OidcToken string `json:"oidcToken"`
}

type OAuth2Credential

type OAuth2Credential struct {
	// The client id for a given OAuth 2.0 Credential.
	ClientID  string                  `json:"clientId"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// The encrypted client secret for a given OAuth 2.0 Credential encrypted to the TLS Fetcher quorum key.
	EncryptedClientSecret string `json:"encryptedClientSecret"`
	// Unique identifier for a given OAuth 2.0 Credential.
	OAuth2CredentialID string `json:"oauth2CredentialId"`
	// Unique identifier for an Organization.
	OrganizationID string `json:"organizationId"`
	// The provider for a given OAuth 2.0 Credential.
	Provider  OAuth2Provider          `json:"provider"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type OAuth2Provider

type OAuth2Provider string
const (
	OAuth2ProviderOAuth2ProviderX       OAuth2Provider = "OAUTH2_PROVIDER_X"
	OAuth2ProviderOAuth2ProviderDiscord OAuth2Provider = "OAUTH2_PROVIDER_DISCORD"
)

type OAuthIntent

type OAuthIntent struct {
	// Optional human-readable name for an API Key. If none provided, default to Oauth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Oauth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Base64 encoded OIDC token
	OidcToken string `json:"oidcToken"`
	// Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type OAuthLoginIntent

type OAuthLoginIntent struct {
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Base64 encoded OIDC token
	OidcToken string `json:"oidcToken"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
}

type OAuthLoginRequest

type OAuthLoginRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Base64 encoded OIDC token
	OidcToken string `json:"oidcToken"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
}

func (OAuthLoginRequest) ActivityType

func (OAuthLoginRequest) ActivityType() string

type OAuthLoginResponse

type OAuthLoginResponse struct {
	Activity Activity `json:"activity"`
	OAuthLoginResult
}

type OAuthLoginResult

type OAuthLoginResult struct {
	// Signed JWT containing an expiry, public key, session type, user id, and organization id
	Session string `json:"session"`
}

type OAuthProvider

type OAuthProvider struct {
	// Expected audience ('aud' attribute of the signed token) which represents the app ID
	Audience  string                  `json:"audience"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// The issuer of the token, typically a URL indicating the authentication server, e.g https://accounts.google.com
	Issuer string `json:"issuer"`
	// Unique identifier for an OAuth Provider
	ProviderID string `json:"providerId"`
	// Human-readable name to identify a Provider.
	ProviderName string `json:"providerName"`
	// Expected subject ('sub' attribute of the signed token) which represents the user ID
	Subject   string                  `json:"subject"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type OAuthProviderParams

type OAuthProviderParams struct {
	// Base64 encoded OIDC token
	OidcToken string `json:"oidcToken"`
	// Human-readable name to identify a Provider.
	ProviderName string `json:"providerName"`
}

type OAuthProviderParamsV2

type OAuthProviderParamsV2 struct {
	// OIDC claims (iss, sub, aud) to uniquely identify the user
	OidcClaims *OidcClaims `json:"oidcClaims,omitempty"`
	// Base64 encoded OIDC token
	OidcToken *string `json:"oidcToken,omitempty"`
	// Human-readable name to identify a Provider.
	ProviderName string `json:"providerName"`
}

type OAuthRequest

type OAuthRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional human-readable name for an API Key. If none provided, default to Oauth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Oauth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Base64 encoded OIDC token
	OidcToken string `json:"oidcToken"`
	// Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

func (OAuthRequest) ActivityType

func (OAuthRequest) ActivityType() string

type OAuthResponse

type OAuthResponse struct {
	Activity Activity `json:"activity"`
	OAuthResult
}

type OAuthResult

type OAuthResult struct {
	// Unique identifier for the created API key.
	APIKeyID string `json:"apiKeyId"`
	// HPKE encrypted credential bundle
	CredentialBundle string `json:"credentialBundle"`
	// Unique identifier for the authenticating User.
	UserID string `json:"userId"`
}

type OTPAuthIntent

type OTPAuthIntent struct {
	// Optional human-readable name for an API Key. If none provided, default to OTP Auth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated OTP Auth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// OTP sent out to a user's contact (email or SMS)
	OTPCode string `json:"otpCode"`
	// ID representing the result of an init OTP activity.
	OTPID string `json:"otpId"`
	// Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

type OTPAuthRequest

type OTPAuthRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Optional human-readable name for an API Key. If none provided, default to OTP Auth - <Timestamp>
	APIKeyName *string `json:"apiKeyName,omitempty"`
	// Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated OTP Auth API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// OTP sent out to a user's contact (email or SMS)
	OTPCode string `json:"otpCode"`
	// ID representing the result of an init OTP activity.
	OTPID string `json:"otpId"`
	// Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.
	TargetPublicKey string `json:"targetPublicKey"`
}

func (OTPAuthRequest) ActivityType

func (OTPAuthRequest) ActivityType() string

type OTPAuthResponse

type OTPAuthResponse struct {
	Activity Activity `json:"activity"`
	OTPAuthResult
}

type OTPAuthResult

type OTPAuthResult struct {
	// Unique identifier for the created API key.
	APIKeyID *string `json:"apiKeyId,omitempty"`
	// HPKE encrypted credential bundle
	CredentialBundle *string `json:"credentialBundle,omitempty"`
	// Unique identifier for the authenticating User.
	UserID string `json:"userId"`
}

type OTPLoginIntent

type OTPLoginIntent struct {
	// Optional signature proving authorization for this login. The signature is over the verification token ID and the public key. Only required if a public key was provided during the verification step.
	ClientSignature *ClientSignature `json:"clientSignature,omitempty"`
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken string `json:"verificationToken"`
}

type OTPLoginIntentV2

type OTPLoginIntentV2 struct {
	// Required signature proving authorization for this login. The signature is over the verification token ID and the public key. Required for secure OTP login process.
	ClientSignature ClientSignature `json:"clientSignature"`
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login sessions
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, used as the session public key upon successful login
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
	// Signed Verification Token containing a unique id, expiry, verification type, contact
	VerificationToken string `json:"verificationToken"`
}

type OTPLoginRequest

type OTPLoginRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Required signature proving authorization for this login. The signature is over the verification token ID and the public key. Required for secure OTP login process.
	ClientSignature ClientSignature `json:"clientSignature"`
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login sessions
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, used as the session public key upon successful login
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
	// Signed Verification Token containing a unique id, expiry, verification type, contact
	VerificationToken string `json:"verificationToken"`
}

func (OTPLoginRequest) ActivityType

func (OTPLoginRequest) ActivityType() string

type OTPLoginResponse

type OTPLoginResponse struct {
	Activity Activity `json:"activity"`
	OTPLoginResult
}

type OTPLoginResult

type OTPLoginResult struct {
	// Signed JWT containing an expiry, public key, session type, user id, and organization id
	Session string `json:"session"`
}

type OidcClaims

type OidcClaims struct {
	// The audience from the OIDC token (aud claim)
	Aud string `json:"aud"`
	// The issuer identifier from the OIDC token (iss claim)
	Iss string `json:"iss"`
	// The subject identifier from the OIDC token (sub claim)
	Sub string `json:"sub"`
}

type Operator

type Operator string
const (
	OperatorEqual           Operator = "OPERATOR_EQUAL"
	OperatorMoreThan        Operator = "OPERATOR_MORE_THAN"
	OperatorMoreThanOrEqual Operator = "OPERATOR_MORE_THAN_OR_EQUAL"
	OperatorLessThan        Operator = "OPERATOR_LESS_THAN"
	OperatorLessThanOrEqual Operator = "OPERATOR_LESS_THAN_OR_EQUAL"
	OperatorContains        Operator = "OPERATOR_CONTAINS"
	OperatorNotEqual        Operator = "OPERATOR_NOT_EQUAL"
	OperatorIn              Operator = "OPERATOR_IN"
	OperatorNotIn           Operator = "OPERATOR_NOT_IN"
	OperatorContainsOne     Operator = "OPERATOR_CONTAINS_ONE"
	OperatorContainsAll     Operator = "OPERATOR_CONTAINS_ALL"
)

type OptionFunc

type OptionFunc func(c *config) error

OptionFunc defines a function which sets configuration options for a Client.

func WithActivityPollInterval

func WithActivityPollInterval(interval time.Duration) OptionFunc

WithActivityPollInterval sets the activity polling interval.

func WithActivityPollTimeout

func WithActivityPollTimeout(timeout time.Duration) OptionFunc

WithActivityPollTimeout sets the activity polling timeout.

func WithAuthProxyBaseURL

func WithAuthProxyBaseURL(baseURL string) OptionFunc

WithAuthProxyBaseURL overrides the Turnkey Auth Proxy base URL.

func WithAuthProxyConfigID

func WithAuthProxyConfigID(configID string) OptionFunc

WithAuthProxyConfigID sets the Auth Proxy config ID header value.

func WithBaseURL

func WithBaseURL(baseURL string) OptionFunc

WithBaseURL overrides the Turnkey API base URL.

func WithConsensusPolling

func WithConsensusPolling(interval, timeout time.Duration) OptionFunc

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) OptionFunc

WithHTTPClient sets the HTTP client used by the SDK.

func WithHTTPRetries

func WithHTTPRetries(n int) OptionFunc

WithHTTPRetries sets the number of retries for transient HTTP errors (5xx, network failures).

func WithHTTPRetryDelay

func WithHTTPRetryDelay(d time.Duration) OptionFunc

WithHTTPRetryDelay sets the base delay for HTTP retry backoff.

func WithLogger

func WithLogger(logger Logger) OptionFunc

WithLogger sets a custom logger for the SDK.

func WithMFAPollInterval

func WithMFAPollInterval(interval time.Duration) OptionFunc

WithMFAPollInterval sets the MFA polling interval.

func WithMFAPollTimeout

func WithMFAPollTimeout(timeout time.Duration) OptionFunc

WithMFAPollTimeout sets the MFA polling timeout.

func WithMFAPolling

func WithMFAPolling(interval, timeout time.Duration) OptionFunc

type Outcome

type Outcome string
const (
	OutcomeAllow                  Outcome = "OUTCOME_ALLOW"
	OutcomeDenyExplicit           Outcome = "OUTCOME_DENY_EXPLICIT"
	OutcomeDenyImplicit           Outcome = "OUTCOME_DENY_IMPLICIT"
	OutcomeRequiresConsensus      Outcome = "OUTCOME_REQUIRES_CONSENSUS"
	OutcomeRejected               Outcome = "OUTCOME_REJECTED"
	OutcomeError                  Outcome = "OUTCOME_ERROR"
	OutcomeRequiresAuthenticators Outcome = "OUTCOME_REQUIRES_AUTHENTICATORS"
)

type Pagination

type Pagination struct {
	// A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.
	After *string `json:"after,omitempty"`
	// A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.
	Before *string `json:"before,omitempty"`
	// A limit of the number of object to be returned, between 1 and 100. Defaults to 10.
	Limit *string `json:"limit,omitempty"`
}

type PathFormat

type PathFormat string
const (
	PathFormatBip32 PathFormat = "PATH_FORMAT_BIP32"
)

type PayloadEncoding

type PayloadEncoding string
const (
	PayloadEncodingHexadecimal          PayloadEncoding = "PAYLOAD_ENCODING_HEXADECIMAL"
	PayloadEncodingTextUtf8             PayloadEncoding = "PAYLOAD_ENCODING_TEXT_UTF8"
	PayloadEncodingEip712               PayloadEncoding = "PAYLOAD_ENCODING_EIP712"
	PayloadEncodingEip7702Authorization PayloadEncoding = "PAYLOAD_ENCODING_EIP7702_AUTHORIZATION"
)

type Policy

type Policy struct {
	// A condition expression that evalutes to true or false.
	Condition string `json:"condition"`
	// A consensus expression that evalutes to true or false.
	Consensus string                  `json:"consensus"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// The instruction to DENY or ALLOW a particular activity following policy selector(s).
	Effect Effect `json:"effect"`
	// Human-readable notes added by a User to describe a particular policy.
	Notes string `json:"notes"`
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
	// Human-readable name for a Policy.
	PolicyName string                  `json:"policyName"`
	UpdatedAt  ExternalDataV1Timestamp `json:"updatedAt"`
}

type PostTVCQuorumKeyShareIntent

type PostTVCQuorumKeyShareIntent struct {
	// Unique identifier of the TVC deployment receiving quorum key share
	DeploymentID string `json:"deploymentId"`
	// Hex-encoded ephemeral public key used to encrypt the quorum key share
	EphemeralPublicKeyHex string `json:"ephemeralPublicKeyHex"`
	// Re-encrypted quorum key share and approval
	ShareApprovalBundle QuorumKeyShareApprovalBundle `json:"shareApprovalBundle"`
}

type PostTVCQuorumKeyShareResult

type PostTVCQuorumKeyShareResult struct {
	// The unique identifier for the provisioning quorum key share
	ProvisioningShareID string `json:"provisioningShareId"`
}

type PrivateKey

type PrivateKey struct {
	// Derived cryptocurrency addresses for a given Private Key.
	Addresses []ExternalDataV1Address `json:"addresses"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Cryptographic Curve used to generate a given Private Key.
	Curve Curve `json:"curve"`
	// True when a given Private Key is exported, false otherwise.
	Exported bool `json:"exported"`
	// True when a given Private Key is imported, false otherwise.
	Imported bool `json:"imported"`
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
	// Human-readable name for a Private Key.
	PrivateKeyName string `json:"privateKeyName"`
	// A list of Private Key Tag IDs.
	PrivateKeyTags []string `json:"privateKeyTags"`
	// The public component of a cryptographic key pair used to sign messages and transactions.
	PublicKey string                  `json:"publicKey"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type PrivateKeyParams

type PrivateKeyParams struct {
	// Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
	AddressFormats []AddressFormat `json:"addressFormats"`
	// Cryptographic Curve used to generate a given Private Key.
	Curve Curve `json:"curve"`
	// Human-readable name for a Private Key.
	PrivateKeyName string `json:"privateKeyName"`
	// A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
	PrivateKeyTags []string `json:"privateKeyTags"`
}

type PrivateKeyResult

type PrivateKeyResult struct {
	Addresses    []Immutableactivityv1Address `json:"addresses,omitempty"`
	PrivateKeyID *string                      `json:"privateKeyId,omitempty"`
}

type ProtobufAny

type ProtobufAny struct {
	TypeValue            *string        `json:"@type,omitempty"`
	AdditionalProperties map[string]any `json:"-"`
}

func (ProtobufAny) MarshalJSON

func (m ProtobufAny) MarshalJSON() ([]byte, error)

func (*ProtobufAny) UnmarshalJSON

func (m *ProtobufAny) UnmarshalJSON(data []byte) error

type PublicKeyCredentialWithAttestation

type PublicKeyCredentialWithAttestation struct {
	AuthenticatorAttachment string                           `json:"authenticatorAttachment,omitempty"`
	ClientExtensionResults  SimpleClientExtensionResults     `json:"clientExtensionResults"`
	ID                      string                           `json:"id"`
	RawID                   string                           `json:"rawId"`
	Response                AuthenticatorAttestationResponse `json:"response"`
	TypeValue               string                           `json:"type"`
}

type QuorumKeyShareApprovalBundle

type QuorumKeyShareApprovalBundle struct {
	// Unique identifier of the operator providing this quorum key share
	OperatorID string `json:"operatorId"`
	// Hex-encoded re-encrypted quorum key share
	ReEncryptedShareHex string `json:"reEncryptedShareHex"`
	// Signature from the share set operator approving the manifest
	Signature string `json:"signature"`
}

type RPCStatus

type RPCStatus struct {
	Code    *int          `json:"code,omitempty"`
	Details []ProtobufAny `json:"details,omitempty"`
	Message *string       `json:"message,omitempty"`
}

type ReEncryptTVCQuorumKeyShareIntent

type ReEncryptTVCQuorumKeyShareIntent struct {
	// Quorum key for the TVC application
	AppQuorumKey string `json:"appQuorumKey"`
	// Base64-encoded attestation document for the TVC deployment provisioning enclave
	AttestationDocB64 string `json:"attestationDocB64"`
	// Unique identifier of the TVC deployment receiving the re-encrypted quorum key share
	DeploymentID string `json:"deploymentId"`
	// Base64-encoded manifest for the TVC deployment
	ManifestB64 string `json:"manifestB64"`
	// Operator encryption public key used to encrypt the hosted TVC quorum key share
	OperatorEncryptKey string `json:"operatorEncryptKey"`
	// Operator signing public key used to approve the TVC manifest
	OperatorSignKey string `json:"operatorSignKey"`
}

type ReEncryptTVCQuorumKeyShareResult

type ReEncryptTVCQuorumKeyShareResult struct {
	// The unique identifier for the provisioning quorum key share
	ProvisioningShareID string `json:"provisioningShareId"`
}

type RecoverUserIntent

type RecoverUserIntent struct {
	// The new authenticator to register.
	Authenticator AuthenticatorParamsV2 `json:"authenticator"`
	// Unique identifier for the user performing recovery.
	UserID string `json:"userId"`
}

type RecoverUserRequest

type RecoverUserRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The new authenticator to register.
	Authenticator AuthenticatorParamsV2 `json:"authenticator"`
	// Unique identifier for the user performing recovery.
	UserID string `json:"userId"`
}

func (RecoverUserRequest) ActivityType

func (RecoverUserRequest) ActivityType() string

type RecoverUserResponse

type RecoverUserResponse struct {
	Activity Activity `json:"activity"`
	RecoverUserResult
}

type RecoverUserResult

type RecoverUserResult struct {
	// ID of the authenticator created.
	AuthenticatorID []string `json:"authenticatorId"`
}

type RejectActivityIntent

type RejectActivityIntent struct {
	// An artifact verifying a User's action.
	Fingerprint string `json:"fingerprint"`
}

type RejectActivityRequest

type RejectActivityRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// An artifact verifying a User's action.
	Fingerprint string `json:"fingerprint"`
}

func (RejectActivityRequest) ActivityType

func (RejectActivityRequest) ActivityType() string

type RejectActivityResponse

type RejectActivityResponse struct {
	Activity Activity `json:"activity"`
}

type RemoveIPAllowlistIntent

type RemoveIPAllowlistIntent struct {
	// The public component of an API key. If null, removes the organization-level IP allowlist. If set, removes the IP allowlist for this specific API key.
	PublicKey *string `json:"publicKey,omitempty"`
}

type RemoveIPAllowlistRequest

type RemoveIPAllowlistRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The public component of an API key. If null, removes the organization-level IP allowlist. If set, removes the IP allowlist for this specific API key.
	PublicKey *string `json:"publicKey,omitempty"`
}

func (RemoveIPAllowlistRequest) ActivityType

func (RemoveIPAllowlistRequest) ActivityType() string

type RemoveIPAllowlistResponse

type RemoveIPAllowlistResponse struct {
	Activity Activity `json:"activity"`
	RemoveIPAllowlistResult
}

type RemoveIPAllowlistResult

type RemoveIPAllowlistResult map[string]any

type RemoveOrganizationFeatureIntent

type RemoveOrganizationFeatureIntent struct {
	// Name of the feature to remove
	Name FeatureName `json:"name"`
}

type RemoveOrganizationFeatureRequest

type RemoveOrganizationFeatureRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Name of the feature to remove
	Name FeatureName `json:"name"`
}

func (RemoveOrganizationFeatureRequest) ActivityType

type RemoveOrganizationFeatureResponse

type RemoveOrganizationFeatureResponse struct {
	Activity Activity `json:"activity"`
	RemoveOrganizationFeatureResult
}

type RemoveOrganizationFeatureResult

type RemoveOrganizationFeatureResult struct {
	// Resulting list of organization features.
	Features []Feature `json:"features"`
}

type RequestError

type RequestError struct {
	StatusCode int
	Status     *RPCStatus
	Body       []byte
}

RequestError is returned for non-2xx Turnkey API responses.

func (*RequestError) Error

func (e *RequestError) Error() string

type RequestType

type RequestType string

RequestType distinguishes activity requests (which poll to completion) from query requests.

const (
	RequestTypeQuery    RequestType = "query"
	RequestTypeActivity RequestType = "activity"
)

type RequiredAuthenticationMethod

type RequiredAuthenticationMethod struct {
	// A list of authentication methods for this MFA step. If only one method is provided, it is required. If multiple are provided, the user must satisfy ANY one of them.
	Any []AuthenticationMethod `json:"any"`
}

type RequiredAuthenticationMethodParams

type RequiredAuthenticationMethodParams struct {
	// A list of authentication methods for this MFA step. If only one method is provided, it is required. If multiple are provided, the user must satisfy ANY one of them.
	Any []AuthenticationMethodParams `json:"any"`
}

type RestoreTVCDeploymentIntent

type RestoreTVCDeploymentIntent struct {
	// The unique identifier of the TVC deployment to restore.
	DeploymentID string `json:"deploymentId"`
}

type RestoreTVCDeploymentRequest

type RestoreTVCDeploymentRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The unique identifier of the TVC deployment to restore.
	DeploymentID string `json:"deploymentId"`
}

func (RestoreTVCDeploymentRequest) ActivityType

func (RestoreTVCDeploymentRequest) ActivityType() string

type RestoreTVCDeploymentResponse

type RestoreTVCDeploymentResponse struct {
	Activity Activity `json:"activity"`
	RestoreTVCDeploymentResult
}

type RestoreTVCDeploymentResult

type RestoreTVCDeploymentResult struct {
	// The unique identifier of the restored TVC deployment.
	DeploymentID string `json:"deploymentId"`
}

type Result

type Result struct {
	AcceptInvitationResult             *AcceptInvitationResult             `json:"acceptInvitationResult,omitempty"`
	ActivateBillingTierResult          *BillingActivateBillingTierResult   `json:"activateBillingTierResult,omitempty"`
	CreateAPIKeysResult                *CreateAPIKeysResult                `json:"createApiKeysResult,omitempty"`
	CreateAPIOnlyUsersResult           *CreateAPIOnlyUsersResult           `json:"createApiOnlyUsersResult,omitempty"`
	CreateAuthenticatorsResult         *CreateAuthenticatorsResult         `json:"createAuthenticatorsResult,omitempty"`
	CreateFiatOnRampCredentialResult   *CreateFiatOnRampCredentialResult   `json:"createFiatOnRampCredentialResult,omitempty"`
	CreateInvitationsResult            *CreateInvitationsResult            `json:"createInvitationsResult,omitempty"`
	CreateMfaPolicyResult              *CreateMfaPolicyResult              `json:"createMfaPolicyResult,omitempty"`
	CreateOAuth2CredentialResult       *CreateOAuth2CredentialResult       `json:"createOauth2CredentialResult,omitempty"`
	CreateOAuthProvidersResult         *CreateOAuthProvidersResult         `json:"createOauthProvidersResult,omitempty"`
	CreateOAuthProvidersResultV2       *CreateOAuthProvidersResultV2       `json:"createOauthProvidersResultV2,omitempty"`
	CreateOrganizationResult           *CreateOrganizationResult           `json:"createOrganizationResult,omitempty"`
	CreatePoliciesResult               *CreatePoliciesResult               `json:"createPoliciesResult,omitempty"`
	CreatePolicyResult                 *CreatePolicyResult                 `json:"createPolicyResult,omitempty"`
	CreatePrivateKeyTagResult          *CreatePrivateKeyTagResult          `json:"createPrivateKeyTagResult,omitempty"`
	CreatePrivateKeysResult            *CreatePrivateKeysResult            `json:"createPrivateKeysResult,omitempty"`
	CreatePrivateKeysResultV2          *CreatePrivateKeysResultV2          `json:"createPrivateKeysResultV2,omitempty"`
	CreateReadOnlySessionResult        *CreateReadOnlySessionResult        `json:"createReadOnlySessionResult,omitempty"`
	CreateReadWriteSessionResult       *CreateReadWriteSessionResult       `json:"createReadWriteSessionResult,omitempty"`
	CreateReadWriteSessionResultV2     *CreateReadWriteSessionResultV2     `json:"createReadWriteSessionResultV2,omitempty"`
	CreateSessionProfileResult         *CreateSessionProfileResult         `json:"createSessionProfileResult,omitempty"`
	CreateSmartContractInterfaceResult *CreateSmartContractInterfaceResult `json:"createSmartContractInterfaceResult,omitempty"`
	CreateSubOrganizationResult        *CreateSubOrganizationResult        `json:"createSubOrganizationResult,omitempty"`
	CreateSubOrganizationResultV3      *CreateSubOrganizationResultV3      `json:"createSubOrganizationResultV3,omitempty"`
	CreateSubOrganizationResultV4      *CreateSubOrganizationResultV4      `json:"createSubOrganizationResultV4,omitempty"`
	CreateSubOrganizationResultV5      *CreateSubOrganizationResultV5      `json:"createSubOrganizationResultV5,omitempty"`
	CreateSubOrganizationResultV6      *CreateSubOrganizationResultV6      `json:"createSubOrganizationResultV6,omitempty"`
	CreateSubOrganizationResultV7      *CreateSubOrganizationResultV7      `json:"createSubOrganizationResultV7,omitempty"`
	CreateSubOrganizationResultV8      *CreateSubOrganizationResultV8      `json:"createSubOrganizationResultV8,omitempty"`
	CreateTVCAppResult                 *CreateTVCAppResult                 `json:"createTvcAppResult,omitempty"`
	CreateTVCDeploymentResult          *CreateTVCDeploymentResult          `json:"createTvcDeploymentResult,omitempty"`
	CreateTVCManifestApprovalsResult   *CreateTVCManifestApprovalsResult   `json:"createTvcManifestApprovalsResult,omitempty"`
	CreateTVCOperatorResult            *CreateTVCOperatorResult            `json:"createTvcOperatorResult,omitempty"`
	CreateTVCQuorumKeyResult           *CreateTVCQuorumKeyResult           `json:"createTvcQuorumKeyResult,omitempty"`
	CreateUserTagResult                *CreateUserTagResult                `json:"createUserTagResult,omitempty"`
	CreateUsersResult                  *CreateUsersResult                  `json:"createUsersResult,omitempty"`
	CreateWalletAccountsResult         *CreateWalletAccountsResult         `json:"createWalletAccountsResult,omitempty"`
	CreateWalletResult                 *CreateWalletResult                 `json:"createWalletResult,omitempty"`
	CreateWebhookEndpointResult        *CreateWebhookEndpointResult        `json:"createWebhookEndpointResult,omitempty"`
	DeleteAPIKeysResult                *DeleteAPIKeysResult                `json:"deleteApiKeysResult,omitempty"`
	DeleteAuthenticatorsResult         *DeleteAuthenticatorsResult         `json:"deleteAuthenticatorsResult,omitempty"`
	DeleteFiatOnRampCredentialResult   *DeleteFiatOnRampCredentialResult   `json:"deleteFiatOnRampCredentialResult,omitempty"`
	DeleteInvitationResult             *DeleteInvitationResult             `json:"deleteInvitationResult,omitempty"`
	DeleteMfaPolicyResult              *DeleteMfaPolicyResult              `json:"deleteMfaPolicyResult,omitempty"`
	DeleteOAuth2CredentialResult       *DeleteOAuth2CredentialResult       `json:"deleteOauth2CredentialResult,omitempty"`
	DeleteOAuthProvidersResult         *DeleteOAuthProvidersResult         `json:"deleteOauthProvidersResult,omitempty"`
	DeleteOrganizationResult           *DeleteOrganizationResult           `json:"deleteOrganizationResult,omitempty"`
	DeletePaymentMethodResult          *BillingDeletePaymentMethodResult   `json:"deletePaymentMethodResult,omitempty"`
	DeletePoliciesResult               *DeletePoliciesResult               `json:"deletePoliciesResult,omitempty"`
	DeletePolicyResult                 *DeletePolicyResult                 `json:"deletePolicyResult,omitempty"`
	DeletePrivateKeyTagsResult         *DeletePrivateKeyTagsResult         `json:"deletePrivateKeyTagsResult,omitempty"`
	DeletePrivateKeysResult            *DeletePrivateKeysResult            `json:"deletePrivateKeysResult,omitempty"`
	DeleteSmartContractInterfaceResult *DeleteSmartContractInterfaceResult `json:"deleteSmartContractInterfaceResult,omitempty"`
	DeleteSubOrganizationResult        *DeleteSubOrganizationResult        `json:"deleteSubOrganizationResult,omitempty"`
	DeleteTVCAppAndDeploymentsResult   *DeleteTVCAppAndDeploymentsResult   `json:"deleteTvcAppAndDeploymentsResult,omitempty"`
	DeleteTVCDeploymentResult          *DeleteTVCDeploymentResult          `json:"deleteTvcDeploymentResult,omitempty"`
	DeleteUserTagsResult               *DeleteUserTagsResult               `json:"deleteUserTagsResult,omitempty"`
	DeleteUsersResult                  *DeleteUsersResult                  `json:"deleteUsersResult,omitempty"`
	DeleteWalletAccountsResult         *DeleteWalletAccountsResult         `json:"deleteWalletAccountsResult,omitempty"`
	DeleteWalletsResult                *DeleteWalletsResult                `json:"deleteWalletsResult,omitempty"`
	DeleteWebhookEndpointResult        *DeleteWebhookEndpointResult        `json:"deleteWebhookEndpointResult,omitempty"`
	DisableAuthProxyResult             *DisableAuthProxyResult             `json:"disableAuthProxyResult,omitempty"`
	DisablePrivateKeyResult            *DisablePrivateKeyResult            `json:"disablePrivateKeyResult,omitempty"`
	EarnDeployWrapperResult            *EarnDeployWrapperResult            `json:"earnDeployWrapperResult,omitempty"`
	EarnDepositResult                  *EarnDepositResult                  `json:"earnDepositResult,omitempty"`
	EarnWithdrawResult                 *EarnWithdrawResult                 `json:"earnWithdrawResult,omitempty"`
	EmailAuthResult                    *EmailAuthResult                    `json:"emailAuthResult,omitempty"`
	EnableAuthProxyResult              *EnableAuthProxyResult              `json:"enableAuthProxyResult,omitempty"`
	ETHSendRawTransactionResult        *ETHSendRawTransactionResult        `json:"ethSendRawTransactionResult,omitempty"`
	ETHSendTransactionResult           *ETHSendTransactionResult           `json:"ethSendTransactionResult,omitempty"`
	ETHSendTransactionResultV2         *ETHSendTransactionResultV2         `json:"ethSendTransactionResultV2,omitempty"`
	ExecuteSwapResult                  *ExecuteSwapResult                  `json:"executeSwapResult,omitempty"`
	ExportPrivateKeyResult             *ExportPrivateKeyResult             `json:"exportPrivateKeyResult,omitempty"`
	ExportWalletAccountResult          *ExportWalletAccountResult          `json:"exportWalletAccountResult,omitempty"`
	ExportWalletResult                 *ExportWalletResult                 `json:"exportWalletResult,omitempty"`
	ImportPrivateKeyResult             *ImportPrivateKeyResult             `json:"importPrivateKeyResult,omitempty"`
	ImportWalletResult                 *ImportWalletResult                 `json:"importWalletResult,omitempty"`
	InitFiatOnRampResult               *InitFiatOnRampResult               `json:"initFiatOnRampResult,omitempty"`
	InitImportPrivateKeyResult         *InitImportPrivateKeyResult         `json:"initImportPrivateKeyResult,omitempty"`
	InitImportWalletResult             *InitImportWalletResult             `json:"initImportWalletResult,omitempty"`
	InitOTPAuthResult                  *InitOTPAuthResult                  `json:"initOtpAuthResult,omitempty"`
	InitOTPAuthResultV2                *InitOTPAuthResultV2                `json:"initOtpAuthResultV2,omitempty"`
	InitOTPResult                      *InitOTPResult                      `json:"initOtpResult,omitempty"`
	InitOTPResultV2                    *InitOTPResultV2                    `json:"initOtpResultV2,omitempty"`
	InitUserEmailRecoveryResult        *InitUserEmailRecoveryResult        `json:"initUserEmailRecoveryResult,omitempty"`
	OAuth2AuthenticateResult           *OAuth2AuthenticateResult           `json:"oauth2AuthenticateResult,omitempty"`
	OAuthLoginResult                   *OAuthLoginResult                   `json:"oauthLoginResult,omitempty"`
	OAuthResult                        *OAuthResult                        `json:"oauthResult,omitempty"`
	OTPAuthResult                      *OTPAuthResult                      `json:"otpAuthResult,omitempty"`
	OTPLoginResult                     *OTPLoginResult                     `json:"otpLoginResult,omitempty"`
	PostTVCQuorumKeyShareResult        *PostTVCQuorumKeyShareResult        `json:"postTvcQuorumKeyShareResult,omitempty"`
	ReEncryptTVCQuorumKeyShareResult   *ReEncryptTVCQuorumKeyShareResult   `json:"reEncryptTvcQuorumKeyShareResult,omitempty"`
	RecoverUserResult                  *RecoverUserResult                  `json:"recoverUserResult,omitempty"`
	RemoveIPAllowlistResult            *RemoveIPAllowlistResult            `json:"removeIpAllowlistResult,omitempty"`
	RemoveOrganizationFeatureResult    *RemoveOrganizationFeatureResult    `json:"removeOrganizationFeatureResult,omitempty"`
	RestoreTVCDeploymentResult         *RestoreTVCDeploymentResult         `json:"restoreTvcDeploymentResult,omitempty"`
	SetIPAllowlistResult               *SetIPAllowlistResult               `json:"setIpAllowlistResult,omitempty"`
	SetOrganizationFeatureResult       *SetOrganizationFeatureResult       `json:"setOrganizationFeatureResult,omitempty"`
	SetPaymentMethodResult             *BillingSetPaymentMethodResult      `json:"setPaymentMethodResult,omitempty"`
	SignRawPayloadResult               *SignRawPayloadResult               `json:"signRawPayloadResult,omitempty"`
	SignRawPayloadsResult              *SignRawPayloadsResult              `json:"signRawPayloadsResult,omitempty"`
	SignTransactionResult              *SignTransactionResult              `json:"signTransactionResult,omitempty"`
	SolSendTransactionResult           *SolSendTransactionResult           `json:"solSendTransactionResult,omitempty"`
	SparkClaimTransferResult           *SparkClaimTransferResult           `json:"sparkClaimTransferResult,omitempty"`
	SparkPrepareLightningReceiveResult *SparkPrepareLightningReceiveResult `json:"sparkPrepareLightningReceiveResult,omitempty"`
	SparkPrepareTransferResult         *SparkPrepareTransferResult         `json:"sparkPrepareTransferResult,omitempty"`
	SparkSignFrostResult               *SparkSignFrostResult               `json:"sparkSignFrostResult,omitempty"`
	StampLoginResult                   *StampLoginResult                   `json:"stampLoginResult,omitempty"`
	UpdateAllowedOriginsResult         *UpdateAllowedOriginsResult         `json:"updateAllowedOriginsResult,omitempty"`
	UpdateAuthProxyConfigResult        *UpdateAuthProxyConfigResult        `json:"updateAuthProxyConfigResult,omitempty"`
	UpdateFiatOnRampCredentialResult   *UpdateFiatOnRampCredentialResult   `json:"updateFiatOnRampCredentialResult,omitempty"`
	UpdateMfaPolicyResult              *UpdateMfaPolicyResult              `json:"updateMfaPolicyResult,omitempty"`
	UpdateOAuth2CredentialResult       *UpdateOAuth2CredentialResult       `json:"updateOauth2CredentialResult,omitempty"`
	UpdateOrganizationNameResult       *UpdateOrganizationNameResult       `json:"updateOrganizationNameResult,omitempty"`
	UpdatePolicyResult                 *UpdatePolicyResult                 `json:"updatePolicyResult,omitempty"`
	UpdatePolicyResultV2               *UpdatePolicyResultV2               `json:"updatePolicyResultV2,omitempty"`
	UpdatePrivateKeyTagResult          *UpdatePrivateKeyTagResult          `json:"updatePrivateKeyTagResult,omitempty"`
	UpdateRootQuorumResult             *UpdateRootQuorumResult             `json:"updateRootQuorumResult,omitempty"`
	UpdateTVCAppLiveDeploymentResult   *UpdateTVCAppLiveDeploymentResult   `json:"updateTvcAppLiveDeploymentResult,omitempty"`
	UpdateUserEmailResult              *UpdateUserEmailResult              `json:"updateUserEmailResult,omitempty"`
	UpdateUserNameResult               *UpdateUserNameResult               `json:"updateUserNameResult,omitempty"`
	UpdateUserPhoneNumberResult        *UpdateUserPhoneNumberResult        `json:"updateUserPhoneNumberResult,omitempty"`
	UpdateUserResult                   *UpdateUserResult                   `json:"updateUserResult,omitempty"`
	UpdateUserTagResult                *UpdateUserTagResult                `json:"updateUserTagResult,omitempty"`
	UpdateWalletResult                 *UpdateWalletResult                 `json:"updateWalletResult,omitempty"`
	UpdateWebhookEndpointResult        *UpdateWebhookEndpointResult        `json:"updateWebhookEndpointResult,omitempty"`
	UpsertEarnClientFeeConfigResult    *UpsertEarnClientFeeConfigResult    `json:"upsertEarnClientFeeConfigResult,omitempty"`
	UpsertGasUsageConfigResult         *UpsertGasUsageConfigResult         `json:"upsertGasUsageConfigResult,omitempty"`
	UpsertSwapConfigResult             *UpsertSwapConfigResult             `json:"upsertSwapConfigResult,omitempty"`
	VerifyOTPResult                    *VerifyOTPResult                    `json:"verifyOtpResult,omitempty"`
}

type RevertChainEntry

type RevertChainEntry struct {
	// The contract address where the revert occurred.
	Address *string `json:"address,omitempty"`
	// Details for custom contract errors.
	Custom *CustomRevertError `json:"custom,omitempty"`
	// Human-readable message describing this revert.
	DisplayMessage *string `json:"displayMessage,omitempty"`
	// Type of error: 'unknown', 'native', or 'custom'.
	ErrorType *string `json:"errorType,omitempty"`
	// Details for native Solidity errors (Error, Panic, execution reverted).
	Native *NativeRevertError `json:"native,omitempty"`
	// Details for unknown error types.
	Unknown *UnknownRevertError `json:"unknown,omitempty"`
}

type RootUserParams

type RootUserParams struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParams `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
}

type RootUserParamsV2

type RootUserParamsV2 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParams `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders []OAuthProviderParams `json:"oauthProviders"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
}

type RootUserParamsV3

type RootUserParamsV3 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders []OAuthProviderParams `json:"oauthProviders"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
}

type RootUserParamsV4

type RootUserParamsV4 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders []OAuthProviderParams `json:"oauthProviders"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
}

type RootUserParamsV5

type RootUserParamsV5 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders []OAuthProviderParamsV2 `json:"oauthProviders"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
}

type Selector

type Selector struct {
	Operator *Operator `json:"operator,omitempty"`
	Subject  *string   `json:"subject,omitempty"`
	Target   *string   `json:"target,omitempty"`
}

type SelectorV2

type SelectorV2 struct {
	Operator *Operator `json:"operator,omitempty"`
	Subject  *string   `json:"subject,omitempty"`
	Targets  []string  `json:"targets,omitempty"`
}

type SessionProfile

type SessionProfile struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Optional window (in seconds) indicating how long sessions created with this profile should last.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Optional human-readable notes added by a User to describe a particular Session Profile.
	Notes *string `json:"notes,omitempty"`
	// The specific scope that a session created with this profile is limited to.
	Scope string `json:"scope"`
	// Unique identifier for a given Session Profile.
	SessionProfileID string `json:"sessionProfileId"`
	// Human-readable name for a Session Profile.
	SessionProfileName string                  `json:"sessionProfileName"`
	UpdatedAt          ExternalDataV1Timestamp `json:"updatedAt"`
}

type SetIPAllowlistIntent

type SetIPAllowlistIntent struct {
	// Whether the IP allowlist is enabled. Only meaningful for organization-level allowlists. Omit for API key-level allowlists.
	Enabled *bool `json:"enabled,omitempty"`
	// Behavior when an error occurs during IP allowlist evaluation. Valid values: ALLOW, DENY. Defaults to DENY.
	OnEvaluationError *string `json:"onEvaluationError,omitempty"`
	// The public component of an API key. If null, the IP allowlist applies at the organization level. If set, it applies only to this specific API key.
	PublicKey *string `json:"publicKey,omitempty"`
	// List of IP allowlist rules with CIDR blocks and optional labels.
	Rules []IPAllowlistIntentRule `json:"rules,omitempty"`
}

type SetIPAllowlistRequest

type SetIPAllowlistRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Whether the IP allowlist is enabled. Only meaningful for organization-level allowlists. Omit for API key-level allowlists.
	Enabled *bool `json:"enabled,omitempty"`
	// Behavior when an error occurs during IP allowlist evaluation. Valid values: ALLOW, DENY. Defaults to DENY.
	OnEvaluationError *string `json:"onEvaluationError,omitempty"`
	// The public component of an API key. If null, the IP allowlist applies at the organization level. If set, it applies only to this specific API key.
	PublicKey *string `json:"publicKey,omitempty"`
	// List of IP allowlist rules with CIDR blocks and optional labels.
	Rules []IPAllowlistIntentRule `json:"rules,omitempty"`
}

func (SetIPAllowlistRequest) ActivityType

func (SetIPAllowlistRequest) ActivityType() string

type SetIPAllowlistResponse

type SetIPAllowlistResponse struct {
	Activity Activity `json:"activity"`
	SetIPAllowlistResult
}

type SetIPAllowlistResult

type SetIPAllowlistResult map[string]any

type SetOrganizationFeatureIntent

type SetOrganizationFeatureIntent struct {
	// Name of the feature to set
	Name FeatureName `json:"name"`
	// Optional value for the feature. Will override existing values if feature is already set.
	Value string `json:"value"`
}

type SetOrganizationFeatureRequest

type SetOrganizationFeatureRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Name of the feature to set
	Name FeatureName `json:"name"`
	// Optional value for the feature. Will override existing values if feature is already set.
	Value string `json:"value"`
}

func (SetOrganizationFeatureRequest) ActivityType

func (SetOrganizationFeatureRequest) ActivityType() string

type SetOrganizationFeatureResponse

type SetOrganizationFeatureResponse struct {
	Activity Activity `json:"activity"`
	SetOrganizationFeatureResult
}

type SetOrganizationFeatureResult

type SetOrganizationFeatureResult struct {
	// Resulting list of organization features.
	Features []Feature `json:"features"`
}

type SignRawPayloadIntent

type SignRawPayloadIntent struct {
	// Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8).
	Encoding PayloadEncoding `json:"encoding"`
	// Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032.
	HashFunction HashFunction `json:"hashFunction"`
	// Raw unsigned payload to be signed.
	Payload string `json:"payload"`
	// Unique identifier for a given Private Key.
	PrivateKeyID string `json:"privateKeyId"`
}

type SignRawPayloadIntentV2

type SignRawPayloadIntentV2 struct {
	// Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8).
	Encoding PayloadEncoding `json:"encoding"`
	// Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032.
	HashFunction HashFunction `json:"hashFunction"`
	// Raw unsigned payload to be signed.
	Payload string `json:"payload"`
	// A Wallet account address, Private Key address, or Private Key identifier.
	SignWith string `json:"signWith"`
}

type SignRawPayloadRequest

type SignRawPayloadRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8).
	Encoding PayloadEncoding `json:"encoding"`
	// Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032.
	HashFunction HashFunction `json:"hashFunction"`
	// Raw unsigned payload to be signed.
	Payload string `json:"payload"`
	// A Wallet account address, Private Key address, or Private Key identifier.
	SignWith string `json:"signWith"`
}

func (SignRawPayloadRequest) ActivityType

func (SignRawPayloadRequest) ActivityType() string

type SignRawPayloadResponse

type SignRawPayloadResponse struct {
	Activity Activity `json:"activity"`
	SignRawPayloadResult
}

type SignRawPayloadResult

type SignRawPayloadResult struct {
	// Component of an ECSDA signature.
	R string `json:"r"`
	// Component of an ECSDA signature.
	S string `json:"s"`
	// Component of an ECSDA signature.
	V string `json:"v"`
}

type SignRawPayloadsIntent

type SignRawPayloadsIntent struct {
	// Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8).
	Encoding PayloadEncoding `json:"encoding"`
	// Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032.
	HashFunction HashFunction `json:"hashFunction"`
	// An array of raw unsigned payloads to be signed.
	Payloads []string `json:"payloads"`
	// A Wallet account address, Private Key address, or Private Key identifier.
	SignWith string `json:"signWith"`
}

type SignRawPayloadsRequest

type SignRawPayloadsRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8).
	Encoding PayloadEncoding `json:"encoding"`
	// Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032.
	HashFunction HashFunction `json:"hashFunction"`
	// An array of raw unsigned payloads to be signed.
	Payloads []string `json:"payloads"`
	// A Wallet account address, Private Key address, or Private Key identifier.
	SignWith string `json:"signWith"`
}

func (SignRawPayloadsRequest) ActivityType

func (SignRawPayloadsRequest) ActivityType() string

type SignRawPayloadsResponse

type SignRawPayloadsResponse struct {
	Activity Activity `json:"activity"`
	SignRawPayloadsResult
}

type SignRawPayloadsResult

type SignRawPayloadsResult struct {
	Signatures []SignRawPayloadResult `json:"signatures,omitempty"`
}

type SignTransactionIntent

type SignTransactionIntent struct {
	// Unique identifier for a given Private Key.
	PrivateKeyID string          `json:"privateKeyId"`
	TypeValue    TransactionType `json:"type"`
	// Raw unsigned transaction to be signed by a particular Private Key.
	UnsignedTransaction string `json:"unsignedTransaction"`
}

type SignTransactionIntentV2

type SignTransactionIntentV2 struct {
	// A Wallet account address, Private Key address, or Private Key identifier.
	SignWith  string          `json:"signWith"`
	TypeValue TransactionType `json:"type"`
	// Raw unsigned transaction to be signed
	UnsignedTransaction string `json:"unsignedTransaction"`
}

type SignTransactionRequest

type SignTransactionRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A Wallet account address, Private Key address, or Private Key identifier.
	SignWith  string          `json:"signWith"`
	TypeValue TransactionType `json:"type"`
	// Raw unsigned transaction to be signed
	UnsignedTransaction string `json:"unsignedTransaction"`
}

func (SignTransactionRequest) ActivityType

func (SignTransactionRequest) ActivityType() string

type SignTransactionResponse

type SignTransactionResponse struct {
	Activity Activity `json:"activity"`
	SignTransactionResult
}

type SignTransactionResult

type SignTransactionResult struct {
	SignedTransaction string `json:"signedTransaction"`
}

type SignedRequest

type SignedRequest struct {
	URL   string      `json:"url"`
	Body  string      `json:"body"`
	Stamp *Stamp      `json:"stamp,omitempty"`
	Type  RequestType `json:"type,omitempty"`
}

SignedRequest contains a JSON body and stamp for callers that submit requests themselves.

type SignupUsage

type SignupUsage struct {
	APIKeys        []APIKeyParamsV2        `json:"apiKeys,omitempty"`
	Authenticators []AuthenticatorParamsV2 `json:"authenticators,omitempty"`
	Email          *string                 `json:"email,omitempty"`
	OAuthProviders []OAuthProviderParams   `json:"oauthProviders,omitempty"`
	PhoneNumber    *string                 `json:"phoneNumber,omitempty"`
}

type SignupUsageV2

type SignupUsageV2 struct {
	APIKeys        []APIKeyParamsV2        `json:"apiKeys,omitempty"`
	Authenticators []AuthenticatorParamsV2 `json:"authenticators,omitempty"`
	Email          *string                 `json:"email,omitempty"`
	OAuthProviders []OAuthProviderParamsV2 `json:"oauthProviders,omitempty"`
	PhoneNumber    *string                 `json:"phoneNumber,omitempty"`
}

type SimpleClientExtensionResults

type SimpleClientExtensionResults struct {
	Appid        *bool                                           `json:"appid,omitempty"`
	AppidExclude *bool                                           `json:"appidExclude,omitempty"`
	CredProps    *CredPropsAuthenticationExtensionsClientOutputs `json:"credProps,omitempty"`
}

type SmartContractInterfaceType

type SmartContractInterfaceType string
const (
	SmartContractInterfaceTypeEthereum SmartContractInterfaceType = "SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM"
	SmartContractInterfaceTypeSolana   SmartContractInterfaceType = "SMART_CONTRACT_INTERFACE_TYPE_SOLANA"
)

type SmsCustomizationParams

type SmsCustomizationParams struct {
	// Template containing references to .OtpCode i.e Your OTP is {{.OtpCode}}
	Template *string `json:"template,omitempty"`
}

type SolSendTransactionIntent

type SolSendTransactionIntent struct {
	// CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values.
	Caip2 string `json:"caip2"`
	// user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution
	RecentBlockhash *string `json:"recentBlockhash,omitempty"`
	// A wallet or private key address to sign with. This does not support private key IDs.
	SignWith string `json:"signWith"`
	// Whether to sponsor this transaction via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
	// Base64-encoded serialized unsigned Solana transaction
	UnsignedTransaction string `json:"unsignedTransaction"`
}

type SolSendTransactionRequest

type SolSendTransactionRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values.
	Caip2 string `json:"caip2"`
	// user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution
	RecentBlockhash *string `json:"recentBlockhash,omitempty"`
	// A wallet or private key address to sign with. This does not support private key IDs.
	SignWith string `json:"signWith"`
	// Whether to sponsor this transaction via Gas Station.
	Sponsor *bool `json:"sponsor,omitempty"`
	// Base64-encoded serialized unsigned Solana transaction
	UnsignedTransaction string `json:"unsignedTransaction"`
}

func (SolSendTransactionRequest) ActivityType

func (SolSendTransactionRequest) ActivityType() string

type SolSendTransactionResponse

type SolSendTransactionResponse struct {
	Activity Activity `json:"activity"`
	SolSendTransactionResult
}

type SolSendTransactionResult

type SolSendTransactionResult struct {
	// The send_transaction_status ID associated with the transaction submission
	SendTransactionStatusID string `json:"sendTransactionStatusId"`
}

type SolanaConfig

type SolanaConfig struct {
	// Whether Solana rent prefunding is enabled for the organization. When omitted, the existing rent-prefund state is left unchanged.
	RentPrefundEnabled *bool `json:"rentPrefundEnabled,omitempty"`
}

type SolanaFailureDetails

type SolanaFailureDetails struct {
	// The raw Solana inner instructions payload serialized as JSON, if available.
	InnerInstructionsJSON *string `json:"innerInstructionsJson,omitempty"`
	// Program logs returned by Solana simulation or preflight, if available.
	Logs []string `json:"logs,omitempty"`
	// The Solana JSON-RPC error code, if available.
	RPCCode *int `json:"rpcCode,omitempty"`
	// The Solana JSON-RPC error message, if available.
	RPCMessage *string `json:"rpcMessage,omitempty"`
	// Where the Solana failure occurred, such as simulation or preflight.
	Source *string `json:"source,omitempty"`
	// The raw Solana transaction error object serialized as JSON, if available.
	TransactionErrorJSON *string `json:"transactionErrorJson,omitempty"`
	// Compute units consumed during simulation or preflight, if available.
	UnitsConsumed *string `json:"unitsConsumed,omitempty"`
}

type SolanaSendTransactionStatus

type SolanaSendTransactionStatus struct {
	// The Solana transaction signature, if available.
	Signature *string `json:"signature,omitempty"`
}

type SparkClaimLeaf

type SparkClaimLeaf struct {
	// ECIES ciphertext (hex-encoded) containing the inbound transfer secret. Decrypted inside the enclave using the wallet's Identity key.
	Ciphertext string `json:"ciphertext"`
	// Leaf identifier (UUID).
	LeafID string `json:"leafId"`
	// Hex-encoded 64-byte compact ECDSA signature binding (leaf_id, transfer_id, ciphertext) to the sender's identity key. Verified inside the enclave before decryption.
	SenderSignature string `json:"senderSignature"`
}

type SparkClaimPackage

type SparkClaimPackage struct {
	// Leaves being claimed.
	Leaves []SparkClaimLeaf `json:"leaves"`
	// Operators that will receive Shamir shares.
	OperatorRecipients []SparkOperatorRecipient `json:"operatorRecipients"`
	// Sender's compressed secp256k1 identity public key (hex-encoded, 33 bytes). Used to verify the per-leaf sender_signature fields.
	SenderIdentityPublicKey string `json:"senderIdentityPublicKey"`
	// Shamir threshold for reconstructing the per-leaf claim secret.
	Threshold int64 `json:"threshold"`
	// Spark transfer identifier (UUID). Used together with each leaf's sender_signature to verify the sender bound this ciphertext to this transfer.
	TransferID string `json:"transferId"`
}

type SparkClaimTransferIntent

type SparkClaimTransferIntent struct {
	// Claim package parameters.
	Claim SparkClaimPackage `json:"claim"`
	// A Spark wallet account address identifying the wallet.
	SignWith string `json:"signWith"`
}

type SparkClaimTransferRequest

type SparkClaimTransferRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Claim package parameters.
	Claim SparkClaimPackage `json:"claim"`
	// A Spark wallet account address identifying the wallet.
	SignWith string `json:"signWith"`
}

func (SparkClaimTransferRequest) ActivityType

func (SparkClaimTransferRequest) ActivityType() string

type SparkClaimTransferResponse

type SparkClaimTransferResponse struct {
	Activity Activity `json:"activity"`
	SparkClaimTransferResult
}

type SparkClaimTransferResult

type SparkClaimTransferResult struct {
	// Newly-derived SigningLeaf public keys, one per leaf, in input order.
	NewLeafPublicKeys []SparkLeafPublicKey `json:"newLeafPublicKeys"`
	// Per-operator ECIES-encrypted packages.
	OperatorPackages []SparkEncryptedOperatorPackage `json:"operatorPackages"`
}

type SparkDepositDerivation

type SparkDepositDerivation map[string]any

type SparkEncryptedOperatorPackage

type SparkEncryptedOperatorPackage struct {
	// ECIES ciphertext (hex-encoded) opaque to Turnkey after emission.
	EncryptedPackage string `json:"encryptedPackage"`
	// Spark operator identifier (UUID).
	OperatorID string `json:"operatorId"`
}

type SparkFrostCommitment

type SparkFrostCommitment struct {
	// Binding commitment E, hex-encoded compressed secp256k1 point.
	Binding string `json:"binding"`
	// Hiding commitment D, hex-encoded compressed secp256k1 point.
	Hiding string `json:"hiding"`
	// FROST participant identifier, hex-encoded (32-byte scalar).
	ID string `json:"id"`
}

type SparkHtlcPreimageDerivation

type SparkHtlcPreimageDerivation map[string]any

type SparkIdentityDerivation

type SparkIdentityDerivation map[string]any

type SparkKeyDerivation

type SparkKeyDerivation struct {
	// Spark deposit key derivation.
	Deposit *SparkDepositDerivation `json:"deposit,omitempty"`
	// Spark HTLC preimage key derivation.
	HtlcPreimage *SparkHtlcPreimageDerivation `json:"htlcPreimage,omitempty"`
	// Spark identity key derivation.
	Identity *SparkIdentityDerivation `json:"identity,omitempty"`
	// Spark signing leaf key derivation, identified by leaf ID.
	SigningLeaf *SparkSigningLeafDerivation `json:"signingLeaf,omitempty"`
	// Spark static deposit key derivation, identified by index.
	StaticDeposit *SparkStaticDepositDerivation `json:"staticDeposit,omitempty"`
}

type SparkLeafPublicKey

type SparkLeafPublicKey struct {
	// The Spark leaf_id this public key was derived for.
	LeafID string `json:"leafId"`
	// Hex-encoded compressed secp256k1 point (33 bytes) for the SigningLeaf derivation at leaf_id.
	PublicKey string `json:"publicKey"`
}

type SparkLightningReceivePackage

type SparkLightningReceivePackage struct {
	// Operators that will receive Feldman shares of the preimage. Order must match the operators' numeric IDs in the Spark operator config - share index is the 1-based position in this list.
	OperatorRecipients []SparkOperatorRecipient `json:"operatorRecipients"`
	// Feldman VSS threshold for reconstructing the preimage.
	Threshold int64 `json:"threshold"`
}

type SparkOperatorRecipient

type SparkOperatorRecipient struct {
	// Operator's ECIES encryption pubkey (hex-encoded compressed secp256k1 point).
	EncryptionPublicKey string `json:"encryptionPublicKey"`
	// Spark operator identifier (UUID).
	OperatorID string `json:"operatorId"`
}

type SparkPartialSignature

type SparkPartialSignature struct {
	// Turnkey's binding commitment E (hex-encoded compressed secp256k1 point). Forward to the Spark Operator.
	Binding string `json:"binding"`
	// Turnkey's hiding commitment D (hex-encoded compressed secp256k1 point). Forward to the Spark Operator.
	Hiding string `json:"hiding"`
	// Hex-encoded FROST partial signature.
	SignatureShare string `json:"signatureShare"`
}

type SparkPrepareLightningReceiveIntent

type SparkPrepareLightningReceiveIntent struct {
	// Lightning receive package parameters: threshold and operator recipients.
	LightningReceive SparkLightningReceivePackage `json:"lightningReceive"`
	// A Spark wallet account address identifying the wallet.
	SignWith string `json:"signWith"`
}

type SparkPrepareLightningReceiveRequest

type SparkPrepareLightningReceiveRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Lightning receive package parameters: threshold and operator recipients.
	LightningReceive SparkLightningReceivePackage `json:"lightningReceive"`
	// A Spark wallet account address identifying the wallet.
	SignWith string `json:"signWith"`
}

func (SparkPrepareLightningReceiveRequest) ActivityType

type SparkPrepareLightningReceiveResponse

type SparkPrepareLightningReceiveResponse struct {
	Activity Activity `json:"activity"`
	SparkPrepareLightningReceiveResult
}

type SparkPrepareLightningReceiveResult

type SparkPrepareLightningReceiveResult struct {
	// Per-operator ECIES-encrypted Feldman share packages.
	OperatorPackages []SparkEncryptedOperatorPackage `json:"operatorPackages"`
	// Hex-encoded SHA256(preimage). Forward to the Lightning node.
	PaymentHash string `json:"paymentHash"`
}

type SparkPrepareTransferIntent

type SparkPrepareTransferIntent struct {
	// A Spark wallet account address identifying the wallet.
	SignWith string `json:"signWith"`
	// Transfer package parameters for HD key tweak splitting.
	Transfer SparkTransferPackage `json:"transfer"`
}

type SparkPrepareTransferRequest

type SparkPrepareTransferRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A Spark wallet account address identifying the wallet.
	SignWith string `json:"signWith"`
	// Transfer package parameters for HD key tweak splitting.
	Transfer SparkTransferPackage `json:"transfer"`
}

func (SparkPrepareTransferRequest) ActivityType

func (SparkPrepareTransferRequest) ActivityType() string

type SparkPrepareTransferResponse

type SparkPrepareTransferResponse struct {
	Activity Activity `json:"activity"`
	SparkPrepareTransferResult
}

type SparkPrepareTransferResult

type SparkPrepareTransferResult struct {
	// Newly-derived SigningLeaf public keys, one per leaf, in input order.
	NewLeafPublicKeys []SparkLeafPublicKey `json:"newLeafPublicKeys"`
	// Per-operator ECIES-encrypted packages.
	OperatorPackages []SparkEncryptedOperatorPackage `json:"operatorPackages"`
	// Hex-encoded ECDSA-DER signature of the TransferPackage signing payload, signed with the wallet's IDENTITY key.
	TransferUserSignature string `json:"transferUserSignature"`
}

type SparkSignFrostIntent

type SparkSignFrostIntent struct {
	// A Spark wallet account address identifying the wallet to sign with.
	SignWith string `json:"signWith"`
	// Batched sign requests. Each produces a partial signature plus Turnkey's public commitments.
	Signatures []SparkSignatureRequest `json:"signatures"`
}

type SparkSignFrostRequest

type SparkSignFrostRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A Spark wallet account address identifying the wallet to sign with.
	SignWith string `json:"signWith"`
	// Batched sign requests. Each produces a partial signature plus Turnkey's public commitments.
	Signatures []SparkSignatureRequest `json:"signatures"`
}

func (SparkSignFrostRequest) ActivityType

func (SparkSignFrostRequest) ActivityType() string

type SparkSignFrostResponse

type SparkSignFrostResponse struct {
	Activity Activity `json:"activity"`
	SparkSignFrostResult
}

type SparkSignFrostResult

type SparkSignFrostResult struct {
	// Partial signatures plus Turnkey commitments, one per request, in order.
	Signatures []SparkPartialSignature `json:"signatures"`
}

type SparkSignatureRequest

type SparkSignatureRequest struct {
	// Optional adaptor point T (hex-encoded 33-byte compressed secp256k1 pubkey). When set, Turnkey produces a Schnorr adaptor pre-signature with the FROST challenge bound to `R+T` (where `R` is the aggregate group nonce commitment from FROST). The party holding the discrete log `t` completes the pre-sig to a valid BIP-340 signature by adding `t` (or `-t`, for parity) to the signature scalar `s`. This is primarily used by Spark leaves-swap and other adaptor-bound flows; absent or empty leads to plain FROST signing (the typical case).
	AdaptorPublicKey *string `json:"adaptorPublicKey,omitempty"`
	// Which key to sign with.
	Derivation SparkKeyDerivation `json:"derivation"`
	// Hex-encoded 32-byte sighash to sign.
	Message string `json:"message"`
	// Commitments for every non-Turnkey participant. MUST NOT include an entry under Turnkey's identifier. Bound into the nonce HMAC.
	OperatorCommitments []SparkFrostCommitment `json:"operatorCommitments"`
	// Aggregate group verifying key (hex-encoded compressed secp256k1 point), computed as P_ops + P_user. Bound into the nonce HMAC.
	VerifyingKey string `json:"verifyingKey"`
}

type SparkSigningLeafDerivation

type SparkSigningLeafDerivation struct {
	// Unique identifier for the Spark signing leaf.
	LeafID string `json:"leafId"`
}

type SparkStaticDepositDerivation

type SparkStaticDepositDerivation struct {
	// Index used to derive the static deposit key.
	Index int64 `json:"index"`
}

type SparkTransferLeaf

type SparkTransferLeaf struct {
	// Client-produced direct-from-CPFP refund signature (hex-encoded). Passed through verbatim.
	DirectFromCpfpRefundSignature *string `json:"directFromCpfpRefundSignature,omitempty"`
	// Client-produced direct refund signature (hex-encoded). Passed through verbatim.
	DirectRefundSignature *string `json:"directRefundSignature,omitempty"`
	// Leaf identifier (UUID).
	LeafID string `json:"leafId"`
	// Derivation for the new (post-transfer) leaf key. Always a SigningLeaf derivation. The enclave ECIES-encrypts this private key to receiver_public_key as the per-leaf secret_cipher; HD-derived rather than random so the sender can re-derive on retry (Turnkey's enclave is stateless).
	NewLeafDerivation SparkKeyDerivation `json:"newLeafDerivation"`
	// Derivation for the existing (pre-transfer) leaf key. Always a SigningLeaf derivation.
	OldLeafDerivation SparkKeyDerivation `json:"oldLeafDerivation"`
	// Client-produced CPFP refund signature (hex-encoded), passed through verbatim into the per-operator SendLeafKeyTweak. Empty omits the field from the operator package.
	RefundSignature *string `json:"refundSignature,omitempty"`
}

type SparkTransferPackage

type SparkTransferPackage struct {
	// Leaves being transferred.
	Leaves []SparkTransferLeaf `json:"leaves"`
	// Operators that will receive Feldman shares of the per-leaf tweak. Order must match the operators' numeric IDs in the Spark operator config - share index is the 1-based position in this list.
	OperatorRecipients []SparkOperatorRecipient `json:"operatorRecipients"`
	// Recipient's identity pubkey (hex-encoded compressed secp256k1 point). Each leaf's new_priv is ECIES-encrypted to this key and embedded in the per-operator package for claim-time delivery.
	ReceiverPublicKey string `json:"receiverPublicKey"`
	// Feldman VSS threshold for reconstructing the per-leaf tweak scalar.
	Threshold int64 `json:"threshold"`
	// Spark transfer identifier (UUID).
	TransferID string `json:"transferId"`
}

type Stamp

type Stamp struct {
	HeaderName  string
	HeaderValue string
}

Stamp holds the HTTP header name and value used to authenticate a Turnkey request.

type StampLoginIntent

type StampLoginIntent struct {
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
}

type StampLoginRequest

type StampLoginRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// Invalidate all other previously generated Login API keys
	InvalidateExisting *bool `json:"invalidateExisting,omitempty"`
	// Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
	PublicKey string `json:"publicKey"`
	// Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used.
	SessionProfileID *string `json:"sessionProfileId,omitempty"`
}

func (StampLoginRequest) ActivityType

func (StampLoginRequest) ActivityType() string

type StampLoginResponse

type StampLoginResponse struct {
	Activity Activity `json:"activity"`
	StampLoginResult
}

type StampLoginResult

type StampLoginResult struct {
	// Signed JWT containing an expiry, public key, session type, user id, and organization id
	Session string `json:"session"`
}

type Stamper

type Stamper interface {
	Stamp(ctx context.Context, body []byte) (*Stamp, error)
}

Stamper signs request bodies for Turnkey authentication.

type TVCApp

type TVCApp struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Whether this app permits debug-mode deployments. Set at app creation via CreateTvcAppIntent.enable_debug_mode_deployments and never updated thereafter. Debug-mode deployments expose logs and emit zero'd attestation PCRs, so remote attestation cannot succeed. The app's quorum key is therefore considered permanently insecure once enabled — a new app with a fresh quorum key must be created to return to a secure posture.
	EnableDebugModeDeployments bool `json:"enableDebugModeDeployments"`
	// Whether or not this TVC App has network egress enabled.
	EnableEgress bool `json:"enableEgress"`
	// Unique Identifier for this TVC App.
	ID string `json:"id"`
	// The deployment currently designated to receive traffic. Null if no deployment for this app is deployed.
	LiveDeploymentID *string `json:"liveDeploymentId,omitempty"`
	// Manifest Set (people who can approve manifests)
	ManifestSet TVCOperatorSet `json:"manifestSet"`
	// Name for this TVC App.
	Name string `json:"name"`
	// Unique Identifier of the Organization for this TVC App
	OrganizationID string `json:"organizationId"`
	// The public domain for ingress to this TVC App (in the format "app-<ID>.turnkey.cloud").
	PublicDomain string `json:"publicDomain"`
	// Public key for the Quorum Key associated with this TVC App
	QuorumPublicKey string `json:"quorumPublicKey"`
	// Share Set (people who have a share of the Quorum Key)
	ShareSet  TVCOperatorSet          `json:"shareSet"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type TVCContainerSpec

type TVCContainerSpec struct {
	// The arguments to pass to the executable.
	Args []string `json:"args"`
	// The URL for this container image.
	ContainerURL string `json:"containerUrl"`
	// Whether or not this container requires a pull secret to access.
	HasPullSecret bool `json:"hasPullSecret"`
	// The port to use for health checks against this executable.
	HealthCheckPort int64 `json:"healthCheckPort"`
	// The type of health check to perform against this executable.
	HealthCheckType TVCHealthCheckType `json:"healthCheckType"`
	// The path (in-container) to the executable binary.
	Path string `json:"path"`
	// The port to use for public ingress to this executable.
	PublicIngressPort int64 `json:"publicIngressPort"`
}

type TVCDeployment

type TVCDeployment struct {
	// Unique Identifier of the TVC App for this deployment
	AppID     string                  `json:"appId"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Whether this deployment is running in debug mode. Debug-mode deployments expose enclave logs and cannot be remotely attested.
	DebugMode bool `json:"debugMode"`
	// Whether or not the user wants this deployment deleted from the cluster.
	Delete bool `json:"delete"`
	// Unique Identifier for this TVC Deployment.
	ID string `json:"id"`
	// The manifest used for this deployment
	Manifest TVCManifest `json:"manifest"`
	// List of operator approvals for this manifest
	ManifestApprovals []TVCOperatorApproval `json:"manifestApprovals"`
	// Set of TVC operators who can approve this deployment
	ManifestSet TVCOperatorSet `json:"manifestSet"`
	// Unique Identifier of the Organization for this TVC Deployment
	OrganizationID string `json:"organizationId"`
	// The pivot container spec for this deployment
	PivotContainer TVCContainerSpec `json:"pivotContainer"`
	// QOS Version used for this deployment
	QosVersion string `json:"qosVersion"`
	// Set of TVC operators who have a share of the Quorum Key
	ShareSet  TVCOperatorSet          `json:"shareSet"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type TVCDeploymentDebugLogEntry

type TVCDeploymentDebugLogEntry struct {
	// Application log line with its platform timestamp.
	Line LogLine `json:"line"`
	// Public replica label that produced this log line, for example 'replica 2/3'.
	ReplicaLabel string `json:"replicaLabel"`
}

type TVCHealthCheckType

type TVCHealthCheckType string
const (
	TVCHealthCheckTypeHTTP TVCHealthCheckType = "TVC_HEALTH_CHECK_TYPE_HTTP"
	TVCHealthCheckTypeGrpc TVCHealthCheckType = "TVC_HEALTH_CHECK_TYPE_GRPC"
)

type TVCManifest

type TVCManifest struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Unique Identifier for this TVC Manifest.
	ID string `json:"id"`
	// The manifest content (raw UTF-8 JSON bytes)
	Manifest  string                  `json:"manifest"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type TVCManifestApproval

type TVCManifestApproval struct {
	// Unique identifier of the operator providing this approval
	OperatorID string `json:"operatorId"`
	// Signature from the operator approving the manifest
	Signature string `json:"signature"`
}

type TVCOperator

type TVCOperator struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Unique Identifier for this TVC Operator.
	ID string `json:"id"`
	// Name of this TVC Operator.
	Name string `json:"name"`
	// Public key for this TVC Operator.
	PublicKey string                  `json:"publicKey"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type TVCOperatorApproval

type TVCOperatorApproval struct {
	// Signature of the operator over the deployment manifest
	Approval  string                  `json:"approval"`
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Unique ID for this approval
	ID string `json:"id"`
	// Unique Identifier of the TVC Manifest being approved
	ManifestID string `json:"manifestId"`
	// The TVC Operator who made this approval
	Operator  TVCOperator             `json:"operator"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type TVCOperatorParams

type TVCOperatorParams struct {
	// The name for this new operator
	Name string `json:"name"`
	// Public key for this operator
	PublicKey string `json:"publicKey"`
}

type TVCOperatorSet

type TVCOperatorSet struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// Unique Identifier for this TVC Operator Set.
	ID string `json:"id"`
	// Name of this TVC Operator Set.
	Name string `json:"name"`
	// List of TVC Operators in this set
	Operators []TVCOperator `json:"operators"`
	// Unique Identifier of the Organization for this TVC Operator Set
	OrganizationID string `json:"organizationId"`
	// Threshold number of operators required for quorum.
	Threshold int64                   `json:"threshold"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
}

type TVCOperatorSetParams

type TVCOperatorSetParams struct {
	// Existing operators to use as part of this new operator set
	ExistingOperatorIds []string `json:"existingOperatorIds,omitempty"`
	// Short description for this new operator set
	Name string `json:"name"`
	// Operators to create as part of this new operator set
	NewOperators []TVCOperatorParams `json:"newOperators,omitempty"`
	// The threshold of operators needed to reach consensus in this new Operator Set
	Threshold int64 `json:"threshold"`
}

type TagType

type TagType string
const (
	TagTypeUser       TagType = "TAG_TYPE_USER"
	TagTypePrivateKey TagType = "TAG_TYPE_PRIVATE_KEY"
)

type TokenUsage

type TokenUsage struct {
	Login    *LoginUsage    `json:"login,omitempty"`
	Signup   *SignupUsage   `json:"signup,omitempty"`
	SignupV2 *SignupUsageV2 `json:"signupV2,omitempty"`
	// Unique identifier for the verification token
	TokenID string `json:"tokenId"`
	// Type of token usage
	TypeValue UsageType `json:"type"`
}

type TransactionType

type TransactionType string
const (
	TransactionTypeEthereum TransactionType = "TRANSACTION_TYPE_ETHEREUM"
	TransactionTypeSolana   TransactionType = "TRANSACTION_TYPE_SOLANA"
	TransactionTypeTron     TransactionType = "TRANSACTION_TYPE_TRON"
	TransactionTypeBitcoin  TransactionType = "TRANSACTION_TYPE_BITCOIN"
	TransactionTypeTempo    TransactionType = "TRANSACTION_TYPE_TEMPO"
)

type TxError

type TxError struct {
	// Ethereum-specific failure details, if available.
	ETH *ETHFailureDetails `json:"eth,omitempty"`
	// Human-readable error message describing what went wrong.
	Message *string `json:"message,omitempty"`
	// Chain of revert errors from nested contract calls, ordered from outermost to innermost.
	RevertChain []RevertChainEntry `json:"revertChain,omitempty"`
	// Solana-specific failure details for simulation or preflight errors, if available.
	Solana *SolanaFailureDetails `json:"solana,omitempty"`
}

type UnknownRevertError

type UnknownRevertError struct {
	// The raw error data, hex-encoded.
	Data *string `json:"data,omitempty"`
	// The 4-byte error selector, if available.
	Selector *string `json:"selector,omitempty"`
}

type UpdateAllowedOriginsIntent

type UpdateAllowedOriginsIntent struct {
	// Additional origins requests are allowed from besides Turnkey origins
	AllowedOrigins []string `json:"allowedOrigins"`
}

type UpdateAllowedOriginsResult

type UpdateAllowedOriginsResult map[string]any

type UpdateAuthProxyConfigIntent

type UpdateAuthProxyConfigIntent struct {
	// Updated list of allowed proxy authentication methods.
	AllowedAuthMethods []string `json:"allowedAuthMethods,omitempty"`
	// Updated list of allowed origins for CORS.
	AllowedOrigins []string `json:"allowedOrigins,omitempty"`
	// Template ID for email-auth messages.
	EmailAuthTemplateID *string `json:"emailAuthTemplateId,omitempty"`
	// Optional parameters for customizing emails. If not provided, the default email will be used.
	EmailCustomizationParams *EmailCustomizationParams `json:"emailCustomizationParams,omitempty"`
	// Enable alphanumeric OTP codes.
	OTPAlphanumeric *bool `json:"otpAlphanumeric,omitempty"`
	// OTP code lifetime in seconds.
	OTPExpirationSeconds *int `json:"otpExpirationSeconds,omitempty"`
	// Desired OTP code length (6–9).
	OTPLength *int `json:"otpLength,omitempty"`
	// Template ID for OTP SMS messages.
	OTPTemplateID *string `json:"otpTemplateId,omitempty"`
	// Custom reply-to address for auth-related emails.
	ReplyToEmailAddress *string `json:"replyToEmailAddress,omitempty"`
	// Custom 'from' address for auth-related emails.
	SendFromEmailAddress *string `json:"sendFromEmailAddress,omitempty"`
	// Custom 'from' email sender for auth-related emails.
	SendFromEmailSenderName *string `json:"sendFromEmailSenderName,omitempty"`
	// Session lifetime in seconds.
	SessionExpirationSeconds *int `json:"sessionExpirationSeconds,omitempty"`
	// Overrides for auth-related SMS content.
	SmsCustomizationParams *SmsCustomizationParams `json:"smsCustomizationParams,omitempty"`
	// Whitelisted OAuth client IDs for social account linking. When a user authenticates via a social provider with an email matching an existing account, the accounts will be linked if the client ID is in this list and the issuer is considered a trusted provider.
	SocialLinkingClientIds []string `json:"socialLinkingClientIds,omitempty"`
	// Verification-token lifetime in seconds.
	VerificationTokenExpirationSeconds *int `json:"verificationTokenExpirationSeconds,omitempty"`
	// Verification token required for get account with PII (email/phone number). Default false.
	VerificationTokenRequiredForGetAccountPii *bool `json:"verificationTokenRequiredForGetAccountPii,omitempty"`
	// Overrides for react wallet kit related settings.
	WalletKitSettings *WalletKitSettingsParams `json:"walletKitSettings,omitempty"`
}

type UpdateAuthProxyConfigResult

type UpdateAuthProxyConfigResult struct {
	// Unique identifier for a given User. (representing the turnkey signer user id)
	ConfigID *string `json:"configId,omitempty"`
}

type UpdateFiatOnRampCredentialIntent

type UpdateFiatOnRampCredentialIntent struct {
	// Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
	EncryptedPrivateAPIKey *string `json:"encryptedPrivateApiKey,omitempty"`
	// Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
	EncryptedSecretAPIKey string `json:"encryptedSecretApiKey"`
	// The ID of the fiat on-ramp credential to update
	FiatOnrampCredentialID string `json:"fiatOnrampCredentialId"`
	// The fiat on-ramp provider
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
	ProjectID *string `json:"projectId,omitempty"`
	// Publishable API key for the on-ramp provider
	PublishableAPIKey string `json:"publishableApiKey"`
}

type UpdateFiatOnRampCredentialRequest

type UpdateFiatOnRampCredentialRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
	EncryptedPrivateAPIKey *string `json:"encryptedPrivateApiKey,omitempty"`
	// Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
	EncryptedSecretAPIKey string `json:"encryptedSecretApiKey"`
	// The ID of the fiat on-ramp credential to update
	FiatOnrampCredentialID string `json:"fiatOnrampCredentialId"`
	// The fiat on-ramp provider
	OnrampProvider FiatOnRampProvider `json:"onrampProvider"`
	// Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
	ProjectID *string `json:"projectId,omitempty"`
	// Publishable API key for the on-ramp provider
	PublishableAPIKey string `json:"publishableApiKey"`
}

func (UpdateFiatOnRampCredentialRequest) ActivityType

type UpdateFiatOnRampCredentialResponse

type UpdateFiatOnRampCredentialResponse struct {
	Activity Activity `json:"activity"`
	UpdateFiatOnRampCredentialResult
}

type UpdateFiatOnRampCredentialResult

type UpdateFiatOnRampCredentialResult struct {
	// Unique identifier of the Fiat On-Ramp credential that was updated
	FiatOnRampCredentialID string `json:"fiatOnRampCredentialId"`
}

type UpdateMfaPolicyIntent

type UpdateMfaPolicyIntent struct {
	// A condition expression that evaluates to true or false, determining when this MFA policy applies.
	Condition *string `json:"condition,omitempty"`
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// Human-readable name for a Policy.
	MfaPolicyName *string `json:"mfaPolicyName,omitempty"`
	// Notes for an MFA Policy.
	Notes *string `json:"notes,omitempty"`
	// The order in which this MFA policy is evaluated, starting from 0, relative to other MFA policies. Lower order values are evaluated first.
	Order *int64 `json:"order,omitempty"`
	// An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA.
	RequiredAuthenticationMethods []RequiredAuthenticationMethodParams `json:"requiredAuthenticationMethods,omitempty"`
	// The ID of the User to update the MFA Policy for.
	UserID string `json:"userId"`
}

type UpdateMfaPolicyRequest

type UpdateMfaPolicyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A condition expression that evaluates to true or false, determining when this MFA policy applies.
	Condition *string `json:"condition,omitempty"`
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
	// Human-readable name for a Policy.
	MfaPolicyName *string `json:"mfaPolicyName,omitempty"`
	// Notes for an MFA Policy.
	Notes *string `json:"notes,omitempty"`
	// The order in which this MFA policy is evaluated, starting from 0, relative to other MFA policies. Lower order values are evaluated first.
	Order *int64 `json:"order,omitempty"`
	// An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA.
	RequiredAuthenticationMethods []RequiredAuthenticationMethodParams `json:"requiredAuthenticationMethods,omitempty"`
	// The ID of the User to update the MFA Policy for.
	UserID string `json:"userId"`
}

func (UpdateMfaPolicyRequest) ActivityType

func (UpdateMfaPolicyRequest) ActivityType() string

type UpdateMfaPolicyResponse

type UpdateMfaPolicyResponse struct {
	Activity Activity `json:"activity"`
	UpdateMfaPolicyResult
}

type UpdateMfaPolicyResult

type UpdateMfaPolicyResult struct {
	// Unique identifier for a given MFA Policy.
	MfaPolicyID string `json:"mfaPolicyId"`
}

type UpdateOAuth2CredentialIntent

type UpdateOAuth2CredentialIntent struct {
	// The Client ID issued by the OAuth 2.0 provider
	ClientID string `json:"clientId"`
	// The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
	EncryptedClientSecret string `json:"encryptedClientSecret"`
	// The ID of the OAuth 2.0 credential to update
	OAuth2CredentialID string `json:"oauth2CredentialId"`
	// The OAuth 2.0 provider
	Provider OAuth2Provider `json:"provider"`
}

type UpdateOAuth2CredentialRequest

type UpdateOAuth2CredentialRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The Client ID issued by the OAuth 2.0 provider
	ClientID string `json:"clientId"`
	// The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
	EncryptedClientSecret string `json:"encryptedClientSecret"`
	// The ID of the OAuth 2.0 credential to update
	OAuth2CredentialID string `json:"oauth2CredentialId"`
	// The OAuth 2.0 provider
	Provider OAuth2Provider `json:"provider"`
}

func (UpdateOAuth2CredentialRequest) ActivityType

func (UpdateOAuth2CredentialRequest) ActivityType() string

type UpdateOAuth2CredentialResponse

type UpdateOAuth2CredentialResponse struct {
	Activity Activity `json:"activity"`
	UpdateOAuth2CredentialResult
}

type UpdateOAuth2CredentialResult

type UpdateOAuth2CredentialResult struct {
	// Unique identifier of the OAuth 2.0 credential that was updated
	OAuth2CredentialID string `json:"oauth2CredentialId"`
}

type UpdateOrganizationNameIntent

type UpdateOrganizationNameIntent struct {
	// New name for the Organization.
	OrganizationName string `json:"organizationName"`
}

type UpdateOrganizationNameRequest

type UpdateOrganizationNameRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// New name for the Organization.
	OrganizationName string `json:"organizationName"`
}

func (UpdateOrganizationNameRequest) ActivityType

func (UpdateOrganizationNameRequest) ActivityType() string

type UpdateOrganizationNameResponse

type UpdateOrganizationNameResponse struct {
	Activity Activity `json:"activity"`
	UpdateOrganizationNameResult
}

type UpdateOrganizationNameResult

type UpdateOrganizationNameResult struct {
	// Unique identifier for the Organization.
	OrganizationID string `json:"organizationId"`
	// The updated organization name.
	OrganizationName string `json:"organizationName"`
}

type UpdatePolicyIntent

type UpdatePolicyIntent struct {
	// The condition expression that triggers the Effect (optional).
	PolicyCondition *string `json:"policyCondition,omitempty"`
	// The consensus expression that triggers the Effect (optional).
	PolicyConsensus *string `json:"policyConsensus,omitempty"`
	// The instruction to DENY or ALLOW an activity (optional).
	PolicyEffect *Effect `json:"policyEffect,omitempty"`
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
	// Human-readable name for a Policy.
	PolicyName *string `json:"policyName,omitempty"`
	// Accompanying notes for a Policy (optional).
	PolicyNotes *string `json:"policyNotes,omitempty"`
}

type UpdatePolicyIntentV2

type UpdatePolicyIntentV2 struct {
	// The condition expression that triggers the Effect (optional).
	PolicyCondition *string `json:"policyCondition,omitempty"`
	// The consensus expression that triggers the Effect (optional).
	PolicyConsensus *string `json:"policyConsensus,omitempty"`
	// The instruction to DENY or ALLOW an activity (optional).
	PolicyEffect *Effect `json:"policyEffect,omitempty"`
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
	// Human-readable name for a Policy.
	PolicyName *string `json:"policyName,omitempty"`
	// Accompanying notes for a Policy (optional).
	PolicyNotes *string `json:"policyNotes,omitempty"`
}

type UpdatePolicyRequest

type UpdatePolicyRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The condition expression that triggers the Effect (optional).
	PolicyCondition *string `json:"policyCondition,omitempty"`
	// The consensus expression that triggers the Effect (optional).
	PolicyConsensus *string `json:"policyConsensus,omitempty"`
	// The instruction to DENY or ALLOW an activity (optional).
	PolicyEffect *Effect `json:"policyEffect,omitempty"`
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
	// Human-readable name for a Policy.
	PolicyName *string `json:"policyName,omitempty"`
	// Accompanying notes for a Policy (optional).
	PolicyNotes *string `json:"policyNotes,omitempty"`
}

func (UpdatePolicyRequest) ActivityType

func (UpdatePolicyRequest) ActivityType() string

type UpdatePolicyResponse

type UpdatePolicyResponse struct {
	Activity Activity `json:"activity"`
	UpdatePolicyResultV2
}

type UpdatePolicyResult

type UpdatePolicyResult struct {
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
}

type UpdatePolicyResultV2

type UpdatePolicyResultV2 struct {
	// Unique identifier for a given Policy.
	PolicyID string `json:"policyId"`
}

type UpdatePrivateKeyTagIntent

type UpdatePrivateKeyTagIntent struct {
	// A list of Private Keys IDs to add this tag to.
	AddPrivateKeyIds []string `json:"addPrivateKeyIds"`
	// The new, human-readable name for the tag with the given ID.
	NewPrivateKeyTagName *string `json:"newPrivateKeyTagName,omitempty"`
	// Unique identifier for a given Private Key Tag.
	PrivateKeyTagID string `json:"privateKeyTagId"`
	// A list of Private Key IDs to remove this tag from.
	RemovePrivateKeyIds []string `json:"removePrivateKeyIds"`
}

type UpdatePrivateKeyTagRequest

type UpdatePrivateKeyTagRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of Private Keys IDs to add this tag to.
	AddPrivateKeyIds []string `json:"addPrivateKeyIds"`
	// The new, human-readable name for the tag with the given ID.
	NewPrivateKeyTagName *string `json:"newPrivateKeyTagName,omitempty"`
	// Unique identifier for a given Private Key Tag.
	PrivateKeyTagID string `json:"privateKeyTagId"`
	// A list of Private Key IDs to remove this tag from.
	RemovePrivateKeyIds []string `json:"removePrivateKeyIds"`
}

func (UpdatePrivateKeyTagRequest) ActivityType

func (UpdatePrivateKeyTagRequest) ActivityType() string

type UpdatePrivateKeyTagResponse

type UpdatePrivateKeyTagResponse struct {
	Activity Activity `json:"activity"`
	UpdatePrivateKeyTagResult
}

type UpdatePrivateKeyTagResult

type UpdatePrivateKeyTagResult struct {
	// Unique identifier for a given Private Key Tag.
	PrivateKeyTagID string `json:"privateKeyTagId"`
}

type UpdateRootQuorumIntent

type UpdateRootQuorumIntent struct {
	// The threshold of unique approvals to reach quorum.
	Threshold int `json:"threshold"`
	// The unique identifiers of users who comprise the quorum set.
	UserIds []string `json:"userIds"`
}

type UpdateRootQuorumRequest

type UpdateRootQuorumRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The threshold of unique approvals to reach quorum.
	Threshold int `json:"threshold"`
	// The unique identifiers of users who comprise the quorum set.
	UserIds []string `json:"userIds"`
}

func (UpdateRootQuorumRequest) ActivityType

func (UpdateRootQuorumRequest) ActivityType() string

type UpdateRootQuorumResponse

type UpdateRootQuorumResponse struct {
	Activity Activity `json:"activity"`
	UpdateRootQuorumResult
}

type UpdateRootQuorumResult

type UpdateRootQuorumResult map[string]any

type UpdateTVCAppLiveDeploymentIntent

type UpdateTVCAppLiveDeploymentIntent struct {
	// The unique identifier of the TVC deployment to set as live for the app.
	DeploymentID string `json:"deploymentId"`
}

type UpdateTVCAppLiveDeploymentRequest

type UpdateTVCAppLiveDeploymentRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The unique identifier of the TVC deployment to set as live for the app.
	DeploymentID string `json:"deploymentId"`
}

func (UpdateTVCAppLiveDeploymentRequest) ActivityType

type UpdateTVCAppLiveDeploymentResponse

type UpdateTVCAppLiveDeploymentResponse struct {
	Activity Activity `json:"activity"`
	UpdateTVCAppLiveDeploymentResult
}

type UpdateTVCAppLiveDeploymentResult

type UpdateTVCAppLiveDeploymentResult map[string]any

type UpdateUserEmailIntent

type UpdateUserEmailIntent struct {
	// The user's email address. Setting this to an empty string will remove the user's email.
	UserEmail string `json:"userEmail"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
}

type UpdateUserEmailRequest

type UpdateUserEmailRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The user's email address. Setting this to an empty string will remove the user's email.
	UserEmail string `json:"userEmail"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
}

func (UpdateUserEmailRequest) ActivityType

func (UpdateUserEmailRequest) ActivityType() string

type UpdateUserEmailResponse

type UpdateUserEmailResponse struct {
	Activity Activity `json:"activity"`
	UpdateUserEmailResult
}

type UpdateUserEmailResult

type UpdateUserEmailResult struct {
	// Unique identifier of the User whose email was updated.
	UserID string `json:"userId"`
}

type UpdateUserIntent

type UpdateUserIntent struct {
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	UserName *string `json:"userName,omitempty"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
	// An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.
	UserTagIds []string `json:"userTagIds"`
}

type UpdateUserNameIntent

type UpdateUserNameIntent struct {
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
}

type UpdateUserNameRequest

type UpdateUserNameRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
}

func (UpdateUserNameRequest) ActivityType

func (UpdateUserNameRequest) ActivityType() string

type UpdateUserNameResponse

type UpdateUserNameResponse struct {
	Activity Activity `json:"activity"`
	UpdateUserNameResult
}

type UpdateUserNameResult

type UpdateUserNameResult struct {
	// Unique identifier of the User whose name was updated.
	UserID string `json:"userId"`
}

type UpdateUserPhoneNumberIntent

type UpdateUserPhoneNumberIntent struct {
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.
	UserPhoneNumber string `json:"userPhoneNumber"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
}

type UpdateUserPhoneNumberRequest

type UpdateUserPhoneNumberRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.
	UserPhoneNumber string `json:"userPhoneNumber"`
	// Signed JWT containing a unique id, expiry, verification type, contact
	VerificationToken *string `json:"verificationToken,omitempty"`
}

func (UpdateUserPhoneNumberRequest) ActivityType

func (UpdateUserPhoneNumberRequest) ActivityType() string

type UpdateUserPhoneNumberResponse

type UpdateUserPhoneNumberResponse struct {
	Activity Activity `json:"activity"`
	UpdateUserPhoneNumberResult
}

type UpdateUserPhoneNumberResult

type UpdateUserPhoneNumberResult struct {
	// Unique identifier of the User whose phone number was updated.
	UserID string `json:"userId"`
}

type UpdateUserRequest

type UpdateUserRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	UserName *string `json:"userName,omitempty"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
	// An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.
	UserTagIds []string `json:"userTagIds"`
}

func (UpdateUserRequest) ActivityType

func (UpdateUserRequest) ActivityType() string

type UpdateUserResponse

type UpdateUserResponse struct {
	Activity Activity `json:"activity"`
	UpdateUserResult
}

type UpdateUserResult

type UpdateUserResult struct {
	// A User ID.
	UserID string `json:"userId"`
}

type UpdateUserTagIntent

type UpdateUserTagIntent struct {
	// A list of User IDs to add this tag to.
	AddUserIds []string `json:"addUserIds"`
	// The new, human-readable name for the tag with the given ID.
	NewUserTagName *string `json:"newUserTagName,omitempty"`
	// A list of User IDs to remove this tag from.
	RemoveUserIds []string `json:"removeUserIds"`
	// Unique identifier for a given User Tag.
	UserTagID string `json:"userTagId"`
}

type UpdateUserTagRequest

type UpdateUserTagRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// A list of User IDs to add this tag to.
	AddUserIds []string `json:"addUserIds"`
	// The new, human-readable name for the tag with the given ID.
	NewUserTagName *string `json:"newUserTagName,omitempty"`
	// A list of User IDs to remove this tag from.
	RemoveUserIds []string `json:"removeUserIds"`
	// Unique identifier for a given User Tag.
	UserTagID string `json:"userTagId"`
}

func (UpdateUserTagRequest) ActivityType

func (UpdateUserTagRequest) ActivityType() string

type UpdateUserTagResponse

type UpdateUserTagResponse struct {
	Activity Activity `json:"activity"`
	UpdateUserTagResult
}

type UpdateUserTagResult

type UpdateUserTagResult struct {
	// Unique identifier for a given User Tag.
	UserTagID string `json:"userTagId"`
}

type UpdateWalletIntent

type UpdateWalletIntent struct {
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
	// Human-readable name for a Wallet.
	WalletName *string `json:"walletName,omitempty"`
}

type UpdateWalletRequest

type UpdateWalletRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
	// Human-readable name for a Wallet.
	WalletName *string `json:"walletName,omitempty"`
}

func (UpdateWalletRequest) ActivityType

func (UpdateWalletRequest) ActivityType() string

type UpdateWalletResponse

type UpdateWalletResponse struct {
	Activity Activity `json:"activity"`
	UpdateWalletResult
}

type UpdateWalletResult

type UpdateWalletResult struct {
	// A Wallet ID.
	WalletID string `json:"walletId"`
}

type UpdateWebhookEndpointIntent

type UpdateWebhookEndpointIntent struct {
	// Unique identifier of the webhook endpoint to update.
	EndpointID string `json:"endpointId"`
	// Whether this webhook endpoint is active.
	IsActive *bool `json:"isActive,omitempty"`
	// Updated human-readable name for this webhook endpoint.
	Name *string `json:"name,omitempty"`
	// Updated destination URL for webhook delivery.
	URL *string `json:"url,omitempty"`
}

type UpdateWebhookEndpointRequest

type UpdateWebhookEndpointRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Unique identifier of the webhook endpoint to update.
	EndpointID string `json:"endpointId"`
	// Whether this webhook endpoint is active.
	IsActive *bool `json:"isActive,omitempty"`
	// Updated human-readable name for this webhook endpoint.
	Name *string `json:"name,omitempty"`
	// Updated destination URL for webhook delivery.
	URL *string `json:"url,omitempty"`
}

func (UpdateWebhookEndpointRequest) ActivityType

func (UpdateWebhookEndpointRequest) ActivityType() string

type UpdateWebhookEndpointResponse

type UpdateWebhookEndpointResponse struct {
	Activity Activity `json:"activity"`
	UpdateWebhookEndpointResult
}

type UpdateWebhookEndpointResult

type UpdateWebhookEndpointResult struct {
	// Unique identifier of the updated webhook endpoint.
	EndpointID string `json:"endpointId"`
	// The updated webhook endpoint data.
	WebhookEndpoint WebhookEndpointData `json:"webhookEndpoint"`
}

type UpsertEarnClientFeeConfigIntent

type UpsertEarnClientFeeConfigIntent struct {
	// Your performance fee on gross yield, in basis points (e.g., '2000' for 20%). Your fee plus Turnkey's fee cannot exceed 50% of yield.
	ClientFeeBps string `json:"clientFeeBps"`
	// The wallet address that receives the client's fee payouts on-chain. Must be a Turnkey-managed wallet address.
	ClientFeeWallet string `json:"clientFeeWallet"`
}

type UpsertEarnClientFeeConfigResult

type UpsertEarnClientFeeConfigResult struct {
	// Async tracking ID for the fee-config update (which redeploys the org's wrappers); poll EarnClientFeeConfigStatus for status.
	ConfigUpdateRequestID string `json:"configUpdateRequestId"`
}

type UpsertGasUsageConfigIntent

type UpsertGasUsageConfigIntent struct {
	// Whether gas sponsorship is enabled for the organization.
	Enabled *bool `json:"enabled,omitempty"`
	// Gas sponsorship USD limit for the billing organization window.
	OrgWindowLimitUsd string `json:"orgWindowLimitUsd"`
	// Optional Solana sponsorship settings. If omitted, the existing Solana sponsorship state is left unchanged.
	SolanaConfig *SolanaConfig `json:"solanaConfig,omitempty"`
	// Gas sponsorship USD limit for sub-organizations under the billing organization.
	SubOrgWindowLimitUsd string `json:"subOrgWindowLimitUsd"`
	// Rolling sponsorship window duration, expressed in minutes. This value can't exceed 30 days (43200 minutes).
	WindowDurationMinutes string `json:"windowDurationMinutes"`
}

type UpsertGasUsageConfigResult

type UpsertGasUsageConfigResult struct {
	// Unique identifier for the gas usage configuration that was created or updated.
	GasUsageConfigID string `json:"gasUsageConfigId"`
}

type UpsertSwapConfigIntent

type UpsertSwapConfigIntent struct {
	FeeBps                   *string `json:"feeBps,omitempty"`
	FeeReceiverWalletAddress *string `json:"feeReceiverWalletAddress,omitempty"`
	Provider                 *string `json:"provider,omitempty"`
}

type UpsertSwapConfigResult

type UpsertSwapConfigResult struct {
	FeeBps                   *string `json:"feeBps,omitempty"`
	FeeReceiverWalletAddress *string `json:"feeReceiverWalletAddress,omitempty"`
}

type UsageType

type UsageType string
const (
	UsageTypeSignup UsageType = "USAGE_TYPE_SIGNUP"
	UsageTypeLogin  UsageType = "USAGE_TYPE_LOGIN"
)

type User

type User struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKey `json:"apiKeys"`
	// A list of Authenticator parameters.
	Authenticators []Authenticator         `json:"authenticators"`
	CreatedAt      ExternalDataV1Timestamp `json:"createdAt"`
	// A list of MFA Policies that define multi-factor authentication requirements for this user.
	MfaPolicies []MfaPolicy `json:"mfaPolicies"`
	// A list of Oauth Providers.
	OAuthProviders []OAuthProvider         `json:"oauthProviders"`
	UpdatedAt      ExternalDataV1Timestamp `json:"updatedAt"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
	// A list of User Tag IDs.
	UserTags []string `json:"userTags"`
}

type UserParams

type UserParams struct {
	// The User's permissible access method(s).
	AccessType AccessType `json:"accessType"`
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParams `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParams `json:"authenticators"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
	UserTags []string `json:"userTags"`
}

type UserParamsV2

type UserParamsV2 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParams `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
	UserTags []string `json:"userTags"`
}

type UserParamsV3

type UserParamsV3 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders []OAuthProviderParams `json:"oauthProviders"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
	// A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
	UserTags []string `json:"userTags"`
}

type UserParamsV4

type UserParamsV4 struct {
	// A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
	APIKeys []APIKeyParamsV2 `json:"apiKeys"`
	// A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
	Authenticators []AuthenticatorParamsV2 `json:"authenticators"`
	// A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
	OAuthProviders []OAuthProviderParamsV2 `json:"oauthProviders"`
	// The user's email address.
	UserEmail *string `json:"userEmail,omitempty"`
	// Human-readable name for a User.
	UserName string `json:"userName"`
	// The user's phone number in E.164 format e.g. +13214567890
	UserPhoneNumber *string `json:"userPhoneNumber,omitempty"`
	// A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
	UserTags []string `json:"userTags"`
}

type ValidateTVCImageRequest

type ValidateTVCImageRequest struct {
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
	// HPKE-encrypted pull secret for private images.
	PivotContainerEncryptedPullSecret *string `json:"pivotContainerEncryptedPullSecret,omitempty"`
	// URL of the container image.
	PivotContainerImageURL string `json:"pivotContainerImageUrl"`
}

type ValidateTVCImageResponse

type ValidateTVCImageResponse struct {
	ResolvedImageDigest *string `json:"resolvedImageDigest,omitempty"`
}

type VerifyOTPIntent

type VerifyOTPIntent struct {
	// Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// OTP sent out to a user's contact (email or SMS)
	OTPCode string `json:"otpCode"`
	// ID representing the result of an init OTP activity.
	OTPID string `json:"otpId"`
	// Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature
	PublicKey *string `json:"publicKey,omitempty"`
}

type VerifyOTPIntentV2

type VerifyOTPIntentV2 struct {
	// Encrypted bundle containing the OTP code and a client-generated public key. Turnkey's secure enclaves will decrypt this bundle, verify the OTP code, and issue a new Verification Token. Encrypted using the target encryption key provided in the INIT_OTP activity result.
	EncryptedOTPBundle string `json:"encryptedOtpBundle"`
	// Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// UUID representing an OTP flow. A new UUID is created for each init OTP activity.
	OTPID string `json:"otpId"`
}

type VerifyOTPRequest

type VerifyOTPRequest struct {
	// OrganizationID defaults to the client's organization ID. Override only when targeting a sub-organization.
	OrganizationID string `json:"organizationId,omitempty"`
	// TimestampMs is set automatically to the current time. Override only if you need a specific timestamp.
	TimestampMs string `json:"timestampMs,omitempty"`
	// Encrypted bundle containing the OTP code and a client-generated public key. Turnkey's secure enclaves will decrypt this bundle, verify the OTP code, and issue a new Verification Token. Encrypted using the target encryption key provided in the INIT_OTP activity result.
	EncryptedOTPBundle string `json:"encryptedOtpBundle"`
	// Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
	ExpirationSeconds *string `json:"expirationSeconds,omitempty"`
	// UUID representing an OTP flow. A new UUID is created for each init OTP activity.
	OTPID string `json:"otpId"`
}

func (VerifyOTPRequest) ActivityType

func (VerifyOTPRequest) ActivityType() string

type VerifyOTPResponse

type VerifyOTPResponse struct {
	Activity Activity `json:"activity"`
	VerifyOTPResult
}

type VerifyOTPResult

type VerifyOTPResult struct {
	// Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP_LOGIN requests)
	VerificationToken string `json:"verificationToken"`
}

type Vote

type Vote struct {
	// Unique identifier for a given Activity object.
	ActivityID string                  `json:"activityId"`
	CreatedAt  ExternalDataV1Timestamp `json:"createdAt"`
	// Unique identifier for a given Vote object.
	ID string `json:"id"`
	// The raw message being signed within a Vote.
	Message string `json:"message"`
	// The public component of a cryptographic key pair used to sign messages and transactions.
	PublicKey string `json:"publicKey"`
	// Method used to produce a signature.
	Scheme    string `json:"scheme"`
	Selection string `json:"selection"`
	// The signature applied to a particular vote.
	Signature string `json:"signature"`
	// Web and/or API user within your Organization.
	User User `json:"user"`
	// Unique identifier for a given User.
	UserID string `json:"userId"`
}

type Wallet

type Wallet struct {
	CreatedAt ExternalDataV1Timestamp `json:"createdAt"`
	// True when a given Wallet is exported, false otherwise.
	Exported bool `json:"exported"`
	// True when a given Wallet is imported, false otherwise.
	Imported  bool                    `json:"imported"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
	// Unique identifier for a given Wallet.
	WalletID string `json:"walletId"`
	// Human-readable name for a Wallet.
	WalletName string `json:"walletName"`
}

type WalletAccount

type WalletAccount struct {
	// Address generated using the Wallet seed and Account parameters.
	Address string `json:"address"`
	// Address format used to generate the Account.
	AddressFormat AddressFormat           `json:"addressFormat"`
	CreatedAt     ExternalDataV1Timestamp `json:"createdAt"`
	// Cryptographic curve used to generate the Account.
	Curve Curve `json:"curve"`
	// Human-readable name for this Wallet Account, unique within the organization.
	Name *string `json:"name,omitempty"`
	// The Organization the Account belongs to.
	OrganizationID string `json:"organizationId"`
	// Path used to generate the Account.
	Path string `json:"path"`
	// Path format used to generate the Account.
	PathFormat PathFormat `json:"pathFormat"`
	// The public component of this wallet account's underlying cryptographic key pair.
	PublicKey *string                 `json:"publicKey,omitempty"`
	UpdatedAt ExternalDataV1Timestamp `json:"updatedAt"`
	// Unique identifier for a given Wallet Account.
	WalletAccountID string `json:"walletAccountId"`
	// Wallet details for this account. This is only present when include_wallet_details=true.
	WalletDetails *Wallet `json:"walletDetails,omitempty"`
	// The Wallet the Account was derived from.
	WalletID string `json:"walletId"`
}

type WalletAccountParams

type WalletAccountParams struct {
	// Address format used to generate a wallet Acccount.
	AddressFormat AddressFormat `json:"addressFormat"`
	// Cryptographic curve used to generate a wallet Account.
	Curve Curve `json:"curve"`
	// Optional human-readable name for the account.
	Name *string `json:"name,omitempty"`
	// Path used to generate a wallet Account.
	Path string `json:"path"`
	// Path format used to generate a wallet Account.
	PathFormat PathFormat `json:"pathFormat"`
}

type WalletKitSettingsParams

type WalletKitSettingsParams struct {
	// List of enabled social login providers (e.g., 'apple', 'google', 'facebook')
	EnabledSocialProviders []string `json:"enabledSocialProviders,omitempty"`
	// Mapping of social login providers to their Oauth client IDs.
	OAuthClientIds map[string]any `json:"oauthClientIds,omitempty"`
	// Oauth redirect URL to be used for social login flows.
	OAuthRedirectURL *string `json:"oauthRedirectUrl,omitempty"`
}

type WalletParams

type WalletParams struct {
	// A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
	Accounts []WalletAccountParams `json:"accounts"`
	// Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
	MnemonicLength *int `json:"mnemonicLength,omitempty"`
	// Human-readable name for a Wallet.
	WalletName string `json:"walletName"`
}

type WalletResult

type WalletResult struct {
	// A list of account addresses.
	Addresses []string `json:"addresses"`
	WalletID  string   `json:"walletId"`
}

type WebAuthnStamp

type WebAuthnStamp struct {
	// A base64 encoded payload containing metadata about the authenticator.
	AuthenticatorData string `json:"authenticatorData"`
	// A base64 encoded payload containing metadata about the signing context and the challenge.
	ClientDataJSON string `json:"clientDataJson"`
	// A base64 url encoded Unique identifier for a given credential.
	CredentialID string `json:"credentialId"`
	// The base64 url encoded signature bytes contained within the WebAuthn assertion response.
	Signature string `json:"signature"`
}

type WebhookEndpointData

type WebhookEndpointData struct {
	// Unique identifier of the webhook endpoint.
	EndpointID string `json:"endpointId"`
	// Whether this webhook endpoint is active.
	IsActive bool `json:"isActive"`
	// Human-readable name for this webhook endpoint.
	Name string `json:"name"`
	// Unique identifier for a given Organization.
	OrganizationID string `json:"organizationId"`
	// Current subscriptions attached to this endpoint.
	Subscriptions []WebhookSubscriptionParams `json:"subscriptions,omitempty"`
	// The destination URL for webhook delivery.
	URL string `json:"url"`
}

type WebhookSubscriptionParams

type WebhookSubscriptionParams struct {
	// The event type to subscribe to (for example, ACTIVITY_UPDATES, BALANCE_CONFIRMED_UPDATES, or BALANCE_FINALIZED_UPDATES).
	EventType string `json:"eventType"`
	// JSON-encoded filter criteria for this subscription.
	FiltersJSON *string `json:"filtersJson,omitempty"`
	// Whether this subscription is active.
	IsActive *bool `json:"isActive,omitempty"`
}

Directories

Path Synopsis
cmd
release-branch command
generators
Package generators contains code generation logic for the turnkey client.
Package generators contains code generation logic for the turnkey client.
examples
apikey command
delegated_access command
Package main demonstrates the delegated access setup.
Package main demonstrates the delegated access setup.
otp command
Package main demonstrates the OTP enclave authentication flow.
Package main demonstrates the OTP enclave authentication flow.
wallets/create_wallet command
Package main demonstrates an API client which creates a new wallet with a wallet account.
Package main demonstrates an API client which creates a new wallet with a wallet account.
wallets/create_wallet_accounts command
Package main demonstrates an API client which creates new wallet accounts.
Package main demonstrates an API client which creates new wallet accounts.
wallets/export_wallet command
Package main demonstrates exporting a wallet mnemonic via the Turnkey enclave export flow.
Package main demonstrates exporting a wallet mnemonic via the Turnkey enclave export flow.
wallets/export_wallet_account command
Package main demonstrates exporting a wallet account's private key via the Turnkey enclave export flow.
Package main demonstrates exporting a wallet account's private key via the Turnkey enclave export flow.
wallets/import_wallet command
Package main demonstrates importing a wallet from a mnemonic phrase.
Package main demonstrates importing a wallet from a mnemonic phrase.
whoami command
Package main demonstrates an API client which returns the UserID of its API key.
Package main demonstrates an API client which returns the UserID of its API key.
internal
changesets
Package changesets provides utilities for managing changesets and releases.
Package changesets provides utilities for managing changesets and releases.
fileperms
Package fileperms defines standard file and directory permission bits used across the SDK.
Package fileperms defines standard file and directory permission bits used across the SDK.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL