Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion clients/web3-wallet/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 4.3.0 - 2026-09-21

### Changed (2)

- Added parameter `enableRFQ`
- affected methods:
- `quoteAndBuildSwapTransaction()` (`GET /api/v1/dex/aggregator/quote-and-swap`)
- Added parameter `excludeDexes`
- affected methods:
- `quoteAndBuildSwapTransaction()` (`GET /api/v1/dex/aggregator/quote-and-swap`)

## 4.2.0 - 2026-09-02

### Added (1)
Expand Down Expand Up @@ -68,7 +79,7 @@
- `data`.`routerResult`: property `feeAmount` added
- `data`.`routerResult`: property `actualSwapAmount` added

## 1.0.0 - 2026-07-24
## 1.0.0 - 2026-07-24

### Changed (1)

Expand Down
13 changes: 13 additions & 0 deletions clients/web3-wallet/docs/EnableRFQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@


# EnableRFQ

## Enum


* `TRUE` (value: `"true"`)

* `FALSE` (value: `"false"`)



8 changes: 7 additions & 1 deletion clients/web3-wallet/docs/TradingApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ No authorization required

<a id="quoteAndBuildSwapTransaction"></a>
# **quoteAndBuildSwapTransaction**
> QuoteAndBuildSwapTransactionResponse quoteAndBuildSwapTransaction(binanceChainId, amount, fromTokenAddress, toTokenAddress, userWalletAddress, vendor).recvWindow(recvWindow).nonce(nonce).slippagePercent(slippagePercent).approveTransaction(approveTransaction).approveAmount(approveAmount).gasLimit(gasLimit).gasLevel(gasLevel).priceImpactProtectionPercent(priceImpactProtectionPercent).autoSlippage(autoSlippage).maxAutoSlippagePercent(maxAutoSlippagePercent).computeUnitLimit(computeUnitLimit).computeUnitPrice(computeUnitPrice).tips(tips).feePercent(feePercent).fromTokenReferrerWalletAddress(fromTokenReferrerWalletAddress).toTokenReferrerWalletAddress(toTokenReferrerWalletAddress).execute();
> QuoteAndBuildSwapTransactionResponse quoteAndBuildSwapTransaction(binanceChainId, amount, fromTokenAddress, toTokenAddress, userWalletAddress, vendor).recvWindow(recvWindow).nonce(nonce).slippagePercent(slippagePercent).excludeDexes(excludeDexes).enableRFQ(enableRFQ).approveTransaction(approveTransaction).approveAmount(approveAmount).gasLimit(gasLimit).gasLevel(gasLevel).priceImpactProtectionPercent(priceImpactProtectionPercent).autoSlippage(autoSlippage).maxAutoSlippagePercent(maxAutoSlippagePercent).computeUnitLimit(computeUnitLimit).computeUnitPrice(computeUnitPrice).tips(tips).feePercent(feePercent).fromTokenReferrerWalletAddress(fromTokenReferrerWalletAddress).toTokenReferrerWalletAddress(toTokenReferrerWalletAddress).execute();

Quote and Build Swap Transaction (Flash API)

