HEDGEFUND.md

Models / Tokenized assets / commodity_token

Commodity token

How does a commodity token compare with futures plus cash over a hold, what band do its fees set, and can this position redeem at all?

Takes a token backed by a stored commodity: yearly drag from storage and insurance taken in units, value after the hold, the gap to a synthetic of rolled futures plus cash and the hold where they meet, the band set by mint and redeem fees and delivery cost at a size, and whether a position can redeem at all. Flat spot. Every number comes from the caller. Not a price or advice.

The paste-ready promptmodel.md

On these numbers, the drag is 0.5% a year, the token route ends 623.29 over the synthetic after 3 years at a flat spot, they meet at 2.49 years, and the position sits under the minimum redeemable size, so its only exit is a sale, where the token's terms allow one.

Hypothetical, and on made-up numbers until you replace them. Nobody traded this, and nothing here is on offer.

Readings

The numbers, with their units.

Drag a year

0.5%

Storage 35 bps plus insurance 15 bps, taken in units.

Value after the drag

245,655

From 249,377 after entry, over 3 years at a flat spot, before exit costs. 12,468.83 tokens at 20 NAV today.

Synthetic's net cost a year

1%

Futures carry 5% less 4% earned on the collateral.

Token route less synthetic at exit

623.29

Token 243,198, synthetic 242,575, from 250,000 of cash. That is 0.249% of the cash.

Break-even hold

2.4906years

The routes end level here. On these numbers, longer holds end with the token route higher.

Entry with the lower cost on these numbers

watch

mint

Mint fee 0.25%, market premium 1.25%. Entry cost 0.25%.

Band width at this size

breach

no floor

Top edge 0.25% over NAV. No lower edge: this size can't redeem.

Units in the position

breach

124.69

Minimum to redeem 400 units, or 800,000 of value. 122.83 units at the end of the hold.

What flips it

The value of one input where the outcome changes, with the others held.

  1. market_premium_pct

    0.25%now 1.25

    Above this premium a mint costs less than a market purchase. Below it the market costs less.

  2. position_value

    802,000now 250,000

    Under this much cash the position starts below the minimum redeemable size.

  3. position_value

    814,151now 250,000

    Under this much cash the drag takes the position below the minimum by the end of a 3 year hold.

  4. futures_carry_pct

    4.9153%now 5

    At this futures carry the two routes end the hold level at a flat spot. Above it the token route ends ahead.

  5. holding_years

    2.4906yearsnow 3

    The token and the synthetic end level at this hold, at a flat spot. Longer than this the token route ends ahead.

Flags

What went past a line, and what to read before you trust the rest.

  • breach
    The position starts at 124.69 units, under the 400 unit minimum. Its only exit is a sale, where the token's terms allow one, with no redemption behind the price at this size. below_minimum_redeem
  • watch
    The market premium of 1.25% is over the 0.25% mint fee. On these numbers a mint costs 1% of NAV less than a market purchase, if this holder may mint at all. premium_over_band

What this leaves out

What the formula leaves out, by name.

  • Spot moves. The drag is on a value that moves with spot and the synthetic's carry is on its starting size, so a large move opens a gap this flat-spot figure leaves out.
  • Futures margin calls, and any collateral held below full. Roll spreads, exchange fees and basis at each roll.
  • Bid-ask and depth on the token's market, and how the premium moves over the hold.
  • A minimum size to mint, which would close the mint route to small positions.
  • Transfer costs, audits of the stored commodity, and differences in grade or location.
  • Taxes, which can treat a stored commodity, a token and futures differently.
  • Failure of the issuer, the vault or the futures clearing house.
  • Whether this holder may acquire, hold, mint, redeem, pledge, sell or transfer this token, or use any pool. Those are legal questions for counsel.
What it took as given (8)

