Package-level declarations

Types

Link copied to clipboard
data class AddPasskeySignerResult(val credentialId: String, val publicKey: ByteArray, val transactionResult: TransactionResult)

Result of the OZSignerManager.addNewPasskeySigner operation.

Link copied to clipboard
@Serializable
data class AddressLookupResponse(val signerAddress: String, val contracts: List<IndexedContractSummary>, val count: Int)

Response from looking up a signer address in the indexer.

Link copied to clipboard
data class AllowCredential(val id: ByteArray, val transports: List<String>? = null)

A credential descriptor pairing a credential ID with optional transport hints.

Link copied to clipboard
data class AuthenticatePasskeyResult(val credentialId: String, val signature: WebAuthnSignature, val publicKey: ByteArray)

Result of standalone passkey authentication.

Link copied to clipboard
data class ConnectedWallet(val address: String, val walletId: String, val walletName: String)

Information about an externally connected wallet.

Link copied to clipboard
sealed class ConnectWalletResult

Result of a wallet connection operation.

Link copied to clipboard
sealed class ContextRuleType

Type of context rule that determines which operations it applies to.

Link copied to clipboard
@Serializable
data class ContractDetailsResponse(val contractId: String, val summary: IndexedContractSummary, val contextRules: List<IndexedContextRule>)

Response containing full details of a smart account contract.

Link copied to clipboard
data class CreateWalletResult(val credentialId: String, val contractId: String, val publicKey: ByteArray, val signedTransactionXdr: String, val transactionHash: String? = null, val nickname: String? = null)

Result of a wallet creation operation.

Link copied to clipboard

The deployment status of a smart account credential.

Link copied to clipboard
@Serializable
data class CredentialLookupResponse(val credentialId: String, val contracts: List<IndexedContractSummary>, val count: Int)

Response from looking up a credential ID in the indexer.

Link copied to clipboard
data class DeployPendingResult(val contractId: String, val signedTransactionXdr: String, val transactionHash: String? = null)

Result of deploying a pending credential.

Link copied to clipboard
@Serializable
data class EventTypeCount(val eventType: String, val count: Long)

Count of events by type.

Link copied to clipboard
data class ExternalSignerInfo(val address: String, val type: ExternalSignerType, val walletName: String? = null, val walletId: String? = null)

Information about a managed external signer.

Link copied to clipboard

The type of an external signer managed by OZExternalSignerManager.

Link copied to clipboard

Protocol for integrating external wallet adapters for multi-signer support.

Link copied to clipboard
@Serializable
data class HealthCheckResponse(val status: String)

Response from the health check endpoint.

Link copied to clipboard
@Serializable
data class IndexedContextRule(val contextRuleId: Int, val signers: List<IndexedSigner>, val policies: List<IndexedPolicy>)

A context rule within a smart account contract.

Link copied to clipboard
@Serializable
data class IndexedContractSummary(val contractId: String, val contextRuleCount: Int, val externalSignerCount: Int, val delegatedSignerCount: Int, val nativeSignerCount: Int, val firstSeenLedger: Int, val lastSeenLedger: Int, val contextRuleIds: List<Int>)

Summary information about a smart account contract.

Link copied to clipboard
@Serializable
data class IndexedPolicy(val policyAddress: String, val installParams: JsonElement? = null)

A policy attached to a context rule.

Link copied to clipboard
@Serializable
data class IndexedSigner(val signerType: String, val signerAddress: String? = null, val credentialId: String? = null)

A signer within a context rule.

Link copied to clipboard
@Serializable
data class IndexerStats(val totalEvents: Long, val uniqueContracts: Long, val uniqueCredentials: Long, val firstLedger: Long, val lastLedger: Long, val eventTypes: List<EventTypeCount>)

Statistics about the indexer state.

Link copied to clipboard
@Serializable
data class IndexerStatsResponse(val stats: IndexerStats)

Response from the indexer stats endpoint.

Link copied to clipboard

In-memory storage adapter for credentials and sessions.

Link copied to clipboard
object OZBuilders

Builder utilities for OpenZeppelin smart account context rules.

Link copied to clipboard

Configuration defaults and contract limits for OpenZeppelin smart account operations.

Link copied to clipboard

Manages context rules for OpenZeppelin Smart Accounts.

Link copied to clipboard

Manages the lifecycle of smart account credentials.

Link copied to clipboard
class OZExternalSignerManager(networkPassphrase: String, walletAdapter: ExternalWalletAdapter? = null, walletConnectionStorage: WalletConnectionStorage? = null)

Manager for external (non-passkey) signers for multi-signature smart account operations.

Link copied to clipboard
class OZIndexerClient(indexerUrl: String, timeoutMs: Long = OZConstants.DEFAULT_INDEXER_TIMEOUT_MS, injectedClient: HttpClient? = null) : AutoCloseable

Client for interacting with the OpenZeppelin Smart Account indexer service.

Link copied to clipboard

Manager for multi-signature smart account operations.

Link copied to clipboard

Manager for policy operations on OpenZeppelin Smart Accounts.

Link copied to clipboard
class OZRelayerClient(relayerUrl: String, timeoutMs: Long = OZConstants.DEFAULT_RELAYER_TIMEOUT_MS, injectedClient: HttpClient? = null) : AutoCloseable

Client for submitting transactions to an OpenZeppelin Smart Account relayer.

