Alchemy

Learn how to use Alchemy with Composio

Overview

SLUG: ALCHEMY

Description

Alchemy is a blockchain development platform that provides powerful APIs and developer tools for building and scaling Ethereum applications

Authentication Details

generic_api_key
stringRequired

Connecting to Alchemy

Create an auth config

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

1

Select App

Navigate to the Alchemy 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
5alchemy_auth_config_id = "ac_YOUR_ALCHEMY_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 Alchemy 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, alchemy_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 Alchemy 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=["ALCHEMY"])
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: Get NFT Contract Metadata

Description

This tool retrieves metadata for a given nft smart contract. essential for obtaining basic nft collection details such as contract name, symbol, total supply, token type (erc721 vs erc1155), contract deployer address, deployed block number, opensea metadata, and contract verification status.

Action Parameters

contractAddress
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get NFT Sales

Description

This tool will retrieve nft sales data across various marketplaces. it allows users to query historical nft sales data with filtering options such as fromblock, toblock, order, marketplace, and limit in order to track nft sales activity, analyze historical data, monitor specific collections, and get real-time updates on nft transactions.

Action Parameters

contract_address
stringRequired
from_block
string
limit
integer
marketplace
string
order
string
to_block
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Token Balances

Description

This tool retrieves erc20 token balances for a specified ethereum address. it can either return balances for all tokens an address has ever interacted with or for a specific set of token contract addresses. it is useful for checking token balances for wallets, monitoring erc20 token holdings, portfolio tracking, and defi applications.

Action Parameters

address
stringRequired
contract_addresses
array
max_count
integer
page_key
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Token Metadata

Description

This tool retrieves metadata for a given token contract address, including the token's name, symbol, decimals, and logo url if available. it is essential for applications that need to display token information, handle token transfers, or manage token listings.

Action Parameters

contract_address
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get NFTs for Contract

Description

This tool retrieves all nfts for a given contract address. it is designed to return a complete list of nfts from a specific nft collection by accepting parameters such as contractaddress (required), withmetadata (optional), pagesize (optional), and pagekey (optional). the tool is useful for analyzing collections, building nft marketplaces, and creating collection analytics.

Action Parameters

contract_address
stringRequired
page_key
string
page_size
integerDefaults to 100
with_metadata
booleanDefaults to True

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get NFT Owners

Description

This tool retrieves the owner(s) for a specific nft token, supporting both erc721 and erc1155 tokens on ethereum and several layer 2 chains such as polygon, arbitrum, optimism, and base. it requires the contract address and tokenid, and returns a list of owner addresses along with an optional pagination key for further results.

Action Parameters

contractAddress
stringRequired
pageKey
string
pageSize
integer
tokenId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Transaction Count

Description

This tool retrieves the number of transactions sent from a specific address (also known as the nonce). it uses the eth gettransactioncount endpoint to return the transaction count for an address at a specified block tag (latest, pending, earliest, or a hex block number), which is essential for determining the nonce for subsequent transactions.

Action Parameters

address
stringRequired
block_tag
stringDefaults to latest

Action Response

data
objectRequired
error
string
successful
booleanRequired