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
standardsTimelinefor 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 (
toequalsfromListId)No address overrides (
overrideFromWithApproverAddressandoverrideToWithInitiatormust be false)Specific token IDs (no
allowOverrideWithAnyValidToken)Full ownership times
No Merkle challenges or prerequisite tokens
overallMaxNumTransfers> 0Typically, 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 (
overrideFromWithApproverAddressmust be true)Coins go to token owner (
overrideToWithInitiatormust be true)Specific token IDs (no
allowOverrideWithAnyValidTokenunless 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
allowOverrideWithAnyValidTokenset to trueAll 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