Back to blog
Represents the custom assets you can hold and transact with in a Credyt wallet
Product

How to bill AI products in custom units instead of dollars

BBen Foster
Ben Foster
|

Custom assets launched today in Credyt. Teams can now bill customers in credits, tokens, GPU hours, or any product-native unit instead of dollars. This is how platforms like Midjourney and Lovable handle monetization, so that when infrastructure costs shift or pricing evolves, the credits customers purchased still work because billing happens in product units, not currency.

Custom assets give teams the infrastructure to price, store, and track value in units that match how customers think about usage, not just what infrastructure costs. Available now in both test and live modes.

What are custom assets?

Custom assets are storage primitives that let you bill customers in product-native units instead of dollars. Video platforms bill in minutes. Translation apps bill in words or document credits. Voice platforms bill in characters or conversation minutes. The underlying infrastructure costs map to these units, but customers see balances and usage in terms that make immediate sense.

When a customer generates a 30-second video, they see "Generated 30-second video: -0.5 video minutes" not "Charged $0.05 for generation." When they check their balance, they see "120 video minutes remaining" not "$12 remaining (at current rates)."

This matters because infrastructure costs vary but customer-facing pricing shouldn't. Custom assets decouple cost volatility from price predictability.

Three problems custom assets solve

Infrastructure costs vary but customer-facing pricing shouldn't

Generative AI platforms face a specific problem. The compute required to generate a video, render an image, or run a voice model changes based on quality settings, duration, and complexity. If you bill customers directly for infrastructure costs, pricing becomes unpredictable. If you average costs and bill flat rates, margins erode on expensive requests.

Custom assets decouple infrastructure variance from customer-facing pricing.

Midjourney allocates GPU time to subscribers (3.3 hours on Basic, 15 hours on Standard, 30 hours on Pro). The actual GPU cost per image varies by model, resolution, and settings. Customers see consistent GPU time deductions. The infrastructure complexity is abstracted.

Runway uses credits for video generation. Gen-4 costs 12 credits per second while Gen-4 Turbo costs 5 credits per second. Different quality tiers have different computational requirements. Customers purchase credits and see predictable deductions. Quality and duration determine credit consumption, but the relationship between credits and value stays stable.

ElevenLabs bills in characters for text-to-speech and minutes for conversational AI. Different voice models have different computational requirements. Customers see character and minute quotas, not variable per-generation costs.

The pattern: standard job costs 1 credit, high-quality job costs 2 credits, priority job costs 3 credits. Infrastructure scales invisibly while pricing remains predictable.

Product-native units make sense to customers

When you bill an image generation platform in dollars, customers see charges like "$1.47" without understanding what they purchased. The conversion ratio becomes a black box. When pricing changes, the relationship between spend and output becomes ambiguous.

Custom assets make consumption transparent.

Customers see "Generated 4-second video clip: -2 video minutes" not "Charged $0.20 for generation." Usage history shows exactly what was consumed in units that map to product behavior. The billing portal displays "120 video minutes remaining" instead of "$12 remaining (at current rates)."

This matters most when usage patterns are unpredictable. A developer might generate 50 test images in an afternoon, then nothing for a week. Seeing image credits deplete makes the relationship between actions and balance explicit. Seeing dollar amounts requires mental math to understand remaining capacity.

Translation apps provide another example. A non-technical user being billed in LLM tokens would have no reference for what 1 million tokens represents. But "words" or translation credits (small, medium, large based on document size) make immediate sense. The underlying costs still map to token usage, but customers think in documents, not compute.

Custom assets work when the abstraction provides clarity rather than obscures value.

Value can be earned, not just purchased

Credits become especially powerful when customers can earn them outside of direct purchases.

Lovable lets users earn credits through referrals. 10 credits when someone signs up through your link, 10 more when they publish their first app. These credits work identically to purchased credits. The earning mechanism encourages growth without requiring constant payment.

Gaming platforms have used this model for years with gems, coins, or tokens. Players purchase bundles but also earn currency through gameplay, achievements, or daily bonuses. The credit system enables hybrid monetization: some users pay, others grind, most do both.

Loyalty programs follow the same pattern. Customers earn points through purchases, referrals, or engagement. Points redeem against future usage. The asset (points) has clear value but multiple acquisition paths.

When credits can be earned through product engagement, they stop being purely transactional and become part of the product experience. This changes how customers think about balance management and creates network effects through referral mechanics.

When to price in fiat

Custom assets add complexity. Not every product needs them.

