Seashail

Tools: NFTs

Inventory, transfers, and marketplace trading (buy, sell, bid) via transaction envelopes.

NFT tools cover inventory reads (Solana only), direct transfers, and marketplace trading via agent-supplied transaction envelopes. Write tools require policy approval. Supported marketplaces: Blur, Magic Eden, OpenSea, Tensor.

get_nft_inventory

Lists NFT-like mints owned by a wallet. Currently Solana only.

Parameters

Prop

Type

Response

{
  "items": [
    {
      "chain": "solana",
      "mint": "ABC123...",
      "owner": "11111111111111111111111111111111"
    }
  ]
}

Response shape is representative; actual fields may vary.

Examples

{
  "chain": "solana",
  "limit": 100
}

Notes

  • For non-Solana chains, Seashail currently returns not_supported. EVM NFT inventory is planned for a future release.
  • The chain parameter is required even though only Solana is currently supported.

transfer_nft

Transfers an NFT. Uses SPL token transfer on Solana and ERC-721 safeTransferFrom on EVM. Requires policy approval.

Parameters

Prop

Type

Per-Chain Behavior

  • Uses SPL token transfer (transfers exactly 1 token) - Provide mint parameter: Solana mint pubkey - Seashail creates the recipient's associated token account (ATA) if needed - Scam blocklist applies to both recipient and mint addresses
  • Uses ERC-721 safeTransferFrom - Provide contract and token_id parameters - Token ID must be a decimal string (e.g., "1234") - Transactions are simulated before broadcast - Scam blocklist applies to both recipient and contract addresses

Response

{
  "chain": "solana",
  "signature": "5UfD...txid"
}
{
  "chain": "base",
  "tx_hash": "0x..."
}

Response shape is representative; actual fields may vary.

Examples

{
  "chain": "solana",
  "to": "11111111111111111111111111111111",
  "mint": "So11111111111111111111111111111111111111112"
}
{
  "chain": "base",
  "to": "0xRecipientAddress",
  "contract": "0xContractAddress",
  "token_id": "1234"
}

Notes

  • Requires policy approval. Transactions may be auto-approved, require confirmation, or be blocked depending on your policy configuration.
  • Solana transfers always transfer exactly 1 token (the NFT quantity).
  • See also: NFT Guide

buy_nft

Buy an NFT via a marketplace by executing a transaction envelope (agent-supplied or fetched from a configured marketplace adapter). Requires policy approval.

Parameters

Prop

Type

Per-Chain Envelope

  • Provide tx_b64: base64-encoded VersionedTransaction bytes (unsigned; Seashail will sign) - Provide allowed_program_ids: allowlist of program IDs (every instruction must be in this set) - Alternatively, provide asset object for marketplace adapter to fetch envelope - Solana marketplace envelopes are always force-confirmed (user confirmation required regardless of policy) - After policy approval, the transaction is signed and broadcast to Solana
  • Provide to: contract/recipient address - Provide data: 0x-prefixed calldata (use 0x for empty) - Provide value_wei: optional ETH value as a decimal string (default: "0") - Alternatively, provide asset object for marketplace adapter to fetch envelope - Transaction is simulated before broadcast - Scam blocklist applies to to address

Response

{
  "chain": "solana",
  "marketplace": "magic_eden",
  "signature": "5UfD...txid"
}
{
  "chain": "base",
  "marketplace": "opensea",
  "tx_hash": "0x..."
}

Response shape is representative; actual fields may vary.

Examples

{
  "chain": "solana",
  "marketplace": "magic_eden",
  "usd_value": 50,
  "tx_b64": "BASE64...",
  "allowed_program_ids": [
    "ComputeBudget111111111111111111111111111111",
    "11111111111111111111111111111111"
  ]
}
{
  "chain": "base",
  "marketplace": "opensea",
  "usd_value": 50,
  "to": "0x...",
  "data": "0x...",
  "value_wei": "0"
}

Notes

  • Requires policy approval. Transactions may be auto-approved, require confirmation, or be blocked depending on your policy configuration and USD value.
  • The agent or a configured adapter must construct the transaction envelope. Seashail does not construct marketplace transaction envelopes itself.
  • Solana marketplace envelopes are always force-confirmed (user confirmation required regardless of policy).
  • If neither envelope fields (tx_b64/to/data) nor asset are provided, Seashail returns an error.
  • See also: NFT Guide

sell_nft

Sell an NFT via a marketplace by executing a transaction envelope (agent-supplied or fetched from a configured marketplace adapter). Requires policy approval.

Parameters

Same as buy_nft above. All three marketplace tools (buy_nft, sell_nft, bid_nft) share the same parameter set.

Per-Chain Envelope

Same as buy_nft above. See the Per-Chain Envelope section for Solana and EVM envelope format details.

Response

{
  "chain": "solana",
  "marketplace": "tensor",
  "signature": "5UfD...txid"
}
{
  "chain": "ethereum",
  "marketplace": "blur",
  "tx_hash": "0x..."
}

Response shape is representative; actual fields may vary.

Examples

{
  "chain": "solana",
  "marketplace": "tensor",
  "usd_value": 100,
  "tx_b64": "BASE64...",
  "allowed_program_ids": [
    "TCMPhJdwDryooaGGZjYoHRlM2vvDXcAP2BW2hhBKRmb"
  ]
}
{
  "chain": "ethereum",
  "marketplace": "blur",
  "usd_value": 100,
  "to": "0x...",
  "data": "0x...",
  "value_wei": "0"
}

Notes

  • Use get_nft_inventory to discover owned NFTs before selling.
  • See buy_nft notes for envelope construction, policy approval, and force-confirm behavior.
  • See also: NFT Guide

bid_nft

Place a bid or offer for an NFT via a marketplace by executing a transaction envelope (agent-supplied or fetched from a configured marketplace adapter). Requires policy approval.

Parameters

Same as buy_nft above. All three marketplace tools (buy_nft, sell_nft, bid_nft) share the same parameter set.

Per-Chain Envelope

Same as buy_nft above. See the Per-Chain Envelope section for Solana and EVM envelope format details.

Response

{
  "chain": "solana",
  "marketplace": "magic_eden",
  "signature": "5UfD...txid"
}
{
  "chain": "polygon",
  "marketplace": "opensea",
  "tx_hash": "0x..."
}

Response shape is representative; actual fields may vary.

Examples

{
  "chain": "solana",
  "marketplace": "magic_eden",
  "usd_value": 25,
  "tx_b64": "BASE64...",
  "allowed_program_ids": [
    "M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K"
  ]
}
{
  "chain": "polygon",
  "marketplace": "opensea",
  "usd_value": 25,
  "to": "0x...",
  "data": "0x...",
  "value_wei": "0"
}

Notes

On this page