What it took as given to get here.

  • Everything is at a flat spot, so the gap between the routes is costs alone.
  • position_value is the cash put to work. Entry takes the lower cost: a mint at NAV plus the fee, or the market at NAV plus the premium. A mint fee is added on top of NAV, not taken from the tokens delivered.
  • Storage and insurance are taken in units, so a holding shrinks by compounding: value = start * (1 - drag)^years. Annual compounding.
  • The synthetic holds the same cash as full collateral at cash_rate_pct, against rolled futures sized to it. At a flat spot it grows by 1 + cash rate - futures carry a year, compounded annually. The cash rate counts: carry alone overstates what futures cost.
  • A position with at least min_redeem_units at exit can redeem, for value * (1 - redeem fee) - delivery cost, or leave on the market, and it takes whichever pays more. A position under the minimum can only leave on the market.
  • A market exit is at NAV less exit_discount_pct. Today's premium isn't counted on at exit. The default discount is today's discount if the market is below NAV, else zero, and at zero the market exit pays NAV in full, so redemption's costs don't bite. Send exit_discount_pct to price the depth a large exit would meet.
  • Band at size S: from -(redeem fee + delivery cost / S) to +mint fee, around NAV. A position under the minimum has no lower edge: no redemption stands behind the market price at that size.
  • Break-even hold is the first hold within 100 years where one route passes the other, by scan and bisection. Routes within 1 part in a billion of the cash count as level. Routes that start level and part at once have no break-even. When the drag takes a position under the minimum redemption closes, so the token can fall behind at a step, and the result says so.
What each route is worth at exit, at a flat spotValue
  • Token, after entry, drag and exit
  • Futures plus cash
235K240K245K250K0123456Years held239,568235,370
The data

The two routes over the hold

RouteEntryEntry cost %Running cost % a yearExitEnd value
Tokenmint0.250.5market243,198
Futures plus cashnone01none242,575

By hold

YearsHeld valueToken after exitSyntheticToken less syntheticToken exit
1248,130245,648247,500-1,851.62market
2246,889244,420245,025-604.86market
3245,655243,198242,575623.29market
5243,204240,772237,7483,024.62market
10237,185234,813226,0968,717.21market

Band by size

UnitsValueSizeCan redeemLower edge %Upper edge %Width %
124.69249,377this positionnono floor0.25no floor
400800,0001 x the minimumyes-0.43750.250.6875
8001,600,0002 x the minimumyes-0.34380.250.5938
2,0004,000,0005 x the minimumyes-0.28750.250.5375
4,0008,000,00010 x the minimumyes-0.26880.250.5188
40,00080,000,000100 x the minimumyes-0.25190.250.5019

Hypothetical, computed from the numbers sent and any stated default, with hindsight. Nobody traded it, and costs and liquidity are only as assumed. Not a forecast, a recommendation, an offer, or a record of real trading. Don't use it to market an investment.

formula Drag = storage + insurance. Start value = cash / (1 + entry cost), entry cost = min(mint fee, premium). Held value = start * (1 - drag)^years. Market exit = held * (1 - exit discount). Redeem exit = held * (1 - redeem fee) - delivery cost, open only at or over the minimum. The token takes whichever exit pays more. Synthetic = cash * (1 + cash rate - futures carry)^years. Band at size S: -(redeem fee + delivery cost / S) to +mint fee.

inputs_hash 30df56b5a96de6f3

Paste it into your agent

No connection needed. This prompt carries the method, the conventions and what this site's engine gives on the made-up numbers, so your agent can check its own work before it touches real ones. Every prompt, with its hash, is listed at /prompts.json. A copy that stays fixed for this version, for a stack to point at: /v/1.0/models/commodity_token.md.

