Qost is a decentralized orderbook and liquidity protocol for device merchants, built on the Sui blockchain.
Our platform enables merchants to list devices with transparent pricing, track provenance via IMEI/Serial numbers, and access global liquidity for their inventory.
Sell your first item on the Qost Order Book in 4 steps.
Goal: Programmatically list an iPhone 15 Pro using the Qost SDK.
npm install @mysten/sui.js dotenv
const { SuiClient, getFullnodeUrl } = require('@mysten/sui.js/client');
const { Ed25519Keypair } = require('@mysten/sui.js/keypairs/ed25519');
// Connect to Sui Testnet
const client = new SuiClient({ url: getFullnodeUrl('testnet') });
const keypair = Ed25519Keypair.fromSecretKey(process.env.PRIVATE_KEY);
Note: Prices are in kobo (1/100 NGN). Provenance data (IMEI) is required.
const productData = {
name: "iPhone 15 Pro 256GB Black",
sku: "IPHONE15PRO-256-BLK",
brand: "Apple",
pricing: {
shopper_price: 85000000, // 850,000 NGN
currency: "NGN"
},
provenance: {
imei: "356938035643809",
serial: "F2LXH3J5N"
}
};
Use the atomic list_product_with_device function to create both the listing and
provenance record in one go.
const { TransactionBlock } = require('@mysten/sui.js/transactions');
const tx = new TransactionBlock();
tx.moveCall({
target: `${PACKAGE_ID}::merchant_actions::list_product_with_device`,
arguments: [
tx.object(DEVICE_REGISTRY_ID),
tx.object(PRODUCT_REGISTRY_ID),
tx.pure(productData.name),
// ... mapped arguments (see full reference) ...
tx.pure(productData.provenance.imei),
tx.object('0x6') // Clock
]
});
const result = await client.signAndExecuteTransactionBlock({
signer: keypair,
transactionBlock: tx,
});
console.log("Digest:", result.digest);
Qost utilizes a hybrid architecture to ensure both transparency and privacy:
We deploy a suite of Move modules to handle the core logic:
Defines the TelephoneProduct standard and
handles global product cataloging.
Tracks individual device lifecycle, ownership, and condition reports via IMEI.
Aggregates merchant offers to determine fair market value.
Manages merchant identities and verification status.
All requests to the Market API require an API Key in the header.
For the hackathon demo, use: qost-hackathon-demo-key
Fetch the global order book of available devices. Filter by category, brand, or price.
curl -X GET "https://api.qost.com/v1/market/listings?limit=10" \
-H "x-api-key: YOUR_API_KEY"
| Param | Type | Description |
|---|---|---|
| limit | number | Number of results (default: 50) |
| category | string | Filter by category (e.g., "Smartphones") |
| brand | string | Filter by brand (e.g., "Apple") |
Get full specifications and blockchain provenance for a specific listing.
Verify the history and authenticity of a device using its IMEI. This queries both the Qost database and the Sui Blockchain.
{
"success": true,
"data": {
"imei": "356938035643809",
"status": "LISTED",
"blockchain_verified": true,
"device_details": {
"name": "iPhone 13 Pro Max",
"condition": "Used - Good"
},
"provenance": {
"origin_region": "UK",
"import_date": "2025-11-20T08:30:00.000Z"
}
}
}
Notify Qost when a device is sold on your platform. This marks the item as sold in the global order book and transfers ownership on the blockchain.
{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"sale_price": 450000,
"buyer_address": "0x123... (Optional)"
}
Allow customers to submit reviews for products they've purchased. Reviews help build trust and provide valuable feedback to merchants.
{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"customer_email": "[email protected]",
"customer_name": "John Doe",
"rating": 5,
"title": "Excellent phone!",
"comment": "Great condition, fast delivery. Highly recommended!",
"verified_purchase": true
}
{
"success": true,
"message": "Review submitted successfully",
"data": {
"review_id": "123e4567-e89b-12d3-a456-426614174000",
"product_name": "iPhone 13 Pro Max",
"merchant_name": "TechStore Ltd",
"rating": 5,
"created_at": "2025-12-10T10:30:00.000Z"
}
}
Retrieve all reviews for a specific product, including ratings, comments, and merchant responses. Includes comprehensive statistics and rating distribution.
| Param | Type | Description |
|---|---|---|
| limit | number | Number of reviews (default: 20) |
| offset | number | Pagination offset (default: 0) |
| sort | string | Sort order: newest, oldest, highest_rating, lowest_rating, most_helpful |
{
"success": true,
"data": {
"reviews": [
{
"review_id": "123e4567-e89b-12d3-a456-426614174000",
"customer_name": "John Doe",
"rating": 5,
"title": "Excellent phone!",
"comment": "Great condition, fast delivery.",
"verified_purchase": true,
"merchant_response": "Thank you for the positive feedback!",
"merchant_response_date": "2025-12-10T11:00:00.000Z",
"helpful_votes": 3,
"createdAt": "2025-12-10T10:30:00.000Z"
}
],
"statistics": {
"average_rating": "4.2",
"total_reviews": 15,
"verified_reviews": 12,
"rating_distribution": [
{ "rating": 5, "count": 8 },
{ "rating": 4, "count": 4 },
{ "rating": 3, "count": 2 },
{ "rating": 2, "count": 1 },
{ "rating": 1, "count": 0 }
]
}
}
}
Allow users to mark reviews as helpful, which helps surface the most useful reviews to other customers.
{
"success": true,
"message": "Review marked as helpful",
"helpful_votes": 4
}
Get overall review statistics for the entire platform, useful for analytics and reporting.
{
"success": true,
"data": {
"total_reviews": 1247,
"average_rating": "4.3",
"verified_reviews": 892,
"responded_reviews": 734,
"recent_reviews": 89,
"response_rate": "58.9"
}
}
Integration Tip: Use the review system to build trust with your customers. Display average ratings and review counts on product listings, and encourage customers to leave reviews after purchase by providing direct links to the review submission page.
We also provide ready-to-use HTML pages for customer review interactions:
Customer-friendly form for submitting reviews with star ratings and comments.
/review.html?product_id={id}&api_key={key}
Comprehensive review listing with statistics, sorting, and pagination.
/reviews.html?product_id={id}&api_key={key}
No-code integrations for popular e-commerce platforms.
Automatically sync product inventory and report sales to the Sui blockchain via webhooks.
View Integration Guide →WordPress plugin to list directly from your dashboard. Sign up for early access.
Join Waitlist →Connect your Shopify store to Qost to automatically list products and settle sales on-chain.
Prerequisite: You must have a Merchant Account approved on the Qost platform.
Visit the Qost Merchant Portal settings page to get your unique installation URL.
The app automatically registers the following webhooks:
products/create - Lists new items on Qostproducts/update - Syncs price and inventory changesorders/create - Reports sales and removing liquidityIn your Shopify Product settings, add a Metafield definition for custom.imei to
track device provenance.
Common error codes and how to resolve them.
| Code | Name | Resolution |
|---|---|---|
| 1 | E_INVALID_PRICE | Price must be > 0. Check for negative values or zero. |
| 2 | E_EMPTY_IMEI | IMEI is mandatory for provenance. Provide a valid string. |
| Error: ObjectLocked | Object Usage | You are trying to use a Shared Object that is currently being modified by another transaction. Retry after 1s. |
rawBody, not the parsed JSON.200 OK immediately upon receipt.