Skip to main content

Fiat vs Custom Units

AI platforms bill in many ways - some charge directly in fiat currencies, others rely on product-native units like tokens, GPU hours, or video minutes. Each approach reflects a deliberate decision about what your customers should see and understand.

Credyt supports all these cases with a single model: every customer has one wallet, and that wallet can hold multiple accounts, each tied to a specific asset. Accounts are created automatically and can represent fiat, credits, or any custom unit you define when configuring products and pricing.

What are custom assets?

Custom assets are product-native billing units. They let you charge customers in a way that matches how they use your product. Instead of showing customers a $0.50 charge for generating a video clip, you bill them 1 video minute. Instead of a $1.47 charge for image generation, they spend 14 images.

The underlying infrastructure costs map to these units, but customers see balances and consumption in terms they immediately understand.

Custom assets also decouple your customer-facing pricing from infrastructure cost volatility. When GPU costs shift or your model changes, you update a rate. Existing balances stay valid and customers keep the credits they purchased.

Three problems custom assets solve

Infrastructure costs vary but customer-facing pricing shouldn't. Not every request costs the same to run. Model quality, duration, and complexity all affect compute cost. Custom assets absorb that variance so customers always see predictable unit deductions, regardless of what's happening underneath.

Product-native units make consumption clear. You generated a video: "1 video minute" is easier to understand than "$0.50 for generation". Customers know what they purchased and how fast they're using it.

Value can be earned, not just purchased. Credits can be granted for referrals, onboarding bonuses, or loyalty programs. Many platforms use this model to drive acquisition and engagement - users earn credits through referrals and other activities, which work identically to purchased ones. This turns billing into part of the product experience.

Account types

Credyt wallets support three account configurations. The one you choose depends on how you want customers to experience pricing and value.

Fiat Accounts

API Reference

A fiat account tracks balances in real currencies like USD or EUR. When a customer holds an account in fiat, usage is deducted in fiat terms (e.g. $0.006 per second). Fiat accounts are straightforward to reconcile and enterprise-friendly.

Example:

GET https://api.credyt.ai/customers/{customerId}/wallet/{accountId}

Response

{
"id": "default:USD",
"name": "default",
"asset": "USD",
"available": 998.5,
"pending_in": 0,
"pending_out": 0
}

Credyt returns information about default:USD account in the customer’s wallet.

Custom Assets Accounts

API Reference

A custom asset account holds balances in a unit you define. Common examples include images, video minutes, translation words, and GPU hours. You create and manage any asset that fits your product.

Each asset has an exchange rate that defines how fiat converts to custom assets on top-up. When infrastructure costs change, you update the rate. Existing balances aren't affected.

Read more about Asset management.

Example:

GET https://api.credyt.ai/customers/cust_473cr1y0ghbyc3m1yfbwvn3nxx/wallet/default:TOK

Response

{
"id": "default:TOK",
"name": "default",
"asset": "TOK",
"available": 993450234,
"pending_in": 50000,
"pending_out": 10000
}

Here, the customer has 245 images remaining. When they generate an image, Credyt deducts the appropriate amount and records the transaction automatically.

Mixed Accounts (Fiat + Custom Assets)

API Reference

A single wallet can hold both fiat and custom asset accounts at the same time. Top-ups are applied to the correct account depending on the asset type. Usage events deduct from the account linked to the billed product asset.

Example Wallet:

GET https://api.credyt.ai/customers/cust_473cr1y0ghbyc3m1yfbwvn3nxx/wallet

Response

{
"accounts": [
{
"id": "default:USD",
"name": "default",
"asset": "USD",
"available": 14.566678
},
{
"id": "default:TOK",
"name": "default",
"asset": "TOK",
"available": 993450234
}
]
}

This customer has a USD balance for fiat-priced features and a custom asset balance (images) for custom-asset-priced features. Both live in the same wallet and are managed through the same billing portal.

Not every product needs custom assets. If your costs are deterministic and your customers are technical users comfortable with infrastructure metrics, billing directly in fiat may be simpler. For a deeper look at when each approach fits, read How to bill AI products in custom units instead of dollars.