procedure
the tame keystone callbacks on pons, in execution order.
graduation (postGraduate)
tame launched on pons, the launchpad on robinhood chain. a pons token trades on a bonding curve until it clears its graduation threshold, at which point pons opens a span: a concentrated-liquidity venue whose swaps and liquidity operations are settled by the pons conduit. tokens may attach a keystone at graduation, a contract the conduit consults at fixed points in the settlement lifecycle. tame is its own keystone.
postGraduate fires once, after the bound span exists. it stores the span id, the currencies, and the geometry constants in the contract's binding storage. all subsequent callbacks validate their incoming span against this record. interactions through any other span revert at the entrypoint.
the callback also enforces geometry: currency0 must be robinhood chain's native token, currency1 must be the tame token, fee must be zero since tame's logic operates entirely outside the fee mechanism, and tick spacing is fixed at 64 to constrain the resolution at which liquidity can be placed. any span failing these constraints reverts before graduation completes, and the token stays on the curve.
the keystone manifest (keystone address flags)
pons does not keep an editable registry of which keystone may do what. permissions are carried in the keystone's own address. the four callback flags are mined into the low bits of the deployed address via CREATE2, and the conduit validates them before every invocation.
a callback the address does not authorize can never fire, and pons cannot add one after the fact. the binding between the token, its keystone logic, and the bound span is enforced by the runtime, not by trust.
after settlement, coefficient path (postSettle)
fires on every swap the conduit settles through the bound span. reads sqrt price and active tick from span state. walks tick liquidity in the fixed window around the active tick.
for each populated tick it reads net liquidity, weights each contribution by inverse distance from the active tick, and normalizes the weighted sum by total span liquidity to produce the tameness between zero and one.
the keystone does not modify the swap or charge a fee. it exists to record state. the recomputed coefficient is written as 18-decimal fixed-point, cumulative_swap_count is incremented, and CoefficientUpdated is emitted for off-chain indexers.
before span open, position-open path (preSpanOpen)
when a provider opens or increases a position, the keystone reads the position's tick lower and tick upper, computes max allowable tick width = MAX_TICK_RANGE × (1 − coefficient), and reverts with RangeExceedsAllowable if the range exceeds it.
at coefficient zero any range is acceptable. at coefficient near one only positions within one tick spacing of the active tick are accepted.
the gate is not advisory. there is no penalty path, no fee, no graceful degradation. the entire operation simply does not complete. late providers cannot fight the trend, only follow it.
before span close, position-close path (preSpanClose)
when a provider closes or decreases a position, the keystone does not reject the operation. instead it computes a coefficient adjustment proportional to the withdrawn liquidity's distance from the active tick.
withdrawals from concentrated bands produce smaller decreases than withdrawals from wide bands.
positions far from the active tick contribute less to the coefficient, so removing them costs less; positions at the active tick contribute the most, so removing them is the only mechanism that meaningfully relaxes the geometry. the geometry resists dilution. CoefficientUpdated is emitted.