Tradable Protocol

The Tradable Protocol enables orderbook-style trading of tokens through standardized bid and listing approvals. This protocol supports both fungible and non-fungible token types with coin-based transactions.

Protocol Overview

The Tradable Protocol creates a decentralized marketplace where users can:

  • List tokens for sale at specific prices

  • Place bids to buy tokens from other users

  • Support both NFT and fungible tokens with flexible trading rules

  • Execute trades through standardized approval mechanisms

Protocol Requirements

Collection Standards

  • Must include "Tradable" in the standardsTimeline for the current time period. Note this often also goes well with "NFT" standard if your collection is NFTs.

  • Compatible with all token types (fungible and non-fungible)

  • No restrictions on token ID ranges or quantities

Approval Types

1. Listing Approvals (Outgoing)

Listings allow owners to sell their tokens for coins.

Requirements:

  • Single transfer time range

  • Exactly one coin transfer with one coin denomination

  • Coin recipient must be the token owner (to equals fromListId)

  • No address overrides (overrideFromWithApproverAddress and overrideToWithInitiator must be false)

  • Specific token IDs (no allowOverrideWithAnyValidToken)

  • Full ownership times

  • No Merkle challenges or prerequisite tokens

  • overallMaxNumTransfers > 0

  • Typically, you want the denomination to match the collection's preferred denomination.

2. Bid Approvals (Incoming)

Bids allow users to offer coins to purchase tokens from others.

Requirements:

  • Single transfer time range

  • Exactly one coin transfer with one coin denomination

  • Coins come from bidder (overrideFromWithApproverAddress must be true)

  • Coins go to token owner (overrideToWithInitiator must be true)

  • Specific token IDs (no allowOverrideWithAnyValidToken unless collection bid)

  • Full ownership times

  • No Merkle challenges or prerequisite tokens

  • overallMaxNumTransfers > 0

3. Collection Bids (Special Case)

Collection bids allow users to bid on any token within a collection.

Additional Requirements:

  • Must have allowOverrideWithAnyValidToken set to true

  • All other bid requirements apply

Validation Functions

General Orderbook Validation

API Documentation: isOrderbookBidOrListingApproval

Core Bid/Listing Validation

API Documentation: isBidOrListingApproval

Collection Bid Validation

API Documentation: isCollectionBid

Implementation Example

For a complete implementation example, see the Tradable NFT Collection Example.

Last updated