Open sea

Learn how to use Open sea with Composio

Overview

SLUG: OPEN_SEA

Description

OpenSea is the world’s first and largest NFT marketplace for NFTs and crypto collectibles.

Authentication Details

api_key
stringRequired
base_url
stringDefaults to https://api.opensea.io/api/v2

Connecting to Open sea

Create an auth config

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

1

Select App

Navigate to [Open sea](https://platform.composio.dev/marketplace/Open sea).

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

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Open sea toolkit’s playground](https://app.composio.dev/app/Open sea)

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=["OPEN_SEA"])
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: Create item offer

Description

Create an offer to purchase a single nft (erc721 or erc1155).

Action Parameters

chain
stringRequired
parameters
objectRequired
protocol
stringRequired
protocol_address
stringRequired
signature
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create listing

Description

List a single nft (erc721 or erc1155) for sale on the opensea marketplace.

Action Parameters

chain
stringRequired
parameters
objectRequired
protocol
stringRequired
protocol_address
stringRequired
signature
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Fulfill listing

Description

Retrieve all the information, including signatures, needed to fulfill a listing directly onchain.

Action Parameters

listing
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get account

Description

Get an opensea account profile including details such as bio, social media usernames, and profile image.

Action Parameters

address_or_username
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get best listings by collection

Description

Get the cheapest priced active, valid listings on a single collection.

Action Parameters

collection_slug
stringRequired
include_private_listings
boolean
limit
integerDefaults to 100
next
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get collection

Description

Get a single collection including details such as fees, traits, and links.

Action Parameters

collection_slug
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get collection stats

Description

Get stats for a single collection on opensea.

Action Parameters

collection_slug
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get nft

Description

Get metadata, traits, ownership information, and rarity for a single nft.

Action Parameters

address
stringRequired
chain
stringRequired
identifier
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get order

Description

Get a single order, offer or listing, by its order hash. protocol and chain are required to prevent hash collisions.

Action Parameters

chain
stringRequired
order_hash
stringRequired
protocol_address
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Build criteria offer

Description

Build a portion of a criteria offer including the merkle tree needed to post an offer.

Action Parameters

criteria
objectRequired
offerer
stringRequired
quantity
integerDefaults to 1

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Cancel order

Description

Offchain cancel a single order, offer or listing, by its order hash when protected by the signedzone. protocol and chain are required to prevent hash collisions. please note cancellation is only assured if a fulfillment signature was not vended prior to cancellation.

Action Parameters

chain
stringRequired
offerer_signature
string
order_hash
stringRequired
protocol_address
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create criteria offer

Description

Create a criteria offer to purchase any nft in a collection or which matches the specified trait.

Action Parameters

protocol_data
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Fulfill offer

Description

Retrieve all the information, including signatures, needed to fulfill an offer directly onchain.

Action Parameters

offer
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get all listings by collection

Description

Get all active, valid listings for a single collection.

Action Parameters

collection_slug
stringRequired
limit
integerDefaults to 100
next
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get all offers by collection

Description

Get all active, valid offers for the specified collection. this includes individual and criteria offers.

Action Parameters

collection_slug
stringRequired
limit
integerDefaults to 100
next
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get best listing by nft

Description

Get the best listing for an nft.

Action Parameters

collection_slug
stringRequired
identifier
stringRequired
include_private_listings
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get best offer by nft

Description

Get the best offers for an nft.

Action Parameters

collection_slug
stringRequired
identifier
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get collections

Description

Get a list of opensea collections with optional filtering and pagination.

Action Parameters

chain
string
creator_username
string
include_hidden
boolean
limit
integerDefaults to 100
next
string
order_by
stringDefaults to created_date

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get contract

Description

Get a smart contract for a given chain and address.

Action Parameters

address
stringRequired
chain
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get events

Description

Get a list of events from opensea based on various filters like timestamps and event types.

Action Parameters

after
integer
before
integer
event_type
array
limit
integerDefaults to 50
next
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get listings

Description

Get the complete set of active, valid listings.

Action Parameters

asset_contract_address
string
chain
stringRequired
cursor
string
limit
integerDefaults to 20
listed_after
string
listed_before
string
maker
string
order_by
stringDefaults to created_date
order_direction
stringDefaults to desc
payment_token_address
string
protocol
stringRequired
taker
string
token_ids
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get payment token

Description

Get a smart contract for a given chain and address.

Action Parameters

address
stringRequired
chain
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get traits

Description

Get the traits in a collection.

Action Parameters

collection_slug
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Refresh nft metadata

Description

Refresh metadata for a single nft.

Action Parameters

address
stringRequired
chain
stringRequired
identifier
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired