Skip to main content
Learn how to create NFT listings for both ERC-721 and ERC-1155 tokens using the TypeScript SDK. This guide covers the complete flow from preparation to submission.
See Getting Started for prerequisites and installation.

Quick Overview

Creating a listing involves 4 steps:
  1. Prepare listing - SDK generates order components and typed data
  2. Sign & submit approval (if needed) - One-time per collection
  3. Sign typed data - User signs the listing (gasless)
  4. Create listing - Submit signed order to orderbook

Creating an ERC-721 Listing

ERC-721 tokens are unique (1-of-1). Each listing sells exactly one token.

Prepare the Listing

Order Type: ERC-721 listings automatically use FULL_RESTRICTED order type, meaning they cannot be partially filled. The entire NFT must be purchased at once.

Handle Approval Transaction

For the general approval pattern, see Overview: Approval Pattern. If this is the user’s first listing for this NFT collection, they must approve the Seaport contract:
One-time approval: Users only need to approve once per NFT collection. Subsequent listings for the same collection skip this step.Royalty Enforcement: Approving the Seaport contract enables enforced royalties. For more details, see the Operator Allowlist documentation.

Sign the Order

After approval, user signs the typed data (gasless):

Submit the Listing

Finally, submit the signed order to the orderbook:
Status Transitions: Listings start as PENDING while the orderbook validates balance and approval. They transition to ACTIVE asynchronously (usually within seconds). Build your UI to handle this delay optimistically.

Creating an ERC-1155 Listing

ERC-1155 tokens support multiple copies. Listings can sell any quantity and support partial fills.

Prepare the Listing

Buy Amount Rule: For ERC-1155, the buy.amount must be a multiple of sell.amount.Example:
  • Selling 10 items
  • Buy amount can be: 10, 20, 30, etc. (enables 1, 2, 3+ items per fill)
  • Buy amount of 15 would be invalid (not a multiple of 10)
This enables partial fills: buyers can purchase 1, 2, 5, or all 10 items.
Order Type: ERC-1155 listings automatically use PARTIAL_RESTRICTED order type, enabling partial fulfillment. Buyers can purchase any quantity up to the listed amount.

Approval, Signing, and Submission

The approval, signing, and submission steps are identical to ERC-721:

Maker Fees

Maker fees are set at listing creation and cannot be changed without canceling and recreating the listing.
Fee Amount Units: Fees are specified in the smallest currency unit (wei for native tokens).
  • 1 IMX = 1000000000000000000 wei (18 decimals)
  • Use helper functions to calculate percentage-based fees

Order Expiration

Set when your listing should automatically expire:

Complete Example

Full working example combining all steps:

Error Handling

Common errors and solutions:

Next Steps

Order Management

Query and manage your listings

Fill Orders

Learn how buyers purchase your listings

Cancel Orders

Understand soft and hard cancellation

Bulk Operations

Create multiple listings in one transaction