Skip to main content

Vault With DYLI

GET / POST /api/3pl/{company}/vault

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"
}'
NameRequiredDescription
usernameYesValid DYLI username. An initial @ is optional.
productsYesSealed items. Each row needs a DYLI productId and positive whole-number qty.
usdcTxHashYesTransaction hash for the vault fee.
paymentChainNoNetwork 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 Card
  • Graded Booster Pack
  • Raw Card
  • Booster Pack
  • Booster Box
  • Sealed Product
  • Collectible

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.