import cobo_waas2
from cobo_waas2.models.create_transfer_transaction201_response import (
CreateTransferTransaction201Response,
)
from cobo_waas2.models.transaction_rbf import TransactionRbf
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.TransactionsApi(api_client)
transaction_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
transaction_rbf = cobo_waas2.TransactionRbf(
request_id="f47ac10b-58cc-4372-a567-0e02b2c3d479",
fee=cobo_waas2.TransactionRequestFee(
cobo_waas2.TransactionRequestFixedFee(
fee_type="EVM_EIP_1559", token_id="TRON"
)
),
)
try:
# Drop transaction
api_response = api_instance.drop_transaction_by_id(
transaction_id, transaction_rbf=transaction_rbf
)
print("The response of TransactionsApi->drop_transaction_by_id:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling TransactionsApi->drop_transaction_by_id: %s\n" % e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.TransactionsApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
TransactionsApi apiInstance = new TransactionsApi();
UUID transactionId = UUID.fromString("f47ac10b-58cc-4372-a567-0e02b2c3d479");
TransactionRbf transactionRbf =
new TransactionRbf()
.requestId("f47ac10b-58cc-4372-a567-0e02b2c3d479")
.fee(
new TransactionRequestFee(
new TransactionRequestFixedFee()
.feeType(FeeType.EVM_EIP_1559)
.tokenId("TRON")));
try {
CreateTransferTransaction201Response result =
apiInstance.dropTransactionById(transactionId, transactionRbf);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TransactionsApi#dropTransactionById");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
transactionId := "f47ac10b-58cc-4372-a567-0e02b2c3d479"
transactionRbf := *coboWaas2.NewTransactionRbf("f47ac10b-58cc-4372-a567-0e02b2c3d479", coboWaas2.TransactionRequestFee{TransactionRequestEvmEip1559Fee: coboWaas2.NewTransactionRequestEvmEip1559Fee("9000000000000", "1000000000000", coboWaas2.FeeType("Fixed"), "ETH")})
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.TransactionsAPI.DropTransactionById(ctx, transactionId).
TransactionRbf(transactionRbf).
Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `TransactionsAPI.DropTransactionById``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `DropTransactionById`: CreateTransferTransaction201Response
fmt.Fprintf(os.Stdout, "Response from `TransactionsAPI.DropTransactionById`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.TransactionsApi();
const transaction_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
const opts = {
TransactionRbf: CoboWaas2.TransactionRbf.constructFromObject({
request_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
fee: { fee_type: "EVM_EIP_1559", token_id: "TRON" },
}),
};
apiInstance.dropTransactionById(transaction_id, opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"transaction_id": "c986cb3b-1301-412f-9450-13a52c43a95f",
"status": "Submitted"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}Drop transaction
This operation drops a specified transaction. Dropping a transaction leverages RBF to replace the original transaction with a version that effectively cancels it. For more details about dropping a transaction, refer to Drop a transaction.
A transaction can be dropped only if its status is Broadcasting.
You can use the address or included_utxos properties in the request body to specify the address or UTXOs that will cover the transaction fee. Generally, the transaction fee is paid by the original transaction’s source. If that source’s balance is insufficient, the specified address or UTXOs can be used to cover the fee.
You can have Billing Center pay the on-chain transaction fee, so that the source address does not need to hold the chain’s gas token. Use the auto_fuel property to control this behavior.
import cobo_waas2
from cobo_waas2.models.create_transfer_transaction201_response import (
CreateTransferTransaction201Response,
)
from cobo_waas2.models.transaction_rbf import TransactionRbf
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.TransactionsApi(api_client)
transaction_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
transaction_rbf = cobo_waas2.TransactionRbf(
request_id="f47ac10b-58cc-4372-a567-0e02b2c3d479",
fee=cobo_waas2.TransactionRequestFee(
cobo_waas2.TransactionRequestFixedFee(
fee_type="EVM_EIP_1559", token_id="TRON"
)
),
)
try:
# Drop transaction
api_response = api_instance.drop_transaction_by_id(
transaction_id, transaction_rbf=transaction_rbf
)
print("The response of TransactionsApi->drop_transaction_by_id:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling TransactionsApi->drop_transaction_by_id: %s\n" % e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.TransactionsApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
TransactionsApi apiInstance = new TransactionsApi();
UUID transactionId = UUID.fromString("f47ac10b-58cc-4372-a567-0e02b2c3d479");
TransactionRbf transactionRbf =
new TransactionRbf()
.requestId("f47ac10b-58cc-4372-a567-0e02b2c3d479")
.fee(
new TransactionRequestFee(
new TransactionRequestFixedFee()
.feeType(FeeType.EVM_EIP_1559)
.tokenId("TRON")));
try {
CreateTransferTransaction201Response result =
apiInstance.dropTransactionById(transactionId, transactionRbf);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TransactionsApi#dropTransactionById");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
transactionId := "f47ac10b-58cc-4372-a567-0e02b2c3d479"
transactionRbf := *coboWaas2.NewTransactionRbf("f47ac10b-58cc-4372-a567-0e02b2c3d479", coboWaas2.TransactionRequestFee{TransactionRequestEvmEip1559Fee: coboWaas2.NewTransactionRequestEvmEip1559Fee("9000000000000", "1000000000000", coboWaas2.FeeType("Fixed"), "ETH")})
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.TransactionsAPI.DropTransactionById(ctx, transactionId).
TransactionRbf(transactionRbf).
Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `TransactionsAPI.DropTransactionById``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `DropTransactionById`: CreateTransferTransaction201Response
fmt.Fprintf(os.Stdout, "Response from `TransactionsAPI.DropTransactionById`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.TransactionsApi();
const transaction_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
const opts = {
TransactionRbf: CoboWaas2.TransactionRbf.constructFromObject({
request_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
fee: { fee_type: "EVM_EIP_1559", token_id: "TRON" },
}),
};
apiInstance.dropTransactionById(transaction_id, opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"transaction_id": "c986cb3b-1301-412f-9450-13a52c43a95f",
"status": "Submitted"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}import cobo_waas2
from cobo_waas2.models.create_transfer_transaction201_response import (
CreateTransferTransaction201Response,
)
from cobo_waas2.models.transaction_rbf import TransactionRbf
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.TransactionsApi(api_client)
transaction_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
transaction_rbf = cobo_waas2.TransactionRbf(
request_id="f47ac10b-58cc-4372-a567-0e02b2c3d479",
fee=cobo_waas2.TransactionRequestFee(
cobo_waas2.TransactionRequestFixedFee(
fee_type="EVM_EIP_1559", token_id="TRON"
)
),
)
try:
# Drop transaction
api_response = api_instance.drop_transaction_by_id(
transaction_id, transaction_rbf=transaction_rbf
)
print("The response of TransactionsApi->drop_transaction_by_id:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling TransactionsApi->drop_transaction_by_id: %s\n" % e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.TransactionsApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
TransactionsApi apiInstance = new TransactionsApi();
UUID transactionId = UUID.fromString("f47ac10b-58cc-4372-a567-0e02b2c3d479");
TransactionRbf transactionRbf =
new TransactionRbf()
.requestId("f47ac10b-58cc-4372-a567-0e02b2c3d479")
.fee(
new TransactionRequestFee(
new TransactionRequestFixedFee()
.feeType(FeeType.EVM_EIP_1559)
.tokenId("TRON")));
try {
CreateTransferTransaction201Response result =
apiInstance.dropTransactionById(transactionId, transactionRbf);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TransactionsApi#dropTransactionById");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
transactionId := "f47ac10b-58cc-4372-a567-0e02b2c3d479"
transactionRbf := *coboWaas2.NewTransactionRbf("f47ac10b-58cc-4372-a567-0e02b2c3d479", coboWaas2.TransactionRequestFee{TransactionRequestEvmEip1559Fee: coboWaas2.NewTransactionRequestEvmEip1559Fee("9000000000000", "1000000000000", coboWaas2.FeeType("Fixed"), "ETH")})
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.TransactionsAPI.DropTransactionById(ctx, transactionId).
TransactionRbf(transactionRbf).
Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `TransactionsAPI.DropTransactionById``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `DropTransactionById`: CreateTransferTransaction201Response
fmt.Fprintf(os.Stdout, "Response from `TransactionsAPI.DropTransactionById`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.TransactionsApi();
const transaction_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
const opts = {
TransactionRbf: CoboWaas2.TransactionRbf.constructFromObject({
request_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
fee: { fee_type: "EVM_EIP_1559", token_id: "TRON" },
}),
};
apiInstance.dropTransactionById(transaction_id, opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
Authorizations
The API key. For more details, refer to API key.
In the API playground, enter your API secret, and your API key will be accordingly calculated.
Path Parameters
The transaction ID.
Body
The request body to drop or to speed up transactions
The information about the request to drop or to speed up transactions.
The request ID that is used to track a transaction request. The request ID is provided by you and must be unique within your organization.
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
The preset properties to limit transaction fee.
In the fixed fee model, the transaction fee is a fixed amount within a certain amount of period regardless of the transaction size or network congestion, which can vary between different chains. For more information about the fixed fee model, refer to Fee models.
You can specify the maximum fee amount to limit the transaction fee. The transaction will fail if the transaction fee exceeds the specified maximum fee amount.
Switch between the tabs to display the properties for different transaction fee models.
- Fixed
- EVM_EIP_1559
- EVM_Legacy
- UTXO
- SOL
- FIL
Show child attributes
Show child attributes
The information about the transaction source types Org-Controlled and User-Controlled. Refer to Transaction sources and destinations for a detailed introduction about the supported sources and destinations for each transaction type.
- For UTXO-based chains: both
addressandincluded_utxosare optional. If bothaddressandincluded_utxosare provided, the UTXOs must belong to the specified address. If neitheraddressnorincluded_utxosis provided, the system will select UTXOs from the wallet associated withwallet_id. - For account-based chains: You need to provide
addressotherwise the token transfer will fail. However, when estimating fees for a transfer,addressis not required.
For detailed rules on address and included_utxos in both regular and RBF transactions, see Address and included_utxos usage.
Switch between the tabs to display the properties for different transaction sources.
- Org-Controlled/User-Controlled
- Web3
Show child attributes
Show child attributes
The custom category for you to identify your transactions.
The description of the RBF transaction.
"Speedup transaction"
Whether Billing Center pays the on-chain transaction fee for this transaction, and under what condition.
On-chain fees are charged in a chain's gas token, which is usually not the token you are sending. Without Billing Center, the source address must hold that gas token or the transaction fails. When Billing Center covers the fee, the source address does not need to hold any gas token.
For more details, refer to Billing Center.
Accepted values
ProActiveAutoFuel: Always have Billing Center pay the fee, without touching the gas token in the source address.PassiveAutoFuel: Use the gas token in the source address when it is sufficient; otherwise have Billing Center pay the fee.UsePortalPreference: Follow the per-chain sponsorship rules configured on Cobo Portal, under Billing Center > Settings.DisableAutoFuel: Never use Billing Center. The transaction pays its fee from the source address and fails if the balance is insufficient.
If this parameter is not specified, it defaults to UsePortalPreference.
Support and limitations
- Applies to transactions from MPC Wallets and Custodial Wallets (Web3 Wallets) on EVM-compatible chains, TRON, Solana, and Tempo. Other chains, such as BTC, are not supported, and the source address must hold the fee itself.
- TRON, Solana, and Tempo do not support
PassiveAutoFueldue to their fee delegation mechanisms. - The per-chain sponsorship rules on Cobo Portal apply only to API transactions that pass
UsePortalPreference. They do not affect transfers initiated from the Cobo Portal interface.
PassiveAutoFuel, ProActiveAutoFuel, UsePortalPreference, DisableAutoFuel "PassiveAutoFuel"
Response
The request was successful.
The request ID that is used to track a transaction request. The request ID is provided by you and must be unique within your organization.
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
The transaction ID.
"c986cb3b-1301-412f-9450-13a52c43a95f"
The transaction status. For more details including sub-statuses, please refer to Transaction statuses and sub-statuses.
The PendingAuthorization status covers both manual approval steps and internal automated risk-control, KYT, and compliance screening checks. A transaction in this status does not necessarily require a human to take action.
Submitted, PendingScreening, PendingAuthorization, PendingSignature, Broadcasting, Confirming, Completed, Failed, Rejected, Pending "Submitted"
Was this page helpful?
