Coinbase

Learn how to use Coinbase with Composio

Overview

SLUG: COINBASE

Description

Coinbase is a platform for buying, selling, transferring, and storing cryptocurrency.

Authentication Details

generic_api_key
stringRequired
generic_secret
stringRequired

Connecting to Coinbase

Create an auth config

Use the dashboard to create an auth config for the Coinbase toolkit. This allows you to connect multiple Coinbase accounts to Composio for agents to use.

1

Select App

Navigate to the Coinbase toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5coinbase_auth_config_id = "ac_YOUR_COINBASE_CONFIG_ID" # Auth config ID created above
6user_id = "0000-0000-0000" # UUID from database/app
7
8composio = Composio()
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 # Replace this with a method to retrieve an API key from the user.
12 # Or supply your own.
13 user_api_key = input("[!] Enter API key")
14
15 connection_request = composio.connected_accounts.initiate(
16 user_id=user_id,
17 auth_config_id=auth_config_id,
18 config={"auth_scheme": "API_KEY", "val": user_api_key}
19 )
20
21 # API Key authentication is immediate - no redirect needed
22 print(f"Successfully connected Coinbase for user {user_id}")
23 print(f"Connection status: {connection_request.status}")
24
25 return connection_request.id
26
27
28connection_id = authenticate_toolkit(user_id, coinbase_auth_config_id)
29
30# You can verify the connection using:
31connected_account = composio.connected_accounts.get(connection_id)
32print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Coinbase toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["COINBASE"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Check Transfer

Description

Action to retrieve a transfer by wallet id, address id, and transfer id using the cdp sdk get transfer(...) endpoint.

Action Parameters

address_id
stringRequired
transfer_id
stringRequired
wallet_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Faucet

Description

Requests testnet funds (e.g. eth, usdc) for a given wallet using the cdp sdk. note: this only works on test networks that support a faucet (e.g. base sepolia).

Action Parameters

asset_id
string
wallet_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Wallet

Description

Create a new wallet in coinbase, optionally using server signing (custodial / 2-of-2 mpc).

Action Parameters

network_id
stringDefaults to base-sepolia
use_server_signer
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Wallet Info

Description

Retrieve detailed information about a single wallet from coinbase via the cdp sdk.

Action Parameters

wallet_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Wallets

Description

Retrieve all wallets from coinbase via the cdp sdk.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Send Tokens

Description

Sends tokens from one cdp wallet to another or to an external address using the cdp sdk. this action supports both internal transfers between cdp wallets and external transfers to blockchain addresses. it handles gasless transfers for supported assets and optional batching for optimized processing.

Action Parameters

amount
numberRequired
asset_symbol
stringRequired
destination_wallet_id
string
external_address
string
gasless
boolean
seed
string
skip_batching
boolean
source_wallet_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired