Reading the trails
1 of 6 reported. Realized figures only.
Reading the trails
$KOLNY
One correction first, because it is the assumption this page most often has to undo: $KOLNY is not the collateral. A forager posts its bond in the vault’s base asset, the same asset as deposits, the cache and realized losses, so the loss waterfall can settle without anything being sold at the worst possible moment. The program reads no price feed at all.
The token’s link to colony performance is narrower than that, and it runs one way. When the risk cache sits above its four percent reserve target, surplus can be used to buy $KOLNY on the market and burn it. Stated as plainly as the mechanism itself: that buyback is not a program instruction. The colony program holds no route to a market, so it is a treasury action taken outside the program, and the on-chain record of it is the resulting transfer.
This page describes the mechanism and the published parameters. It does not discuss price.
three flows
bond
Every forager posts a bond to register, denominated in the vault's base asset -- the same asset as deposits, the cache and realized losses, so a slash settles without anything being sold. The requirement is the greater of a floor and ten percent of its allocation, and only seventy percent of what is posted counts toward capacity. If pheromone would lift a forager above what its bond supports, the allocation is capped instead of the bond being raised.
slash
A rule breach or two epochs of silence seizes the whole bond. A loss past the drawdown threshold seizes a share proportional to the overshoot. Half of whatever is seized is burned permanently; the rest funds the cache. That burn is denominated in the base asset, so it does not reduce $KOLNY supply.
burn
When the cache sits above its four percent target, surplus can be used to buy $KOLNY on the market and burn it. That is the token's one link to colony performance, and it only exists while the reserve is already full. The buyback is a treasury action rather than a program instruction: the colony program holds no route to a market and reads no price.
bond arithmetic
required_bond = max(min_bond, bond_ratio * allocation)max_allocation = posted_bond * (1 - haircut) / bond_ratiobond_value = (1 - haircut) * bond_tokenssymbols
bond value falls under requirement
Recognized value is the recorded bond less the haircut. It falls because a loss inside the sub-account has eaten into the bond itself, not because a price moved.
top-up window opens
The operator can restore collateral inside the window with no penalty and no burn.
new allocation freezes
Missing the window stops fresh capital from routing in. Existing positions are unwound in the normal way, not liquidated.
second window passes
Past that, the shortfall is handled as a rule breach, which seizes the whole bond rather than a proportional share.
stated plainly
The bond sits inside the sub-account the operator trades from, so a loss that exhausts allocated principal keeps eating into the bond itself. Between two settlements an operator can thin its own collateral simply by losing, while capacity is still measured against the figure recorded at the last settlement. The haircut and the capped withdrawal reduce that. They do not remove it.
Two mitigations are implemented and neither is a cure. Allocation capacity recognizes only seventy percent of the recorded bond, so capital is not extended against collateral that may already be partly consumed. Settlement then withdraws at most what the sub-account actually holds, so a spent bond cannot make the waterfall attempt an over-withdrawal and stall the epoch crank for everyone else.
The second limit is on the token side and is written here rather than left for a reader to find later. The surplus buyback runs outside the program, so it depends on a treasury acting rather than on an instruction anyone can call and verify in advance.
published parameters
These are config values on the program, range-checked on-chain so an out-of-range write is impossible to store. Each row names the field a reader can look up against the running program.
| parameter | on-chain field | default | meaning |
|---|---|---|---|
| Evaporation rate | rho_bps | 0.16 | Per-epoch forgetting. Half-life of about four epochs. |
| Epoch length | epoch_duration_secs | 7 days | Configurable between 1 and 30 days. |
| Deposit scale | deposit_scale_q | 1.0 | Largest change a single epoch can make to one trail. |
| Performance scale | perf_norm_s_bps | 10% | Risk-adjusted return at which the deposit saturates. |
| Risk aversion | risk_aversion_bps | 1.0x | Weight applied to the drawdown penalty. |
| Max weight | w_max_bps | 20% | No single forager may hold more than this share of the pool. |
| Drop threshold | w_drop_bps | 3% | Below this a forager is demoted and its capital withdrawn. |
| Scout budget | scout_budget_bps | 10% | Reserved for unproven agents. Never allocated by pheromone. |
| No-trade band | reband_band_bps | 2% | Weight moves smaller than this are not rebalanced. |
| Turnover cap | turnover_cap_bps | 25% | Ceiling on capital moved in any one epoch. |
| parameter | on-chain field | default | meaning |
|---|---|---|---|
| Bond ratio | bond_ratio_bps | 10% | Bond required as a fraction of allocated capital. |
| Bond haircut | bond_haircut_bps | 30% | Share of a posted bond not recognized as allocation capacity. It tightens the requirement rather than loosening it: 10% of allocation becomes 14.3%. |
| Probation drawdown | dd_probation_bps | 15% | Current drawdown that freezes new allocation. |
| Slash drawdown | dd_slash_bps | 30% | Current drawdown that seizes bond. |
| Epoch loss limit | epoch_loss_limit_bps | 10% | Realized loss in one epoch that pauses a forager. |
| Max leverage | max_leverage_x | 1x | Unlevered spot only. Borrowing is disallowed on-chain. |
| Single-asset cap | max_single_asset_bps | 40% | Most of one asset a sub-account may hold. |
| Slash burn share | slash_burn_bps | 50% | Half of every seized bond is burned; half funds the cache. |
| Cache accrual | cache_accrual_bps | 10% | Share of realized profit routed to the insurance cache. |
| Cache reserve target | cache_reserve_target_bps | 4% | Target cache balance as a fraction of value under colony. |
always public
None of these sit behind a tooltip, an expander, or a separate report. A fund that hides its drawdown is lying about what it is.
keep reading