Skip to content

Latest commit

Β 

History

History
476 lines (324 loc) Β· 19.6 KB

File metadata and controls

476 lines (324 loc) Β· 19.6 KB

Changelog

[0.11.0] - 2026-JUN-02

Changed

  • Breaking: Package renamed from @coinbase-sample/prime-sdk-ts to @coinbase/prime-sdk-ts. Update all import paths (including subpaths /manual, /modular, /services, /client, /types).
  • Dependency updated from @coinbase-sample/core-ts to @coinbase/core-ts@^0.4.0.
  • Repository moved to coinbase/prime-sdk-ts on GitHub.

[0.10.0] - 2026-MAY-12

Added

πŸ†• New API Endpoints

Financing Service

  • getCrossMarginRiskParameters(): Get current Cross Margin (XM) risk parameters for an entity, including per-tier ratios, volatility thresholds, liquidity add-ons, and offset credit matrices (GET /entities/{entityId}/cross_margin/risk_parameters)
  • getCrossMarginPrimeOverview(): Get full live cross-margin margin information for an entity, including margin summary, control status, margin level, and equity breakdowns (GET /v2/entities/{entityId}/cross_margin/prime)
  • setFundingSettings(): Set FCM funding configuration for an entity β€” designates a funding portfolio and configures auto-conversion, auto-loans, and auto-return of excess margin (POST /entities/{entityId}/funding_settings)
  • listMarketData(): Retrieve market data including historical volatility (5d/30d/90d/weighted) and average daily volume for assets associated with an entity, with cursor pagination (GET /entities/{entityId}/market_data)

πŸ“ New & Updated Models

New Models

  • ActiveLiquidationSummary: Summary of the active or most recent XM liquidation (ID, status, shortfall amount)
  • GetCrossMarginRiskParametersResponse: Response for get cross margin risk parameters
  • GetCrossMarginPrimeOverviewResponse: Response for get prime cross margin overview
  • SetFundingSettingsResponse: Response for set funding settings (activity ID, type, approvals remaining)
  • GetMarketDataResponse: Paginated response for list market data
  • CrossMarginRiskParameters: XM 2.0 risk parameters for an asset tier
  • TierPairRateEntry: Entry in an offset credit matrix for a tier pair
  • CrossMarginPrimeMarginSummary: Cross-margin account summary with equity, margin requirements, and nested breakdowns
  • CrossMarginPrimeSpotEquityBreakdown: Breakdown of spot equity components
  • CrossMarginPrimeDerivativesEquityBreakdown: Breakdown of derivatives equity components
  • CrossMarginPrimeRiskNettingInfo: XM margin requirement components, offset credits, and per-asset rows
  • CrossMarginPrimeXMPosition: Per-asset XM position row with market price, balances, and margin details
  • PrimeXMMarginCallThresholds: Structured margin thresholds by margin level
  • PrimeXMMarginRequirementBreakdown: Breakdown of base margin, volatility/liquidity add-ons, and offset credits
  • PrimeXMOffsetCreditBreakdown: Breakdown of offset credit components (basis, long/short, same-tier)
  • PrimeXMMarginThreshold: Single margin threshold entry (level, type, value)
  • MarketData: Market data entry with volatility and ADV for a single asset
  • ValidatorUnstakePreview: Per-validator breakdown for an unstake preview (address, estimated amount, time)

Updated Models

  • CrossMarginOverview: Added activeLiquidation field (ActiveLiquidationSummary)
  • NetworkDetails: Added minWithdrawalAmount, maxWithdrawalAmount, minDepositAmount fields
  • PreviewUnstakeResponse: Added walletId, walletAddress, currentTimestamp, and validators (per-validator breakdown)
  • RFQOrderPreviewResponse: Added quoteDurationMs (echo of the requested quote timeout)
  • RFQ (request body): Added quoteDurationMs optional field (quote timeout in milliseconds, 1–30000)