prompt.md
# Commodity token: a prompt from hedgefund.mdPaste this into your AI agent. It needs no connection to hedgefund.md. An agent that can run code should write and run it, and shouldn't work a long series by hand.**Question.** How does a commodity token compare with futures plus cash over a hold, what band do its fees set, and can this position redeem at all?## MethodDrag = storage + insurance. Start value = cash / (1 + entry cost), entry cost = min(mint fee, premium). Held value = start * (1 - drag)^years. Market exit = held * (1 - exit discount). Redeem exit = held * (1 - redeem fee) - delivery cost, open only at or over the minimum. The token takes whichever exit pays more. Synthetic = cash * (1 + cash rate - futures carry)^years. Band at size S: -(redeem fee + delivery cost / S) to +mint fee.## Conventions- Everything is at a flat spot, so the gap between the routes is costs alone.- position_value is the cash put to work. Entry takes the lower cost: a mint at NAV plus the fee, or the market at NAV plus the premium. A mint fee is added on top of NAV, not taken from the tokens delivered.- Storage and insurance are taken in units, so a holding shrinks by compounding: value = start * (1 - drag)^years. Annual compounding.- The synthetic holds the same cash as full collateral at cash_rate_pct, against rolled futures sized to it. At a flat spot it grows by 1 + cash rate - futures carry a year, compounded annually. The cash rate counts: carry alone overstates what futures cost.- A position with at least min_redeem_units at exit can redeem, for value * (1 - redeem fee) - delivery cost, or leave on the market, and it takes whichever pays more. A position under the minimum can only leave on the market.- A market exit is at NAV less exit_discount_pct. Today's premium isn't counted on at exit. The default discount is today's discount if the market is below NAV, else zero, and at zero the market exit pays NAV in full, so redemption's costs don't bite. Send exit_discount_pct to price the depth a large exit would meet.- Band at size S: from -(redeem fee + delivery cost / S) to +mint fee, around NAV. A position under the minimum has no lower edge: no redemption stands behind the market price at that size.- Break-even hold is the first hold within 100 years where one route passes the other, by scan and bisection. Routes within 1 part in a billion of the cash count as level. Routes that start level and part at once have no break-even. When the drag takes a position under the minimum redemption closes, so the token can fall behind at a step, and the result says so.## Step 1: check your method on these made-up numbersThe numbers and names below are made up. They aren't market levels, typical values or anyone's real figures.```json{  "spot_per_unit": 2000,  "units_per_token": 0.01,  "position_value": 250000,  "storage_bps": 35,  "insurance_bps": 15,  "mint_fee_bps": 25,  "redeem_fee_bps": 25,  "min_redeem_units": 400,  "delivery_cost": 1500,  "market_premium_pct": 1.25,  "cash_rate_pct": 4,  "futures_carry_pct": 5,  "holding_years": 3,  "exit_discount_pct": 1}```Work them out with the method above. Yours should match these within 0.5%.- Drag a year: 0.5 %- Value after the drag: 245654.5823- Synthetic's net cost a year: 1 %- Token route less synthetic at exit: 623.2865- Break-even hold: 2.4906 years- Units in the position: 124.6883Where the outcome flips, with the other inputs held:- market_premium_pct at 0.25: Above this premium a mint costs less than a market purchase. Below it the market costs less.- position_value at 802000: Under this much cash the position starts below the minimum redeemable size.- position_value at 814151.3101: Under this much cash the drag takes the position below the minimum by the end of a 3 year hold.- futures_carry_pct at 4.9153: At this futures carry the two routes end the hold level at a flat spot. Above it the token route ends ahead.- holding_years at 2.4906: The token and the synthetic end level at this hold, at a flat spot. Longer than this the token route ends ahead.If yours differ, stop and tell the person which ones and by how much. Don't go on to real numbers until they match, or until the person has seen the difference. These values come from one engine and can be wrong too.## Step 2: run it on the person's numbersReplace every input with the person's own. Ask for any number you don't have, and don't invent one.## Step 3: reportGive one sentence beginning "On these numbers,", then the values, then where the outcome flips. Always add what this leaves out:- Spot moves. The drag is on a value that moves with spot and the synthetic's carry is on its starting size, so a large move opens a gap this flat-spot figure leaves out.- Futures margin calls, and any collateral held below full. Roll spreads, exchange fees and basis at each roll.- Bid-ask and depth on the token's market, and how the premium moves over the hold.- A minimum size to mint, which would close the mint route to small positions.- Transfer costs, audits of the stored commodity, and differences in grade or location.- Taxes, which can treat a stored commodity, a token and futures differently.- Failure of the issuer, the vault or the futures clearing house.- Whether this holder may acquire, hold, mint, redeem, pledge, sell or transfer this token, or use any pool. Those are legal questions for counsel.## LimitsResults are hypothetical: arithmetic on the numbers given, prepared with hindsight. Nobody achieved them, and costs and liquidity are only as assumed. They aren't a forecast, a recommendation, an offer or a record of real trading. Don't say what to buy, sell or hold, and don't use them to market an investment. Whether a person may hold or trade an instrument is a legal question for counsel.Provided as is, at your own risk, by hedgefund.md, which is not a fund and isn't anyone's adviser. Version 1.0. Source: https://hedgefund.md/models/commodity_token/prompt.md. Terms: https://hedgefund.md/terms

