Vault With DYLI
Move eligible inventory into a DYLI account. Most requests use a DYLI username and sealed DYLI product ids.
Use GET to view the current request fields, fee, limits, and supported vault options:
curl "https://www.dyli.io/api/3pl/$DYLI_3PL_COMPANY/vault" \
-H "x-api-key: $DYLI_3PL_API_KEY"
Vault Sealed Products To A Username
Validate the username first, then submit one or more sealed products.
curl "https://www.dyli.io/api/3pl/$DYLI_3PL_COMPANY/vault" \
-X POST \
-H "Content-Type: application/json" \
-H "x-api-key: $DYLI_3PL_API_KEY" \
-d '{
"username": "alex",
"products": [
{ "productId": 29022, "qty": 2 },
{ "productId": 2942, "qty": 1 }
],
"usdcTxHash": "0x...",
"paymentChain": "base"
}'
| Name | Required | Description |
|---|---|---|
username | Yes | Valid DYLI username. An initial @ is optional. |
products | Yes | Sealed items. Each row needs a DYLI productId and positive whole-number qty. |
usdcTxHash | Yes | Transaction hash for the vault fee. |
paymentChain | No | Network containing the USDC payment. Defaults to abstract. See Payments for supported values. |
The maximum is 10 total units per request. The current fee is $3.00 USDC per unit.
{
"success": true,
"mode": "sealed_product_vault",
"username": "alex",
"profileUrl": "https://www.dyli.io/profile/alex",
"products": [
{
"id": 29022,
"name": "Example Product",
"tokenid": "123",
"supply": 12,
"url": "https://www.dyli.io/drop/29022",
"quantity": 2,
"mintTxHashes": ["0x...", "0x..."],
"transferTxHash": "0x..."
}
],
"recipient": {
"username": "alex",
"profileUrl": "https://www.dyli.io/profile/alex",
"wallet": "0x..."
},
"quantity": 2,
"fee": {
"amount_usdc": 6,
"unit_amount_usdc": 3,
"txHash": "0x..."
},
"inventoryAdjusted": true,
"emailSent": true
}
Vault A New Product
Use this option when the inventory does not have a DYLI product yet. DYLI looks for a matching inventory row by id, certificate number, or name. If that row is already connected to a DYLI product, DYLI uses it. If not, DYLI creates the product and connects it to the inventory row.
Use this option if DYLI has enabled product creation for your account.
{
"requesterWalletAddress": "0x...",
"usdcTxHash": "0x...",
"paymentChain": "base",
"quantity": 1,
"externalRequestId": "order-1042",
"name": "2024 Pokemon Example PSA 10",
"image": "https://example.com/card-front.png",
"price": 99,
"subcategory": "Graded Card",
"cert": "12345678"
}
Required fields are requesterWalletAddress, usdcTxHash, name, price, subcategory, and either image or images. quantity defaults to 1 and cannot exceed 10.
Allowed subcategories:
Graded CardGraded Booster PackRaw CardBooster PackBooster BoxSealed ProductCollectible
The response includes mode, dyliProductId, dyliProductUrl, product data, mint transaction hashes, the transfer transaction hash, and the linked 3PL inventory row when one was found.
Vault requests create and transfer blockchain assets. Do not automatically retry a 500 response because the transfer may already have started. Check the returned transaction hashes and contact DYLI first.