πŸ”’ New Enums

  • PrimeXMControlStatus: TRADES_AND_WITHDRAWALS, TRADES_ONLY, SESSION_LOCKED
  • PrimeXMMarginLevel: HEALTHY_THRESHOLD, WARNING_THRESHOLD, URGENT_MARGIN_CALL_THRESHOLD, LIQUIDATION_THRESHOLD, DEFICIT_THRESHOLD
  • PrimeXMMarginRequirementType: MARGIN_REQUIREMENT_TYPE_DMR_PLUS_PMR, MARGIN_REQUIREMENT_TYPE_IPMR_PLUS_IFMR
  • PrimeXMHealthStatus: Health status values from HEALTH_STATUS_HEALTHY through HEALTH_STATUS_IN_DEFICIT
  • PrimeXMMarginThresholdType: MARGIN_THRESHOLD_EQUITY_RATIO, MARGIN_THRESHOLD_DEFICIT_RATIO
  • XMLiquidationStatus: XM_LIQUIDATION_STATUS_PRE_LIQUIDATION, XM_LIQUIDATION_STATUS_LIQUIDATING, XM_LIQUIDATION_STATUS_LIQUIDATED, XM_LIQUIDATION_STATUS_CANCELED, XM_LIQUIDATION_STATUS_FAILED
  • UserRole: Added BUSINESS_MANAGER value

πŸ”§ Tooling

  • generateTypes.js: Now strips Beta / PrimeBeta prefixes from all generated model and enum names so beta API types are named consistently with stable types (e.g. BetaPrimeXMControlStatus β†’ PrimeXMControlStatus)

⚠️ Breaking Changes

  • XMRiskNettingInfo: Field nodalMarginRequirement renamed to dcoMarginRequirement (Derivatives Clearing Organization Margin Requirement). Update any code reading this field.

[0.9.1] - 2026-MAR-30

Added

πŸ†• New API Endpoints

Advanced Transfers Service (new service)

  • listAdvancedTransfers(): List advanced transfers for a portfolio with optional state/type/time/referenceId filtering and cursor pagination (GET /portfolios/{portfolioId}/advanced_transfers)
  • createAdvancedTransfer(): Create a new advanced transfer (e.g. blind match settlement) (POST /portfolios/{portfolioId}/advanced_transfers)
  • cancelAdvancedTransfer(): Cancel an advanced transfer by ID (POST /portfolios/{portfolioId}/advanced_transfers/{advancedTransferId}/cancel)
  • listAdvancedTransferTransactions(): List transactions associated with an advanced transfer (GET /portfolios/{portfolioId}/advanced_transfers/{advancedTransferId}/transactions)

Futures Service

  • getEntityEquity(): Get FCM equity data for an entity (GET /entities/{entityId}/futures/equity)

Transactions Service

  • getTransactionTravelRuleData(): Retrieve travel rule data for a specific transaction (GET /portfolios/{portfolioId}/transactions/{transactionId}/travel_rule)

πŸ“ New & Updated Models

New Models

  • AdvancedTransfer: Represents an advanced transfer between portfolios
  • BlindMatchMetadata: Metadata for blind match operations
  • CancelAdvancedTransferResponse: Response for cancelling an advanced transfer
  • CommissionDetailTotal: Commission detail totals for orders/fills
  • CreateAdvancedTransferRequest / CreateAdvancedTransferResponse: Request/response for creating advanced transfers
  • FcmScheduledMaintenance: Scheduled maintenance window details for FCM
  • FcmTradingSessionDetails: FCM trading session state and timing details
  • FundMovement: Fund movement details for transfers
  • FutureProductDetails: Detailed futures product information (expiry, status, margin, etc.)
  • GetFcmEquityResponse: Response for FCM entity equity endpoint
  • GetTransactionTravelRuleDataResponse: Response for transaction travel rule data
  • ListAdvancedTransfersResponse / ListAdvancedTransferTransactionsResponse: Responses for listing advanced transfers and their transactions
  • PerpetualProductDetails: Perpetual futures product details
  • ValidatorAllocation: Validator address and amount for ETH V2 staking operations