Link copied to clipboard

Manager for smart account signer operations.

Link copied to clipboard
data class OZSmartAccountConfig(val rpcUrl: String, val networkPassphrase: String, val accountWasmHash: String, val webauthnVerifierAddress: String, val deployerKeypair: KeyPair? = null, val rpId: String? = null, val rpName: String = "Smart Account", val sessionExpiryMs: Long = OZConstants.DEFAULT_SESSION_EXPIRY_MS, val signatureExpirationLedgers: Int = Util.LEDGERS_PER_HOUR, val timeoutInSeconds: Int = OZConstants.DEFAULT_TIMEOUT_SECONDS, val relayerUrl: String? = null, val indexerUrl: String? = null, val webauthnProvider: WebAuthnProvider? = null, val storage: StorageAdapter = InMemoryStorageAdapter(), val externalWallet: ExternalWalletAdapter? = null, val maxContextRuleScanId: UInt)

Configuration for OpenZeppelin Smart Account operations.

Link copied to clipboard

Main orchestrator for OpenZeppelin Smart Account operations on Stellar/Soroban.

Link copied to clipboard

Transaction operations for OpenZeppelin Smart Accounts.

Link copied to clipboard

Operations for creating and connecting smart account wallets.

Link copied to clipboard
data class ParsedContextRule(val id: UInt, val contextType: ContextRuleType, val name: String, val signers: List<SmartAccountSigner>, val signerIds: List<UInt>, val policies: List<String>, val policyIds: List<UInt>, val validUntil: UInt?)

Parsed representation of a context rule from on-chain data.

Link copied to clipboard
sealed class PolicyInstallParams

Policy type definitions for smart account context rules.

Link copied to clipboard

Known error codes returned by the relayer service.

Link copied to clipboard
data class RelayerResponse(val success: Boolean, val transactionId: String? = null, val hash: String? = null, val status: String? = null, val error: String? = null, val errorCode: String? = null, val details: JsonElement? = null)

Response from the relayer service.

Link copied to clipboard
typealias ResolveContextRuleIds = suspend (entry: SorobanAuthorizationEntryXdr, index: Int) -> List<UInt>

Callback for resolving context rule IDs per auth entry.

Link copied to clipboard
sealed class SelectedSigner

Specifies a signer to participate in a multi-signature operation.

Link copied to clipboard
data class SignAuthEntryOptions(val networkPassphrase: String? = null, val address: String? = null)

Options for signing an authorization entry with an external wallet.

Link copied to clipboard
data class SignAuthEntryResult(val signedAuthEntry: String, val signerAddress: String? = null)

Result of signing an authorization preimage with an external wallet.

Link copied to clipboard
sealed class SmartAccountEvent

Events emitted by the Smart Account Kit during wallet lifecycle operations.

Link copied to clipboard

Event emitter for Smart Account lifecycle events.

Link copied to clipboard

Listener interface for Smart Account events.

Link copied to clipboard
interface StorageAdapter

Protocol for persisting smart account credentials and sessions.

Link copied to clipboard
data class StoredCredential(val credentialId: String, val publicKey: ByteArray, val contractId: String? = null, val deploymentStatus: CredentialDeploymentStatus = CredentialDeploymentStatus.PENDING, val deploymentError: String? = null, val createdAt: Long = currentTimeMillis(), val lastUsedAt: Long? = null, val nickname: String? = null, val isPrimary: Boolean = false, val transports: List<String>? = null, val deviceType: String? = null, val backedUp: Boolean? = null)

A stored smart account credential with deployment and usage metadata.

Link copied to clipboard
data class StoredCredentialUpdate(val deploymentStatus: CredentialDeploymentStatus? = null, val deploymentError: String? = null, val contractId: String? = null, val lastUsedAt: Long? = null, val nickname: String? = null, val isPrimary: Boolean? = null, val transports: List<String>? = null, val deviceType: String? = null, val backedUp: Boolean? = null)

Partial updates for a stored credential.

Link copied to clipboard
data class StoredSession(val credentialId: String, val contractId: String, val connectedAt: Long, val expiresAt: Long)

A stored user session for silent reconnection.

Link copied to clipboard
data class SyncResult(val deployed: Int, val pending: Int, val failed: Int)

Result of syncing all credentials with on-chain state.

Link copied to clipboard
data class TransactionResult(val success: Boolean, val hash: String? = null, val ledger: UInt? = null, val error: String? = null)

Result of a transaction submission and polling operation.

Link copied to clipboard

Simple key-value storage interface for persisting external wallet connections.

Link copied to clipboard
data class WebAuthnAuthenticationResult(val credentialId: ByteArray, val authenticatorData: ByteArray, val clientDataJSON: ByteArray, val signature: ByteArray)

WebAuthn authentication result from a passkey ceremony.

Link copied to clipboard

Platform-specific WebAuthn provider interface.

Link copied to clipboard
data class WebAuthnRegistrationResult(val credentialId: ByteArray, val publicKey: ByteArray, val attestationObject: ByteArray, val transports: List<String>? = null, val deviceType: String? = null, val backedUp: Boolean? = null)

WebAuthn registration result from a passkey creation ceremony.

Functions

Link copied to clipboard

Applies the given updates to this credential, returning a new instance. Fields in updates that are null are left unchanged.