Expand Down Expand Up @@ -673,6 +673,8 @@ public class Example {
Long recvWindow = 5000L; // Long | Allowed time deviation in milliseconds (default: 5000, max: 60000).
String nonce = "unique-nonce-string"; // String | Unique request identifier for anti-replay; falls back to X-OC-SIGN if omitted.
String slippagePercent = "0.5"; // String | Maximum slippage tolerance as a percentage string. Required unless `autoSlippage=true`. **Range by chain:** - EVM chains (BSC, Ethereum, Base, etc.): `0` to `100` (inclusive) - Solana (`CT_501`): `0` to less than `100` (i.e. `< 100`) `\"0.5\"` means 0.5% maximum slippage. When `autoSlippage=true` this field is overridden by the auto-computed value.
String excludeDexes = "Pancakeswap V4,Pancakeswap V3"; // String | Comma-separated list of DEXes to exclude from routing. Pass the `dexName` values returned in the response `routerResult.dexRouterList` as-is (e.g. `\"Pancakeswap V4,Pancakeswap V3\"`). On EVM/Sui/Tron chains they are normalized automatically; on Solana the value is case-sensitive and must match the response exactly. Omit or leave empty to exclude nothing.
EnableRFQ enableRFQ = EnableRFQ.fromValue("true"); // EnableRFQ | Whether to enable RFQ liquidity sources for routing. Default depends on the token pair: **BStock pairs default to `\"true\"` (RFQ enabled)**; all other tokens default to `\"false\"` (RFQ disabled, AMM-only routing). An explicit value always overrides the default. `\"true\"` may return better pricing, but the returned calldata may embed RFQ settlements with a short (~30s) deadline.
ApproveTransaction approveTransaction = ApproveTransaction.fromValue("true"); // ApproveTransaction | When \"true\", `signatureData` includes the spender address and approve calldata so the client can submit it before the swap. Defaults to false.
String approveAmount = "1000000"; // String | Override approve amount (smallest unit, positive integer string). Defaults to the swap amount.
String gasLimit = "200000"; // String | Gas limit override (positive integer string). EVM only.
Expand All @@ -691,6 +693,8 @@ public class Example {
.recvWindow(recvWindow)
.nonce(nonce)
.slippagePercent(slippagePercent)
.excludeDexes(excludeDexes)
.enableRFQ(enableRFQ)
.approveTransaction(approveTransaction)
.approveAmount(approveAmount)
.gasLimit(gasLimit)
Expand Down Expand Up @@ -730,6 +734,8 @@ public class Example {
| **recvWindow** | **Long**| Allowed time deviation in milliseconds (default: 5000, max: 60000). | [optional] |
| **nonce** | **String**| Unique request identifier for anti-replay; falls back to X-OC-SIGN if omitted. | [optional] |
| **slippagePercent** | **String**| Maximum slippage tolerance as a percentage string. Required unless &#x60;autoSlippage&#x3D;true&#x60;. **Range by chain:** - EVM chains (BSC, Ethereum, Base, etc.): &#x60;0&#x60; to &#x60;100&#x60; (inclusive) - Solana (&#x60;CT_501&#x60;): &#x60;0&#x60; to less than &#x60;100&#x60; (i.e. &#x60;&lt; 100&#x60;) &#x60;\&quot;0.5\&quot;&#x60; means 0.5% maximum slippage. When &#x60;autoSlippage&#x3D;true&#x60; this field is overridden by the auto-computed value. | [optional] |
| **excludeDexes** | **String**| Comma-separated list of DEXes to exclude from routing. Pass the &#x60;dexName&#x60; values returned in the response &#x60;routerResult.dexRouterList&#x60; as-is (e.g. &#x60;\&quot;Pancakeswap V4,Pancakeswap V3\&quot;&#x60;). On EVM/Sui/Tron chains they are normalized automatically; on Solana the value is case-sensitive and must match the response exactly. Omit or leave empty to exclude nothing. | [optional] |
| **enableRFQ** | [**EnableRFQ**](.md)| Whether to enable RFQ liquidity sources for routing. Default depends on the token pair: **BStock pairs default to &#x60;\&quot;true\&quot;&#x60; (RFQ enabled)**; all other tokens default to &#x60;\&quot;false\&quot;&#x60; (RFQ disabled, AMM-only routing). An explicit value always overrides the default. &#x60;\&quot;true\&quot;&#x60; may return better pricing, but the returned calldata may embed RFQ settlements with a short (~30s) deadline. | [optional] [enum: true, false] |
| **approveTransaction** | [**ApproveTransaction**](.md)| When \&quot;true\&quot;, &#x60;signatureData&#x60; includes the spender address and approve calldata so the client can submit it before the swap. Defaults to false. | [optional] [enum: true, false] |
| **approveAmount** | **String**| Override approve amount (smallest unit, positive integer string). Defaults to the swap amount. | [optional] |
| **gasLimit** | **String**| Gas limit override (positive integer string). EVM only. | [optional] |
Expand Down
2 changes: 1 addition & 1 deletion clients/web3-wallet/docs/WebSocketApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ All URIs are relative to *https://web3.binance.com/build*

Get WebSocket Auth Token

Get a WebSocket auth token before connecting to the WebSocket stream service.
Get a WebSocket auth token before connecting to the WebSocket stream service. For details on WebSocket usage, please refer to the [WebSocket documentation](/products/websocket-api/introduction).

### Example
```java
Expand Down
4 changes: 2 additions & 2 deletions clients/web3-wallet/example_rest.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@

[GET /api/v1/dex/aggregator/history](https://web3.binance.com/en/dev-docs/catalog/web3-wallet/api/rest-api/trading-api#get-transaction-status) - getTransactionStatus - [GetTransactionStatusExample.java:42](/examples/web3-wallet/src/main/java/com/binance/connector/client/web3_wallet/rest/trading/GetTransactionStatusExample.java#L42)

[GET /api/v1/dex/aggregator/quote-and-swap](https://web3.binance.com/en/dev-docs/catalog/web3-wallet/api/rest-api/trading-api#quote-and-build-swap-transaction) - quoteAndBuildSwapTransaction - [QuoteAndBuildSwapTransactionExample.java:46](/examples/web3-wallet/src/main/java/com/binance/connector/client/web3_wallet/rest/trading/QuoteAndBuildSwapTransactionExample.java#L46)
[GET /api/v1/dex/aggregator/quote-and-swap](https://web3.binance.com/en/dev-docs/catalog/web3-wallet/api/rest-api/trading-api#quote-and-build-swap-transaction) - quoteAndBuildSwapTransaction - [QuoteAndBuildSwapTransactionExample.java:47](/examples/web3-wallet/src/main/java/com/binance/connector/client/web3_wallet/rest/trading/QuoteAndBuildSwapTransactionExample.java#L47)

[POST /api/v1/dex/aggregator/order/submit](https://web3.binance.com/en/dev-docs/catalog/web3-wallet/api/rest-api/trading-api#submit-rfq-order) - submitRfqOrder - [SubmitRfqOrderExample.java:44](/examples/web3-wallet/src/main/java/com/binance/connector/client/web3_wallet/rest/trading/SubmitRfqOrderExample.java#L44)

Expand Down Expand Up @@ -146,5 +146,5 @@

## WebSocket

[GET /api/v1/dex/market/wss/auth/token](https://web3.binance.com/en/dev-docs/catalog/web3-wallet/api/rest-api/web-socket-api#get-web-socket-auth-token) - getWebSocketAuthToken - [GetWebSocketAuthTokenExample.java:36](/examples/web3-wallet/src/main/java/com/binance/connector/client/web3_wallet/rest/websocket/GetWebSocketAuthTokenExample.java#L36)
[GET /api/v1/dex/market/wss/auth/token](https://web3.binance.com/en/dev-docs/catalog/web3-wallet/api/rest-api/web-socket-api#get-web-socket-auth-token) - getWebSocketAuthToken - [GetWebSocketAuthTokenExample.java:38](/examples/web3-wallet/src/main/java/com/binance/connector/client/web3_wallet/rest/websocket/GetWebSocketAuthTokenExample.java#L38)

2 changes: 1 addition & 1 deletion clients/web3-wallet/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>binance-web3-wallet</artifactId>
<name>web3-wallet</name>
<version>4.2.0</version>
<version>4.3.0</version>
<packaging>jar</packaging>

<parent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public class AddressPortfolioApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public class B402PaymentsApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public class DefiDataApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public class DefiTransactionApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public class GeneralDataApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public class RwaDataApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.binance.connector.client.web3_wallet.rest.model.BinanceChainId;
import com.binance.connector.client.web3_wallet.rest.model.BuildSolanaSwapInstructionsResponse;
import com.binance.connector.client.web3_wallet.rest.model.BuildSwapTransactionResponse;
import com.binance.connector.client.web3_wallet.rest.model.EnableRFQ;
import com.binance.connector.client.web3_wallet.rest.model.FeeSource;
import com.binance.connector.client.web3_wallet.rest.model.GasLevel;
import com.binance.connector.client.web3_wallet.rest.model.GetAggregatedQuoteResponse;
Expand Down Expand Up @@ -58,7 +59,7 @@ public class TradingApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down Expand Up @@ -2656,6 +2657,8 @@ private okhttp3.Call quoteAndBuildSwapTransactionCall(
Long recvWindow,
String nonce,
String slippagePercent,
String excludeDexes,
EnableRFQ enableRFQ,
ApproveTransaction approveTransaction,
String approveAmount,
String gasLimit,
Expand Down Expand Up @@ -2727,6 +2730,15 @@ private okhttp3.Call quoteAndBuildSwapTransactionCall(
localVarQueryParams.addAll(localVarApiClient.parameterToPair("vendor", vendor));
}

if (excludeDexes != null) {
localVarQueryParams.addAll(
localVarApiClient.parameterToPair("excludeDexes", excludeDexes));
}

if (enableRFQ != null) {
localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRFQ", enableRFQ));
}

if (approveTransaction != null) {
localVarQueryParams.addAll(
localVarApiClient.parameterToPair("approveTransaction", approveTransaction));
Expand Down Expand Up @@ -2842,6 +2854,8 @@ private okhttp3.Call quoteAndBuildSwapTransactionValidateBeforeCall(
Long recvWindow,
String nonce,
String slippagePercent,
String excludeDexes,
EnableRFQ enableRFQ,
ApproveTransaction approveTransaction,
String approveAmount,
String gasLimit,
Expand Down Expand Up @@ -2875,6 +2889,8 @@ private okhttp3.Call quoteAndBuildSwapTransactionValidateBeforeCall(
recvWindow,
nonce,
slippagePercent,
excludeDexes,
enableRFQ,
approveTransaction,
approveAmount,
gasLimit,
Expand Down Expand Up @@ -2902,6 +2918,8 @@ private okhttp3.Call quoteAndBuildSwapTransactionValidateBeforeCall(
Long.class,
String.class,
String.class,
String.class,
EnableRFQ.class,
ApproveTransaction.class,
String.class,
String.class,
Expand Down Expand Up @@ -2929,6 +2947,8 @@ private okhttp3.Call quoteAndBuildSwapTransactionValidateBeforeCall(
recvWindow,
nonce,
slippagePercent,
excludeDexes,
enableRFQ,
approveTransaction,
approveAmount,
gasLimit,
Expand Down Expand Up @@ -2964,6 +2984,8 @@ public ApiResponse<QuoteAndBuildSwapTransactionResponse> quoteAndBuildSwapTransa
Long recvWindow,
String nonce,
String slippagePercent,
String excludeDexes,
EnableRFQ enableRFQ,
ApproveTransaction approveTransaction,
String approveAmount,
String gasLimit,
Expand All @@ -2989,6 +3011,8 @@ public ApiResponse<QuoteAndBuildSwapTransactionResponse> quoteAndBuildSwapTransa
recvWindow,
nonce,
slippagePercent,
excludeDexes,
enableRFQ,
approveTransaction,
approveAmount,
gasLimit,
Expand Down Expand Up @@ -3019,6 +3043,8 @@ public ApiResponse<QuoteAndBuildSwapTransactionResponse> quoteAndBuildSwapTransa
request.getRecvWindow(),
request.getNonce(),
request.getSlippagePercent(),
request.getExcludeDexes(),
request.getEnableRFQ(),
request.getApproveTransaction(),
request.getApproveAmount(),
request.getGasLimit(),
Expand All @@ -3044,6 +3070,8 @@ public static class QuoteAndBuildSwapTransactionRequest {
private Long recvWindow;
private String nonce;
private String slippagePercent;
private String excludeDexes;
private EnableRFQ enableRFQ;
private ApproveTransaction approveTransaction;
private String approveAmount;
private String gasLimit;
Expand Down Expand Up @@ -3094,6 +3122,14 @@ public String getSlippagePercent() {
return slippagePercent;
}

public String getExcludeDexes() {
return excludeDexes;
}

public EnableRFQ getEnableRFQ() {
return enableRFQ;
}

public ApproveTransaction getApproveTransaction() {
return approveTransaction;
}
Expand Down Expand Up @@ -3202,6 +3238,38 @@ public QuoteAndBuildSwapTransactionRequest slippagePercent(String slippagePercen
return this;
}

/**
* Set excludeDexes
*
* @param excludeDexes Comma-separated list of DEXes to exclude from routing. Pass the
* &#x60;dexName&#x60; values returned in the response
* &#x60;routerResult.dexRouterList&#x60; as-is (e.g. &#x60;\&quot;Pancakeswap
* V4,Pancakeswap V3\&quot;&#x60;). On EVM/Sui/Tron chains they are normalized
* automatically; on Solana the value is case-sensitive and must match the response
* exactly. Omit or leave empty to exclude nothing. (optional)
* @return QuoteAndBuildSwapTransactionRequest
*/
public QuoteAndBuildSwapTransactionRequest excludeDexes(String excludeDexes) {
this.excludeDexes = excludeDexes;
return this;
}

/**
* Set enableRFQ
*
* @param enableRFQ Whether to enable RFQ liquidity sources for routing. Default depends on
* the token pair: **BStock pairs default to &#x60;\&quot;true\&quot;&#x60; (RFQ
* enabled)**; all other tokens default to &#x60;\&quot;false\&quot;&#x60; (RFQ
* disabled, AMM-only routing). An explicit value always overrides the default.
* &#x60;\&quot;true\&quot;&#x60; may return better pricing, but the returned calldata
* may embed RFQ settlements with a short (~30s) deadline. (optional)
* @return QuoteAndBuildSwapTransactionRequest
*/
public QuoteAndBuildSwapTransactionRequest enableRFQ(EnableRFQ enableRFQ) {
this.enableRFQ = enableRFQ;
return this;
}

/**
* Set approveTransaction
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public class TransactionApi {

private static final String USER_AGENT =
String.format(
"binance-web3-wallet/4.2.0 (Java/%s; %s; %s)",
"binance-web3-wallet/4.3.0 (Java/%s; %s; %s)",
SystemUtil.getJavaVersion(), SystemUtil.getOs(), SystemUtil.getArch());
private static final boolean HAS_TIME_UNIT = false;

Expand Down
Loading
Loading