Updated Models

  • Fill: Additional fields for FCM and commission details
  • Order: Additional fields for FCM order data
  • Product: Added productType, futureProductDetails, and perpetualDetails fields
  • WalletUnstakeInputs: Added validatorAllocations for validator-level unstaking
  • EntityUser / PortfolioUser: Additional user fields

πŸ”’ New Enums

  • AdvancedTransferState, AdvancedTransferType
  • ContractExpiryType, ExpiringContractStatus
  • FcmMarginHealthState, FcmTradingSessionState, FcmTradingSessionClosedReason
  • ProductType, RiskManagementType, SecondaryPermission

πŸ”§ Tooling & CI

  • GitHub Action: Update API Spec β€” Daily scheduled workflow that fetches the latest OpenAPI spec, regenerates types, and opens a PR if changes are detected
  • GitHub Action: Release β€” Publishes to npm via trusted publishing
  • GitHub Action: Format & Lint β€” CI checks for code formatting and linting
  • GitHub Action: Salus Scan β€” Security scanning workflow
  • Added CONTRIBUTING.md and SECURITY.md
  • Added pull request template (.github/PULL_REQUEST_TEMPLATE.md)
  • generateTypes.js: New files now use the current year in the copyright header; existing files preserve their original year
  • Updated openapitools.json to pin openapi-generator CLI at v7.19.0

Removed

  • Removed unused models no longer in the API spec: DateOfBirth, TravelRuleEntry, TravelRuleWalletDetails, VASP

[0.9.0] - 2026-FEB-19

Added

πŸ†• New API Endpoints

Futures Service

  • getEntityEquity(): Get FCM equity data for an entity

πŸ“ New & Updated Models

  • ValidatorAllocation: Specifies validator address and amount for granular ETH V2 staking/unstaking operations
  • WalletUnstakeInputs: Added validatorAllocations field for validator-level ETH V2 unstaking (Alpha)

πŸ”§ Tooling & CI

  • GitHub Action: Update API Spec β€” Daily scheduled workflow that fetches the latest OpenAPI spec, regenerates types, and opens a PR if changes are detected
  • GitHub Action: Release - now publishing to npm via action
  • generateTypes.js: New files now use the current year in the copyright header; existing files preserve their original year
  • Updated openapitools.json to pin openapi-generator CLI at v7.19.0

Removed

  • Removed unused models no longer in the API spec: DateOfBirth, TravelRuleEntry, TravelRuleWalletDetails, VASP

[0.8.2] - 2026-FEB-3

Added

πŸ†• New API Endpoints

Transactions Service

  • submitDepositTravelRule(): Submit travel rule data for an existing deposit transaction
    • Provide originator and beneficiary information for travel rule compliance
    • Supports self-transfer flag and ownership verification opt-out

Staking Service

  • getStakingStatus(): Get staking status for a wallet
    • Retrieve estimated completion times for active staking requests
    • Returns validator staking information with status details

[0.8.1] - 2025-DEC-15

Added

βœ… Request Validation

Comprehensive Input Validation Across All Services

  • Added client-side validation for required path parameters (UUIDs) across all services
  • Added validation for required query parameters (e.g., productId, startTime, endTime, granularity in listProductCandles)
  • Added validation for required body parameters in create/update endpoints
  • Validation errors throw CoinbasePrimeClientException with clear, actionable error messages

[0.8.0] - 2025-DEC-11

Added

πŸ†• New API Endpoints

Futures Service

  • getFcmSettings(): Get FCM settings for an entity
    • Retrieve target derivatives excess configuration
  • setFcmSettings(): Update FCM settings for an entity
    • Set target derivatives excess amount

Financing Service

  • listTFObligations(): List Trade Finance obligations for an entity
    • Retrieve trade finance loans with amount due, notional amounts, and due dates
  • listFinancingEligibleAssets(): List assets eligible for Trade Finance
    • Get all assets with their asset and liability adjustment factors

Staking Service

  • previewUnstake(): Preview an unstaking operation
    • Get estimated amount that would be unstaked before initiating (ETH only)
  • getUnstakingStatus(): Get unstaking status for a wallet
    • Retrieve estimated completion times for active unstaking requests

πŸ“ New Request Fields

