Skip to main content
POST
/
wallets
/
{wallet_id}
/
smart_contracts
/
delegates
import cobo_waas2
from cobo_waas2.models.cobo_safe_delegate import CoboSafeDelegate
from cobo_waas2.models.safe_wallet_delegates import SafeWalletDelegates
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.WalletsSmartContractWalletsApi(api_client)
    wallet_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    safe_wallet_delegates = cobo_waas2.SafeWalletDelegates(
        cobo_waas2.SafeWalletDelegatesContractCall(request_type="Transfer")
    )

    try:
        # List Delegates
        api_response = api_instance.list_safe_wallet_delegates(
            wallet_id, safe_wallet_delegates=safe_wallet_delegates
        )
        print(
            "The response of WalletsSmartContractWalletsApi->list_safe_wallet_delegates:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling WalletsSmartContractWalletsApi->list_safe_wallet_delegates: %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.WalletsSmartContractWalletsApi;
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>");
    WalletsSmartContractWalletsApi apiInstance = new WalletsSmartContractWalletsApi();
    UUID walletId = UUID.fromString("f47ac10b-58cc-4372-a567-0e02b2c3d479");
    SafeWalletDelegates safeWalletDelegates =
        new SafeWalletDelegates(
            new SafeWalletDelegatesContractCall().requestType(EstimateFeeRequestType.TRANSFER));
    try {
      List<CoboSafeDelegate> result =
          apiInstance.listSafeWalletDelegates(walletId, safeWalletDelegates);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling WalletsSmartContractWalletsApi#listSafeWalletDelegates");
      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() {
	walletId := "f47ac10b-58cc-4372-a567-0e02b2c3d479"
	safeWalletDelegates := coboWaas2.SafeWalletDelegates{
		SafeWalletDelegatesContractCall: coboWaas2.NewSafeWalletDelegatesContractCall(
			coboWaas2.EstimateFeeRequestType("Transfer"),
		),
	}

	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.WalletsSmartContractWalletsAPI.ListSafeWalletDelegates(ctx, walletId).
		SafeWalletDelegates(safeWalletDelegates).
		Execute()
	if err != nil {
		fmt.Fprintf(
			os.Stderr,
			"Error when calling `WalletsSmartContractWalletsAPI.ListSafeWalletDelegates``: %v\n",
			err,
		)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}
	// response from `ListSafeWalletDelegates`: []CoboSafeDelegate
	fmt.Fprintf(
		os.Stdout,
		"Response from `WalletsSmartContractWalletsAPI.ListSafeWalletDelegates`: %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.WalletsSmartContractWalletsApi();
const wallet_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
const opts = {
  SafeWalletDelegates: CoboWaas2.SafeWalletDelegates.constructFromObject({
    request_type: "Transfer",
  }),
};
apiInstance.listSafeWalletDelegates(wallet_id, opts).then(
  (data) => {
    console.log("API called successfully. Returned data: " + data);
  },
  (error) => {
    console.error(error);
  },
);

[
  {
    "delegate_type": "Org-Controlled",
    "wallet_id": "123e4567-e89b-12d3-a456-426614174000",
    "address": "0x1234567890123456789012345678901234567890"
  }
]
{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}
{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}
Try Cobo WaaS Skill in your AI coding assistant (Claude Code, Cursor, etc.). Describe your needs in natural language to auto-generate production-ready SDK code and debug faster 🚀
import cobo_waas2
from cobo_waas2.models.cobo_safe_delegate import CoboSafeDelegate
from cobo_waas2.models.safe_wallet_delegates import SafeWalletDelegates
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.WalletsSmartContractWalletsApi(api_client)
    wallet_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    safe_wallet_delegates = cobo_waas2.SafeWalletDelegates(
        cobo_waas2.SafeWalletDelegatesContractCall(request_type="Transfer")
    )

    try:
        # List Delegates
        api_response = api_instance.list_safe_wallet_delegates(
            wallet_id, safe_wallet_delegates=safe_wallet_delegates
        )
        print(
            "The response of WalletsSmartContractWalletsApi->list_safe_wallet_delegates:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling WalletsSmartContractWalletsApi->list_safe_wallet_delegates: %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.WalletsSmartContractWalletsApi;
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>");
    WalletsSmartContractWalletsApi apiInstance = new WalletsSmartContractWalletsApi();
    UUID walletId = UUID.fromString("f47ac10b-58cc-4372-a567-0e02b2c3d479");
    SafeWalletDelegates safeWalletDelegates =
        new SafeWalletDelegates(
            new SafeWalletDelegatesContractCall().requestType(EstimateFeeRequestType.TRANSFER));
    try {
      List<CoboSafeDelegate> result =
          apiInstance.listSafeWalletDelegates(walletId, safeWalletDelegates);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling WalletsSmartContractWalletsApi#listSafeWalletDelegates");
      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() {
	walletId := "f47ac10b-58cc-4372-a567-0e02b2c3d479"
	safeWalletDelegates := coboWaas2.SafeWalletDelegates{
		SafeWalletDelegatesContractCall: coboWaas2.NewSafeWalletDelegatesContractCall(
			coboWaas2.EstimateFeeRequestType("Transfer"),
		),
	}

	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.WalletsSmartContractWalletsAPI.ListSafeWalletDelegates(ctx, walletId).
		SafeWalletDelegates(safeWalletDelegates).
		Execute()
	if err != nil {
		fmt.Fprintf(
			os.Stderr,
			"Error when calling `WalletsSmartContractWalletsAPI.ListSafeWalletDelegates``: %v\n",
			err,
		)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}
	// response from `ListSafeWalletDelegates`: []CoboSafeDelegate
	fmt.Fprintf(
		os.Stdout,
		"Response from `WalletsSmartContractWalletsAPI.ListSafeWalletDelegates`: %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.WalletsSmartContractWalletsApi();
const wallet_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
const opts = {
  SafeWalletDelegates: CoboWaas2.SafeWalletDelegates.constructFromObject({
    request_type: "Transfer",
  }),
};
apiInstance.listSafeWalletDelegates(wallet_id, opts).then(
  (data) => {
    console.log("API called successfully. Returned data: " + data);
  },
  (error) => {
    console.error(error);
  },
);

Authorizations

BIZ-API-KEY
string
header
required

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

wallet_id
string<uuid>
required

The wallet ID.

Body

application/json

The request body to query the Delegates of a Safe{Wallet}.

request_type
enum<string>
required

The request type. Possible values include:

  • Transfer: A request to transfer tokens.
  • ContractCall: A request to interact with a smart contract.
Available options:
Transfer,
ContractCall
Example:

"Transfer"

address
string

The destination address.

Example:

"0x0406db8351aa6839169bb363f63c2c808fee8f99"

value
string

The transfer amount. For example, if you trade 1.5 ETH, then the value is 1.5.

Example:

"1.5"

calldata
string

The data used to invoke a specific function or method within the specified contract at the destination address, with a maximum length of 65,000 characters.

Example:

"0xa22cb4650000000000000000000000001e0049783f008a0085193e00003d00cd54003c71000000000000000000000000000000000000000000000000000000000000DEMO"

Response

Delegates successfully retrieved.

delegate_type
enum<string>
default:Org-Controlled
required

The wallet subtype of the Delegate. Possible values include:

  • Org-Controlled: MPC Wallets (Organization-Controlled Wallets).
  • User-Controlled: MPC Wallets (User-Controlled Wallets).
Available options:
Org-Controlled,
User-Controlled
Example:

"Org-Controlled"

wallet_id
string<uuid>
required

The wallet ID of the Delegate. This is required when initiating a transfer or contract call from Smart Contract Wallets (Safe{Wallet}).

Example:

"123e4567-e89b-12d3-a456-426614174000"

address
string
required

The wallet address of the Delegate. This is required when initiating a transfer or contract call from Smart Contract Wallets (Safe{Wallet}).

Example:

"0x1234567890123456789012345678901234567890"