Call it

The same code answers on this page, over HTTP, over MCP and on your own machine, and the same inputs give the same bytes. No key, and nothing is stored. Send positions by POST or run the library, because a URL can land in a server log. model.md holds all of this for your agent.

POST the inputs to /api/v1/commodity_token.

terminal
curl -s https://hedgefund.md/api/v1/commodity_token \  -H 'content-type: application/json' \  -d '{"spot_per_unit":2000,"units_per_token":0.01,"position_value":250000,"storage_bps":35,"insurance_bps":15,"mint_fee_bps":25,"redeem_fee_bps":25,"min_redeem_units":400,"delivery_cost":1500,"market_premium_pct":1.25,"cash_rate_pct":4,"futures_carry_pct":5,"holding_years":3,"exit_discount_pct":1}' \  | jq '{summary, flags, flips, not_modeled, inputs_hash}'

Inputs

InputTypeRangeRequiredWhat it is
spot_per_unitnumberover 0 to 1000000000yesSpot price of one unit of the commodity.
units_per_tokennumberover 0 to 1000000yesUnits of the commodity behind one token today.
position_valuenumberover 0 to 10000000000000yesCash put to work, in either route.
storage_bpsnumber0 to 2000yesStorage cost a year, taken in units. 35 means 0.35%.
insurance_bpsnumber0 to 2000yesInsurance cost a year, taken in units. 15 means 0.15%.
mint_fee_bpsnumber0 to 2000yesFee to mint, added on top of NAV. 25 means 0.25%.
redeem_fee_bpsnumber0 to 2000yesFee to redeem, taken from value. 25 means 0.25%.
min_redeem_unitsnumber0 to 1000000000yesFewest units that can be redeemed. 0 means no minimum.
delivery_costnumber0 to 1000000000yesFixed cost of one redemption or delivery, in money.
market_premium_pctnumber-50 to 100yesMarket price over NAV. 1 means 1% above, -1 means 1% below.
cash_rate_pctnumber0 to 50yesRate earned on cash held as futures collateral. 4 means 4%.
futures_carry_pctnumber-50 to 50yesYearly cost of rolling futures, positive when they sit above spot. 5 means 5%.
holding_yearsnumber0 to 100yesYears held.
exit_discount_pctnumber0 to 90noOptional. Discount to NAV on a market exit. It is the only exit under the minimum, and the other choice over it. Default 0, or today's discount if the market is below NAV.

Hypothetical, and on made-up numbers until you replace them. Nobody traded this, and nothing here is on offer.

1.0Use at your own risk: hedgefund.md is not a fund, not an offer of any security, token or fund interest, and not advice. Results are hypothetical, may be wrong, and are not a record of real trading. Don't use them to market an investment. See the terms.