OpenAI and Anthropic price API usage in tokens but show dollar balances in customer accounts. This works because token consumption correlates directly with infrastructure cost. A customer running 10 million input tokens through GPT-4 knows exactly what they'll pay. There's no variance in complexity.

The difference is audience and cost predictability. API customers are technical users who understand that larger models cost more. Token counts map clearly to workload size. When costs are deterministic per unit and customers understand the unit-to-value relationship, fiat billing is simpler. You price in dollars per token. Customers prepay dollars. Usage deducts dollars. No abstraction layer needed.

Bill in custom assets when:

  • Infrastructure costs vary but customer-facing pricing should stay predictable
  • Non-technical users need product-native units (words, minutes, tasks)
  • You expect pricing structure to evolve as you learn unit economics
  • Value can be earned through engagement, not just purchased
  • Customers benefit from seeing consumption in units that map to outcomes

Bill in fiat when:

  • Costs are deterministic per unit
  • Customers are technical users who understand infrastructure metrics
  • The unit-to-value relationship is already clear

If the abstraction doesn't provide clarity, it becomes friction.

How Credyt handles custom assets

Custom assets in Credyt are storage primitives, not a conversion layer. The platform treats custom assets identically to fiat currencies in wallet architecture.

Assets are defined once and used everywhere

You specify a code (like IMG for image generation credits), a customer-facing name, an optional symbol (emojis welcome), and a label for UI display. The exchange rates define how fiat will be exchanged and revenue recognized for your custom assets during customer top-ups and usage.

POST https://api.credyt.ai/assets
{
  "code": "IMG",
  "name": "Image Generation",
  "precision": 2,
  "label": "image",
  "symbol": "📸",
  "rates": [
    {
      "source": "USD",
      "rate": 0.10
    }
  ]
}

The rate determines how much source currency each unit costs. A rate of 0.1 means each image generation costs $0.10. Alternatively, use inverse_rate to define how many units each dollar purchases (an inverse rate of 10 means $1 buys 10 images).

Wallets hold multiple assets simultaneously

Each asset has its own balance, grant structure, and consumption tracking.

GET https://api.credyt.ai/customers/:customerId/wallet
{
  "accounts": [
    {
      "id": "default:IMG",
      "name": "default",
      "asset": "IMG",
      "available": 100.0000000000
    },
    {
      "id": "default:USD",
      "name": "default",
      "asset": "USD",
      "available": 25.0000000000
    }
  ]
}

Pricing rules determine what gets charged

You can price features in any asset. When a customer generates a new image, your product sends a usage event (e.g. image_generated) to Credyt's API which is matched against your product configuration and billed accordingly:

POST https://api.credyt.ai/products
{
  "name": "Glitch Images",
  "code": "glitch_images_std",
  "prices": [
    {
      "name": "Image Generation",
      "type": "usage_based",
      "billing_model": {
        "type": "real_time"
      },
      "usage_calculation": {
        "event_type": "image_generated",
        "usage_type": "unit"
      },
      "pricing": [
        {
          "asset": "IMG",
          "values": [
            {
              "unit_price": 1
            }
          ]
        }
      ]
    }
  ],
  "publish": true
}

The system debits the balance and records the transaction automatically.

Exchange rates can be updated or scheduled

If infrastructure costs change or you adjust pricing, update the rate. Existing balances remain valid. Customers keep the credits they purchased. The rate defines what future top-ups cost and what those credits deliver.

POST https://api.credyt.ai/assets/IMG/rates
{
  "source": "USD",
  "valid_from": "2026-02-26T15:51:28.071Z",
  "rate": 0.12
}

Promotional credits work identically to purchased credits

Grant credits at zero cost for referrals, onboarding bonuses, or loyalty programs. These credits debit identically to purchased credits but don't require payment.

The billing portal shows all assets in one view

Customers see USD balances, custom asset balances, usage history, and top-up options in a single interface.

Credyt's billing portal displaying the balances of both fiat and custom assets
The Credyt billing portal

Getting started with custom assets

Step 1: Define your assets

Choose units that match how customers think about usage. Video platforms use minutes. Translation apps use words or document credits. Voice platforms use characters or conversation minutes.

Step 2: Set initial rates

Price each asset in USD (or other fiat currencies). Start conservative. You can adjust rates without invalidating existing balances.

Step 3: Configure pricing rules in your product

When usage occurs, debit the appropriate asset. The Credyt API handles balance checks, deductions, and transaction recording.

Step 4: Enable self-service top-ups

Customers manage their own balances through the billing portal. Set minimum top-up amounts and let customers configure auto-recharge thresholds.

Custom assets are available now in both test and live modes. Start free at credyt.ai or read the documentation.