Skip to main content

Enums

WhitelistMode

enum WhitelistMode {
  None = 0,
  Merkle = 1,
  Bloom = 2,
  Domain = 3,
}

PrivacyLevel

enum PrivacyLevel {
  Public = 0,
  Confidential = 1,
}

EscrowState

enum EscrowState {
  Created = 0,
  Funded = 1,
  Delivered = 2,
  Disputed = 3,
  Released = 4,
  Refunded = 5,
  Cancelled = 6,
}

X402ErrorCode

enum X402ErrorCode {
  PaymentRequired = 402,
  PaymentMismatch = 409,
  PaymentExpired = 410,
  InsufficientFunds = "402.1",
  LimitExceeded = "402.2",
  NotWhitelisted = "402.3",
}

ProofType

enum ProofType {
  PubkeyValidity = 0,
  Withdraw = 1,
  ZeroBalance = 2,
  Transfer = 3,
}

AdminActionType

enum AdminActionType {
  SetFeeRate = 0,
  SetPaused = 1,
  EmergencyWithdraw = 2,
  TransferAdmin = 3,
}

Whitelist Types

WhitelistData

type WhitelistData = NoWhitelistData | MerkleWhitelistData | BloomWhitelistData | DomainWhitelistData;

interface NoWhitelistData { mode: WhitelistMode.None }
interface MerkleWhitelistData { mode: WhitelistMode.Merkle; root: Uint8Array }
interface BloomWhitelistData { mode: WhitelistMode.Bloom; bits: Uint8Array; hashCount: number }
interface DomainWhitelistData { mode: WhitelistMode.Domain; allowedPrefixes: Uint8Array[] }

MerkleProof

interface MerkleProof { path: Uint8Array[] }

Privacy Types

PrivacyConfig

type PrivacyConfig = PublicPrivacy | ConfidentialPrivacy;

interface PublicPrivacy { level: PrivacyLevel.Public }
interface ConfidentialPrivacy { level: PrivacyLevel.Confidential; auditor?: PublicKey }

Policy Types

AgentPolicyConfig

Configuration for creating or updating a policy.
FieldTypeRequiredDescription
ownerPublicKeyoptionalPolicy owner
agentSignerPublicKeyoptionalAgent’s signing key
dailyLimitBNyesRolling 24h spend limit
spendLimitBNnoTotal spend limit
txLimitBNnoPer-transaction limit
whitelistWhitelistDatayesWhitelist configuration
privacyPrivacyConfigyesPrivacy configuration
privacyLevelnumbernoDirect privacy level
whitelistModenumbernoDirect whitelist mode
whitelistDataUint8ArraynoDirect whitelist data
auditorKeyPublicKeynoAuditor for confidential mode

AgentPolicyAccount

On-chain policy account state.
FieldTypeDescription
ownerPublicKeyPolicy owner
agentSignerPublicKeyAuthorized agent key
dailyLimitBNRolling 24h limit
spendLimitBN?Total spend limit
txLimitBN?Per-tx limit
maxSingleTransactionBNMax single transaction
currentSpendBNCurrent rolling spend
rollingSpendBN?Rolling spend total
windowStartnumber?Rolling window start
privacyLevelnumberPrivacy level
whitelistModenumberWhitelist mode
whitelistDataUint8ArrayWhitelist data
isActivebooleanPolicy active flag
requireDelegationbooleanDelegation required
boundTokenAccountPublicKey?Bound token account
rollingWindowSpendingEntry[]Spending entries
lastUpdatednumberLast update timestamp
bumpnumberPDA bump

SpendingEntry

interface SpendingEntry {
  amount: BN;
  timestamp: number;
}

SpendingStats

interface SpendingStats {
  totalSpent24h: BN;
  transactionCount: number;
  remainingAllowance: BN;
  oldestEntryExpiry: number;
}

Escrow Types

CreateEscrowParams

FieldTypeRequiredDescription
buyerPublicKeyyesBuyer’s wallet
sellerPublicKeyyesSeller’s wallet
arbiterPublicKeynoDispute arbiter
amountBNyesEscrow amount
memostringyesService description
serviceMemostringnoService memo (hashed for PDA seed)
timeoutSecondsnumbernoCustom timeout
deliveryTimeoutnumbernoDelivery timeout
mintPublicKeyyesToken mint

EscrowAccount

See Escrow SDK page for full field listing.

