Buying an Item
In order for a user to buy an item from your Marketplace, you need to:
- Show them available items for sale
- Have them buy the item.
Getting items that are for sale
In order to return the items for your project that are listed on Fractal's marketplace, use the getForSaleItems RPC for API callers and the useItemsForSale hook for react-sdk callers.
curl --request GET \
--url 'https://api.fractal.is/sdk/v1/marketplace/solana/items/for_sale?sort.direction=ASCENDING&sort.field=LIST_TIME&limit=100' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <PROJECT_API_TOKEN>'
Buying an item
Once you have all the items listed for sale, your user can now buy an item.
Below is the steps needed to achieve this.
# Step 1: Generate a Buy Transaction
curl --request GET \
--url 'https://api.fractal.is/sdk/v1/marketplace/solana/token/buy?tokenId=<token_to_buy>&walletId=<public_key_of_buyer>&quantity=1' \
--header 'Accept: application/json'
# Step 2: Authorize the generated transaction.
curl --request POST \
--url 'https://api.fractal.is/sdk/transaction/authorize' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <PROJECT_API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"unsignedMessage": "<unsigned_tx_base58>"
}
'
# This endpoint returns a fractal.is URL that you need to open on behalf of the
# user. The user can then approve the transaction at that URL.
# Step 3: Call the getSignedResult RPC to detect when a user has approved.
curl --request GET \
--url 'https://api.fractal.is/sdk/transaction/signed_result?code=<code>' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <PROJECT_API_TOKEN>'