Transactions

  • listPortfolioTransactions() now supports:
    • getNetworkUnifiedTransactions: Flag to retrieve all transactions across all networks for a given symbol
    • travelRuleStatus: Filter by travel rule status (Alpha)

Activities

  • listEntityActivities() and listPortfolioActivities() now support:
    • getNetworkUnifiedActivities: Flag to retrieve all activities across all networks for a given symbol

Wallets

  • listWallets() now supports:
    • getNetworkUnifiedWallets: Flag to retrieve all wallets across all networks for a given symbol

πŸ”„ Updated Types

  • New order type: PEG - Pegged orders that dynamically adjust based on market conditions
  • New transaction types: PORTFOLIO_STAKE, PORTFOLIO_UNSTAKE - Portfolio-level staking operations
  • New Travel Rule types for compliance: TravelRuleEntry, TravelRuleParty, VASP, TravelRuleStatus
  • New staking types: PreviewUnstakeResponse, GetUnstakingStatusResponse, ValidatorUnstakingInfo, UnstakingStatus
  • Candle granularity enum fixes: THIRTY_MINUTE β†’ THIRTY_MINUTES, TWO_HOUR β†’ TWO_HOURS, FOUR_HOUR β†’ FOUR_HOURS

[0.7.1] - 2025-OCT-17

Added

πŸ†• New API Endpoints

Products Service

  • listProductCandles(): Get historical candle data for a product (Beta)
    • Retrieve time-series market data with open, high, low, close, and volume
    • Support for multiple granularities (1min, 5min, 15min, 30min, 1hr, 2hr, 4hr, 6hr, 1day)
    • Includes example with default 24-hour time range

[0.7.0] - 2025-OCT-09

Added

πŸ†• New API Endpoints

Staking Service

  • queryTransactionValidators(): Query ETH 0x02 validators associated with wallet-level stake transactions

Financing Service

  • getCrossMarginOverview(): Retrieve live Cross Margin (XM) data for XM customers

Orders Service

  • editOrder(): Edit an existing open order (Beta)
    • Modify limit price, base quantity, quote value, and other order parameters

Changed

πŸ“ NPM Scripts

  • fetch-spec: New script to download the latest OpenAPI spec from Coinbase Prime API
  • update-spec: Enhanced to include fetching the latest spec before generating types

[0.6.4] - 2025-SEP-03

Fixed

  • Updated core-ts to improve query param array handling
  • Fixed query param naming of symbol to symbols for ListPortfolioBalancesRequest
  • Fixed GetPaymentMethodRequest type to include paymentMethodId

Added

πŸ“š Comprehensive Service Examples

  • Complete SDK Examples: Added 50+ working examples across all services
    • Full CRUD operations for portfolios, futures, orders, transactions, and more
    • Consistent error handling and multiline console output formatting
    • Flexible CLI arguments with sensible defaults and environment variable support

[0.6.3] - 2025-AUG-19

Added

πŸš€ New Modular Client Architecture

  • CoinbasePrimeClientWithServices: New client with lazy-loaded service getters for optimal bundle size
    • Services accessed via clean client.services.method() syntax
    • Lazy initialization reduces initial bundle size by up to 75%
    • Built-in tree-shaking for unused services

πŸ“¦ Modular Export System

  • Multiple Entry Points: Optimized imports for different use cases
    • @coinbase-sample/prime-sdk-ts/manual - Manual service instantiation (comprehensive exports)
    • @coinbase-sample/prime-sdk-ts/modular - Lazy-loaded services (minimal bundle)
    • @coinbase-sample/prime-sdk-ts/services - Service classes only (94% smaller bundles)
    • @coinbase-sample/prime-sdk-ts/client - Client classes only (97% smaller bundles)
    • @coinbase-sample/prime-sdk-ts/types - Types only (0kb runtime, perfect for shared libraries)

