Fee schedule¶
Crank charges a technology service fee on value-bearing actions. Reads are
free. Every parameter on this page is an admin-updatable on-chain
GlobalConfig value — nothing is hardcoded in business logic. The numbers
below are the current locked defaults (MB#13601); the authoritative source at
runtime is the on-chain config, mirrored in Django by the FeeShareConfig
singleton.
These are defaults, not promises
All rates are admin-updatable governance parameters. Read them live (see Reading live values) rather than assuming the numbers here. Nothing on this page is a profit promise or a return expectation.
Base fee and volume tiers¶
The fee is a percentage of the action's notional value. The rate steps down with an agent's trailing 30-day volume:
| Monthly volume (per agent) | Rate | bps |
|---|---|---|
| $0 – $1M | 0.75% | 75 |
| $1M – $10M | 0.55% | 55 |
| $10M+ | 0.40% | 40 |
- Floor: $0.05 per action.
- Reads: free.
- Volume tiering and aggregation are computed off-chain (Django) per agent.
FeeShareConfig fields: base_fee_bps=75, volume_tier_1_bps=75,
volume_tier_2_bps=55, volume_tier_3_bps=40,
volume_tier_1_max_usd_micro=1_000_000_000_000 ($1M),
volume_tier_2_max_usd_micro=10_000_000_000_000 ($10M),
fee_floor_usd_micro=50_000 ($0.05).
Discounts¶
Staker discounts¶
Holding $CRANK (by staked balance) reduces the fee. Thresholds are in base units (6 decimals):
| Tier | Staked $CRANK | Discount | bps |
|---|---|---|---|
| Bronze | 10,000 | 10% | 1000 |
| Silver | 100,000 | 25% | 2500 |
| Gold | 500,000 | 50% | 5000 |
stake_tier_1_threshold=10_000_000_000, stake_tier_2_threshold=100_000_000_000,
stake_tier_3_threshold=500_000_000_000; stake_discount_tier_1_bps=1000,
stake_discount_tier_2_bps=2500, stake_discount_tier_3_bps=5000.
Pay in $CRANK¶
Paying the fee in $CRANK applies an additional 15% discount
(pay_in_crank_discount_bps=1500) by setting pay_in_crank=true on the tool
call. It stacks multiplicatively with the staker discount.
Maximum combined discount¶
Gold (50%) then pay-in-$CRANK (15%) gives a maximum combined discount of 57.5%. At the top volume tier (0.40%) that is a minimum effective rate of 0.170%.
Tokenized equities (securities)¶
Tokenized equities (xStocks, Ondo) are charged a flat securities technology
service fee rather than the tiered percentage, and carry no growth
mechanics (no referral or clone split). This keeps the fee agnostic to route
and venue. equity_fee_bps on FeeShareConfig.
Growth fee splits¶
Splits are taken from the net fee (after discounts). All share parameters are admin-updatable.
| Split | Share | bps | Notes |
|---|---|---|---|
| Referral | 25% | 2500 | Single tier; no multi-level. |
| Clone creator | 15% | 1500 | Fee-share on clone actions — never a performance share. |
| Integrator | 0–20% | up to 2000 | Configurable, default 0. |
- Stacking guard: total share out is capped at 60%
(
max_total_share_bps=6000); Crank always keeps at least 40% of the net fee. - Anti-sybil: a referee must generate at least $5 of fees before any
referral earning accrues (
min_referee_fee_usd_micro=5_000_000), and earnings land pending with a 7-day claim delay (reward_claim_delay_seconds=604800).
Full design: docs/GROWTH_REWARDS_SPEC.md.
Crank Score perks¶
On-platform activity accrues a Crank Score that can unlock an additional fee
discount and a higher social-send limit. Read a wallet's breakdown and the perks
it unlocks with get_crank_score. Circular funding between wallets is flagged and
penalised.
Premium intelligence features¶
Some intelligence tools are billed as flat per-call premium features (not
percentage-of-notional), covered by a $CRANK-staker subscription or a per-call
x402 payment. Pricing model and cost basis: docs/X402_COSTING.md.
Reading live values¶
Do not hardcode these numbers in an integration. Read them from config:
# Backend / Django:
from fees.models import FeeShareConfig
cfg = FeeShareConfig.load() # singleton
print(cfg.base_fee_bps, cfg.volume_tier_2_bps, cfg.fee_floor_usd_micro)
At call time, the x402 gate computes the live effective fee for your caller
(volume tier, staker discount, pay-in-$CRANK) and returns it in the
PAYMENT_REQUIRED envelope's fee_usd. Treat that quote as authoritative for
the action you are about to take. See Authentication & x402.