> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oumla.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Product updates and announcements for the Oumla API

<Update label="May 2026" description="v2.2.0">
  ## Added

  * **Get Address by ID**: New `client.addresses.getAddressById({ id })` method to fetch a single address by its UUID
  * New request type `GetAddressByIdRequest` and response type `GetAddressByIdResponseBodyDto`

  ## Changed

  * `client.wallets.createWallet(...)` response now includes an `id: string` (UUID) field on `CreateWalletDataDto`, allowing callers to reference the newly created wallet directly
</Update>

<Update label="April 2026" description="v2.1.0">
  ## Added

  * **Enabled Networks Endpoint**: New `networks.getEnabledNetworks()` endpoint (`GET /api/v1/network/enabled`) returning the global catalog of enabled networks (`networkId`, `name`, `alias`) for any authenticated user
  * New types: `EnabledNetworkItemDto`, `GetEnabledNetworksResponseDto`
  * **Gasless Network Support**: `isGasless: boolean` added to network responses (`OrgNetworkItemDto`, network update payloads) — indicates whether the network sponsors gas fees

  ## Changed

  * **Token Issuance is now Asynchronous**: `tokenization.issueNewToken()` request body is unchanged; the response is now a workflow handle (`IssueTokenWorkflowResponseDto`) containing `workflowId`, `operationId`, `status`, and `message`, served with HTTP `202 Accepted`. Poll the workflow resource with the returned `workflowId` to observe completion and retrieve issued tokens
  * New 400 error code `ERR-146` ("Contract deployment is still in progress.") surfaced on `issueNewToken()`
  * **Removed `path` field from address and wallet responses**: the derivation `path` field has been dropped from `AddressDataDto`, `CreateWalletDataDto`, and `WalletDataDto` — request shapes are unchanged

  ## Removed

  * `IssueTokenResponseDto` (superseded by `IssueTokenWorkflowResponseDto`)

  ## Fixed

  * Improved field-level documentation and formats (`uuid`, descriptions, examples) on address and wallet DTOs — no runtime shape changes
</Update>

<Update label="March 2026" description="v2.0.0">
  <Warning>
    This is a major release with multiple breaking changes. Review the **Changed** section carefully before upgrading.
  </Warning>

  ## Added

  * **Dynamic Network Support**: API responses now return dynamic network entities instead of hardcoded network strings. Networks are globally managed objects that can be assigned per organization
  * **Networks Resource**: New `networks` resource with `getNetworks()` endpoint for listing available networks
  * **Contract Deployment**: Improved contract deployment workflow with better parameter handling and execution reliability

  ## Changed

  * ⚠️ **Breaking — Resource Renames**:
    * `portfolio` resource renamed to `assets` — update all `client.portfolio.*` calls to `client.assets.*`
    * `withdrawals` resource renamed to `withdraw` — update all `client.withdrawals.*` calls to `client.withdraw.*`
  * ⚠️ **Breaking — Request / Response Type Renames**: All request and response types have been renamed to match the server-side DTO naming convention:

    | Old Name                   | New Name                         |
    | -------------------------- | -------------------------------- |
    | `CreateWalletRequest`      | `CreateWalletRequestBodyDto`     |
    | `CreateProfileRequest`     | `CreateProfileRequestBodyDto`    |
    | `CreateCollectionRequest`  | `CreateCollectionBodyDto`        |
    | `CreateContractRequest`    | `CreateContractRequestBodyDto`   |
    | `DeployContractRequest`    | `DeployContractRequestBodyDto`   |
    | `AddContractAbiRequest`    | `AddContractAbiRequestBodyDto`   |
    | `FetchContractAbiRequest`  | `FetchContractAbiRequestBodyDto` |
    | `ReadCallFunctionRequest`  | `ReadCallFunctionBody`           |
    | `WriteCallFunctionRequest` | `WriteCallFunctionBody`          |
    | `BurnTokenRequest`         | `BurnTokenBodyDto`               |
    | `IssueNewTokenRequest`     | `IssueNewTokenRequestBody`       |
    | `LinkContractRequest`      | `LinkContractBodyDto`            |
    | `MintTokenRequest`         | `MintTokenBodyDto`               |
    | `CreateWithdrawRequest`    | `CreateWithdrawRequestBodyDto`   |
    | `WalletData`               | `WalletDataDto`                  |
    | `AssetData`                | `AssetItemDto`                   |
    | `AddressData`              | `AddressDataDto`                 |
    | `NativeBalanceData`        | `NativeBalanceItemDto`           |
    | `TokenData`                | `TokenResponseDto`               |
    | `TransactionData`          | `TransactionItemDto`             |
    | `CollectionData`           | `CollectionItemDto`              |
    | `CollectionTokenData`      | `CollectionTokenDetailDto`       |
    | `DeployedContractData`     | `DeployedContractItemDto`        |
    | `ContractTemplateData`     | `ContractTemplateItemDto`        |
    | `Pagination`               | `AddressListPaginationDto`       |
  * ⚠️ **Breaking — Network Architecture**:
    * Removed the `network` attribute from all database-backed models
    * API responses that previously returned a `network` string now return dynamic network entities
    * Any code reading the `network` string directly from API responses must be updated
  * ⚠️ **Breaking — Removed Error Classes**: the following error classes have been removed. Catch `OumlaSdkApiError` directly for these status codes if needed:
    * `BadGatewayError` (502)
    * `GatewayTimeoutError` (504)
    * `ServiceUnavailableError` (503)
    * `UnprocessableEntityError` (422)
  * **Error Handling**: error response bodies are now loosely typed (`unknown`) for forward compatibility
  * **Request Validation**: standardized Joi schema configuration and improved request validation across all API endpoints

  ## Fixed

  * Updated address generation endpoint to the correct API version with improved error handling
  * Added validation for `initializeParams` in the `issue-new-token` operation