πŸ—οΈ Enhanced Configuration System

  • Unified Configuration: CoinbasePrimeClientConfig interface for both clients
    • Extends CoinbaseHttpClientRetryOptions with Prime-specific pagination options
    • Consistent configuration across traditional and modular clients
  • Environment Factories:
    • CoinbasePrimeClient.fromEnv() - Load credentials from environment variables
    • CoinbasePrimeClientWithServices.fromEnv() - Enhanced client with env loading
  • Shared Utilities: createCredentialsFromEnv() with automatic .env file support

Changed

πŸ”§ Developer Experience

  • Consistent API: Both clients now use the same configuration interface
  • Factory Methods: Convenient creation patterns for common scenarios
  • Enhanced Documentation: Comprehensive guides for different import strategies

Fixed

  • Dependency Management: Centralized core-ts imports to prevent version conflicts
  • Module Resolution: Improved import paths for better IDE support and faster resolution

Migration Guide

Backward Compatibility

No migration required! Existing code continues to work unchanged:

// This still works exactly the same in 0.6.3
import {
  CoinbasePrimeClient,
  OrdersService,
} from '@coinbase-sample/prime-sdk-ts';

const client = new CoinbasePrimeClient(credentials);
const orders = new OrdersService(client);

New Optimization Options (Optional)

If you want to optimize bundle size, you can choose from new entry points:

// Option 1: Manual client (similar API, comprehensive exports)
import {
  CoinbasePrimeClient,
  OrdersService,
} from '@coinbase-sample/prime-sdk-ts/manual';

// Option 2: Modular client (new, 75% smaller initial bundle)
import { CoinbasePrimeClientWithServices } from '@coinbase-sample/prime-sdk-ts/modular';
const client = CoinbasePrimeClientWithServices.fromEnv();
client.orders.createOrder(request); // Lazy-loaded service

// Option 3: Services only (85% smaller bundles)
import { CoinbasePrimeClient } from '@coinbase-sample/prime-sdk-ts/client-only';
import { OrdersService } from '@coinbase-sample/prime-sdk-ts/services';

Bundle Size Optimization

Users can now choose their import strategy based on bundle size requirements:

  • Full SDK: @coinbase-sample/prime-sdk-ts (~100kb)
  • Manual Client: @coinbase-sample/prime-sdk-ts/manual (~90kb)
  • Modular Client: @coinbase-sample/prime-sdk-ts/modular (~25kb)
  • Services Only: @coinbase-sample/prime-sdk-ts/services (~15kb)

[0.5.0] - 2025-JUN-17

Fixes

  • Fix path error in listInvoices

Added

  • Add pagination functions to list resources where possible
    • List responses are expanded to have a .next and .fetchAll
    • maxItems and maxPages can be set at the client or request level to better control pagination
  • Updated endpoints with new query parameters
    • listPortfolioActivities
    • listEntityActivities
  • New endpoints
    • listWalletAddresses
    • createWalletDepositAddress

[0.4.1] - 2025-JUN-02

Added

  • Adding missing query parameters to listProducts
  • Modify staking post parameters

[0.4.0] - 2025-APR-30

Added

  • Exporting types changes
    • Moved all child types to explictly named, and importable from root package

[0.3.1] - 2025-APR-30

Added

  • New Service and endpoints
    • CreateStake and CreateUnstake

[0.3.0] - 2025-APR-10

Added

  • Adding support for Prime Financing endpoints
    • listExistingLocations
    • listInterestAccruals
    • listPortfolioInterestAccruals
    • listMarginCallSummaries
    • listMarginConversions
    • getEntityLocateAvailabilities
    • getMarginInformation
    • getPortfolioBuyingPower
    • getPortfolioCreditInformation
    • getPortfolioWithdrawalPower
    • getTieredPricingFees
    • createNewLocates
  • Adding support for various other new endpoints
    • BalanceService
      • listEntityBalances
    • PositionsService
      • listAggregateEntityPositions
      • listEntityPositions
    • WalletService
      • listWalletAddresses
      • createWalletAddress
  • Moved Request and Response types to Named Exports

[0.2.1] - 2025-FEB-28

Added

  • Adding support for Order's create quote and accept quote

[0.1.0] - 2024-DEC-12

Added

  • Support for all Coinbase Prime API REST endpoints