EscrowParams

interface EscrowParams {
  useEscrow: boolean;
  arbiter?: PublicKey;
  autoReleaseDelay?: number;
  deliveryTimeout?: number;
}

Registry Types

Capability

interface Capability {
  type: string;
  capType?: string;
  metadata: string;
}

AgentRegistryEntry

FieldTypeDescription
agentIdPublicKeyAgent’s policy PDA
ownerPublicKey?Entry owner
endpointstringService endpoint URL
capabilitiesCapability[]Agent capabilities
reputationPdaPublicKeyReputation PDA
lastUpdatednumberLast update timestamp
isActivebooleanActive flag

RegisterAgentParams

FieldTypeRequired
agentPolicyIdPublicKeyyes
ownerPublicKeyno
endpointstringyes
capabilitiesCapability[]yes
metadatastringno
metadataJsonstringno

Reputation Types

AgentReputationAccount

FieldTypeDescription
versionnumberAccount version
agentIdPublicKeyAgent’s policy PDA
totalTransactionsBNTotal transactions
successfulTransactionsBNSuccessful transactions
disputedTransactionsBNDisputed transactions
resolvedInFavorBNResolved in agent’s favor
failedTransactionsBNFailed transactions
averageResponseTimeMsnumberAverage response time (ms)
lastUpdatednumberLast update timestamp
lastActivityAtnumber?Last activity timestamp
lastDecayAtnumber?Last decay application
totalVolumeBN?Total transaction volume
cumulativeResponseTimeMsBN?Cumulative response time
bumpnumberPDA bump

ReputationScore

interface ReputationScore {
  score: number;        // 0-10000
  isReliable: boolean;  // score >= 7000
  components: {
    successRate: number;
    resolutionRate: number;
    disputeRate: number;
  };
}

ReputationSnapshot

interface ReputationSnapshot {
  timestamp: number;
  score: number;
  totalTransactions: BN;
  successRate: number;
}

x402 Types

X402PaymentRequest

FieldTypeDescription
protocolstring"x0-01"
versionstring"2.0"
mintPublicKeyToken mint
amountBNPayment amount
recipientPublicKeyService wallet
memoHashUint8ArrayResource hash
networkstringNetwork identifier
challengeUint8ArrayUnique nonce
expiresAtnumberExpiration timestamp
escrowEscrowParams?Optional escrow config

X402Header

interface X402Header {
  raw: string;
  request: X402PaymentRequest;
}

PaymentReceipt

interface PaymentReceipt {
  signature: string;
  amount: BN;
  recipient: PublicKey;
  memoHash: Uint8Array;
  blockTime: number;
  slot: number;
  usedEscrow: boolean;
  escrowAddress?: PublicKey;
}

FieldTypeDescription
idstringUnique Blink ID
typestringBlink type ("transfer", "escrow_release", "policy_update")
titlestringDisplay title
descriptionstringDisplay description
iconstringIcon URL
labelstring?Button label
disabledbooleanWhether action is disabled
actionsBlinkAction[]Available actions
linksobject?Linked actions
metadataBlinkMetadataAction-specific metadata
expiresAtnumberExpiration timestamp
createdAtnumberCreation timestamp

BlinkAction

interface BlinkAction {
  label: string;
  type: string;
  href?: string;
  parameters: BlinkParameter[];
}

BlinkParameter

interface BlinkParameter {
  name: string;
  type: "text" | "number" | "signature" | "pubkey";
  required: boolean;
  description: string;
  label?: string;
}

Transaction Types

TransactionResult

interface TransactionResult {
  signature: string;
  confirmed: boolean;
  blockTime?: number;
  slot: number;
}

SimulationResult

interface SimulationResult {
  success: boolean;
  logs: string[];
  unitsConsumed?: number;
  error?: string;
}

PaymentOptions

interface PaymentOptions {
  skipPreflight?: boolean;
  commitment?: Commitment;
  maxRetries?: number;
}

Confidential Types

ConfidentialAccountConfig

interface ConfidentialAccountConfig {
  elgamalPubkey: Uint8Array;
  aeKey: Uint8Array;
  maxPendingCredits?: number;
}

ConfidentialAccountState

See Confidential Transfers page for full field listing.

Wrapper Types

WrapperConfig / WrapperStats / AdminAction

See Wrapper SDK page for full field listings.
Last modified on February 8, 2026