</Update>

<Update label="January 2026" description="v1.3.0">
  ## Added

  * **Enhanced Error Handling**: comprehensive error types for finer-grained error handling:
    * `BadGatewayError` (502)
    * `ConflictError` (409)
    * `ForbiddenError` (403)
    * `GatewayTimeoutError` (504)
    * `InternalServerError` (500)
    * `ServiceUnavailableError` (503)
    * `UnauthorizedError` (401)
    * `UnprocessableEntityError` (422)
  * All existing endpoints now include appropriate error codes in their documentation and error handling
  * **Portfolio Resource**: `getNativeBalance()` — get native balance for network, address, or wallet

  ## Changed

  * Renamed `assets` resource to `portfolio` for better semantic clarity
  * Enhanced error handling across all endpoints with appropriate HTTP status code mappings
  * Improved type definitions with new response types for all endpoints
  * `readFunction()` renamed to `readCallFunction()` in contract interactions
  * `writeFunction()` renamed to `writeCallFunction()` in contract interactions
  * `getTransactionsByWallet()` renamed to `getTransactionsByMiniWallet()` in transactions
  * `createWithdrawal()` renamed to `createWithdraw()` in withdrawals
</Update>

<Update label="December 2025" description="v1.2.4">
  ## Changed

  * Use `OumlaSdkApiEnvironment.Mainnet` instead of `OumlaSdkApiEnvironment.Production` in examples
  * Updated README examples to use the Mainnet environment
</Update>

<Update label="December 2025" description="v1.2.3">
  ## Changed

  * Renamed environment from `Production` to `Mainnet` for better clarity
  * Use `OumlaSdkApiEnvironment.Mainnet` instead of `OumlaSdkApiEnvironment.Production`
</Update>

<Update label="December 2025" description="v1.2.2">
  ## Fixed

  * Updated README.md code examples to use correct `generateAddressV2` method name
</Update>

<Update label="December 2025" description="v1.2.1">
  ## Fixed

  * Updated README.md to use correct `generateAddressV2` method name in code example
</Update>

<Update label="December 2025" description="v1.2.0">
  ## Added

  * **Temporal Workflow Status**: Track async workflow status with `getTemporalWorkflowStatus()`
  * **Generate Address V2**: Enhanced address generation using V2 API endpoint
  * **Collection Management**: New endpoints for `getCollection()`, `deleteCollection()`, `getCollectionTokenDetails()`, and `getCollectionTokens()`
  * **Token Operations**: `unlinkToken()` for unlinking tokens from the platform
  * **Contract Interactions**: `getTransactionReceipt()` for retrieving transaction receipts

  ## Changed

  * Address generation now uses V2 API endpoint
  * Updated documentation and examples for all new features
</Update>

<Update label="November 2025" description="v1.0.0">
  ## Initial Release

  * Complete TypeScript SDK with full API coverage
  * Support for profiles, wallets, addresses, transactions, assets, and withdrawals
  * Smart contract interaction capabilities
  * Tokenization and NFT management features
  * Multi-environment support with comprehensive error handling
</Update>
