Docs
- Liminal Express Developer_1.3.8(v1).postman_collection.json and Liminal Express Developer_1.3.8(v2).postman_collection.json.
maxGasPrice) thresholds for supported chains in the Resend EVM-chain transactions API reference (Wallets v1 and v2).wallet.coin fields across all API endpoints supporting EVM coin ( v1 & v2).resData object from all webhook payload responses.Impacted: Liminal Express SDK v1.2.19 and above.
The previously introduced feature, for Whitelisted Express IP in API Key [Wallet v1 & v2] during the Vaults: November 04, 2025 release [Wallet v1 & v2], is now marked as a breaking change for Liminal Express SDK v1.2.19 [Wallet v1 & v2] and above.
It is now mandatory to add the EXPRESS_OUTBOUND_IP value to your local MPC Docker image when the Express server IP address is whitelisted on Vaults, and the deployment environment is behind a payload.
The following changes were implemented in the previous November major release [Wallet v1 & v2]:
HMAC_SECRET value in the following configurations:
.env file of the client’s Docker image (express.sh) of the Liminal Express SDK.v1.2.19 (Prod) or higher.Users may experience a breaking change if the required parameters are not configured when:
v1.2.19 or higher.When your server-side Liminal Express deployment is configured behind a load balancer, the Express IP address acts as a dynamic address, preventing it from being whitelisted in Vaults. Then, the Liminal Express APIs may break, and the whitelisted Express IP address may not function accurately.
When your Express server is behind a load balancer, the following parameters should be added to the MPC Docker image (express.sh):
| Parameter | Required / Recommended | Data Type | Description | When is it required |
|---|---|---|---|---|
EXPRESS_OUTBOUND_IP | Required | String | The IP address of the Liminal Express server (x-express-ip). | When the Liminal Express SDK deployment is behind a load balancer in the Production environment. |
HMAC_SECRET | Recommended | String | Shared secret key for HMAC authentication between Liminal Express API and the client application. The key must be 20–64 alphanumeric characters. | All instances of the Production environment. |
After upgrading to the latest Liminal Express version 1.2.19 ( or higher):
EXPRESS_OUTBOUND_IP is not added to your Docker image.EXPRESS_OUTBOUND_IP) will not function as expected and accept server requests.Ensure that you:
Update the Docker image (express.sh): Add the EXPRESS_OUTBOUND_IP (required) and HMAC_SECRET (recommended) values to the .env file.
Sample Docker image:
docker run --restart=on-failure \
-e AWS_DEFAULT_REGION=ap-south-1 \
-e REGION=ap-south-1 \
-e NODE_ENV=prod \
-e TSM_URL=http://172.31.3.30:8000 \
-e TSM_VERSION=62 \
-e TSM_USER_ID=test-user-123 \
-e HMAC_SECRET=TESTHMACSECRETKEY1234567890 \
-e TSM_PASSWORD=StrongPass!2025 \
-e TSM_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr4w7Z6q1W0z7f6qT3hRL \
-e AUTH_URL=https://vaults-secure.us.auth0.com/oauth/token \
-e AUTH_AUDIENCE=https://api.lmnl.app/api/wallet/all \
-e EXPRESS_OUTBOUND_IP=3.110.45.120 \
-p 8081:8081 \
-d 641754881946.dkr.ecr.us-west-2.amazonaws.com/liminal-sdk-api:1-stable-prodRestart and rerun the Docker image (express.sh) after successfully embedding the required environment variables.
Add HMAC key to Liminal Vaults: Liminal Vaults> Apps > Secure API.
Have added the same HMAC secret key for both the MPC Docker image and Vaults to ensure the necessary whitelisted IP addresses function accurately, if using the HMAC secret authentication.
Component | Version | Description | App / SDK Location |
|---|---|---|---|
Liminal Express SDK (Production) |
| ||
→ MPC Docker Image |
| Pull the latest MPC Docker image to the latest production version [Wallet v1 & v2]. | Client side |
→ Express API Postman Collection | Liminal Express Developer_1.3.1 (v1).postman_collection.json Liminal Express Developer_1.3.1 (v2).postman_collection.json | Use the updated Liminal Express API Postman collection. | |
Express SDK (Development) |
| Refer to the Development Environment guide [Wallet v1 & v2]. | |
Mobile (Production) |
| Refer to the Liminal Vaults Mobile App guide [Wallet v1 & v2]. | Vaults Mobile (iOS) in the Apple App Store. |
Mobile (Production) |
| Refer to the Liminal Vaults Mobile App guide [Wallet v1 & v2]. | Vaults Mobile (Android) in the Google Play Store. |
inputs[].address, outputs[].address, and externaladdress fields in checksum format in Send and Receive transactions.Refer to the Version [v1.3.1 ] (Prod) [Wallet v1 & v2] changelog.
wallet.coin enum.feeIncrementParams.feeMultiplier from integer to number for improved accuracy.feeIncrementParams.feeMultiplier for accuracy.0.0015 for Arbitrum and Optimism chains [Wallet v1 & v2].maxNumInputsToUse variable limit (max batch size) from 50 to 200 for consolidated wallet transaction requests for UTXO chains.effectiveChange, effectiveChangeUsd, fee, inputs[].amount, and outputs[].amount) in Receive ( v1, v2 ) and Send ( v1, v2 ) transaction webhook guides.A new guide on Archiving and Unarchiving Wallets is added under the Vaults UI guides tab.
You may want to archive certain wallets in your organisation for the following reasons
Archiving a wallet removes it from the Wallets section of the Liminal Vaults dashboard and disables all future send transactions. Archived wallets are moved to a separate section and can be unarchived at any time.