Install and set up Instant Convert
What must be in place first, activating and installing the addon, switching it on, and the order to configure it in, ending with a first convert on a small amount before anyone else can use it.
The order below matters. Each step depends on the one before it, and a console that is switched on before the house holds anything refuses every convert with "Convert to X is temporarily unavailable", which looks like a fault and is not.
Before you begin
- A working Bicrypto install on 6.8.2 or newer, the first core that carries Convert core level 3. The core exports the level; the addon reads it on every request and answers 503 "Instant Convert needs a newer Bicrypto core (Convert level N)" on a core that is too old. Level 1 is enough for converts, automatic hedging needs level 2, house movements need level 3.
- The core update's database step has run. The addon checks the
CONVERTmembers of the transaction and profit type columns in the live schema and answers 503 "Instant Convert's database columns are not ready" until they are there. - The purchase code for Instant Convert, from your MashDiv dashboard.
- A Super Admin account. Every convert's fee is credited to the Super Admin's wallet; with no Super Admin, quotes are refused.
- The cron process running (
pm2 listshows it online). Send payouts, hedge booking, quote expiry and house movements all run there. - Two-factor authentication enabled platform-wide, and on the account of each admin who will act, if you will use the house page. Every action on it demands a second factor, and it refuses rather than falls back to a password.
And, depending on what you intend to offer:
| You want | You also need |
|---|---|
| Converts between Spot balances | An active exchange provider (Binance, KuCoin, OKX or another supported one). Spot inventory lives on that account and is priced from its books. |
| Converts between Ecosystem balances | The Ecosystem addon, enabled and licensed. |
| Convert & Send to an external address | The Ecosystem addon, the chain addon for each non-EVM chain you open (Solana, TRON), and coins at the house's own address on each chain. |
| Automatic hedging | An exchange provider. Adopting an order after an ambiguous exchange error is supported on KuCoin, Binance and OKX only. |
| House movements between custody and the exchange | Both of the above. |
The server itself needs nothing beyond the platform's own server requirements: Node.js 22, 24 or 26, a MySQL or MariaDB server, and Redis. Instant Convert adds no service of its own.
Install and activate
-
Activate the licence. Go to Admin → System → Extension Manager, find the Instant Convert card and open it. Until the licence is activated the card reads Activate and its switch is disabled. Press Activate License, paste the purchase code and confirm. A server with no outbound access can use the License File tab with the certificate from your MashDiv dashboard.
-
Install the release. On the product page press Check for Updates, then the Install button when it is offered (it names the release, as in Install v6.0.1), and read the Releases tab first. The install downloads and verifies the release but runs nothing, so finish it from a shell:
pnpm updatorThat stops the apps, installs dependencies, applies the schema and seed data, builds the frontend and starts everything again. It is what creates the
convert_*tables, registers the eight Convert cron jobs and seeds the permission keys. -
Check who can open the console. The install grants the Convert keys from keys your roles already hold: every role with
view.transactiongets theview.convert*keys, and every role with bothedit.depositandedit.withdrawgets theedit.convert*keys. The threemanage.convert.*keys, which approve, confirm and reverse payouts and resolve hedges, are granted to nobody. Give them by hand under Users → Roles & Permissions → User Roles to the people who will work those queues. See Permissions. -
Switch it on. Turn the Enabled switch on, on the product page or the card. The extension is seeded off, so nothing is reachable until this is done: Instant Convert appears in the admin menu under Extensions → Trading Platforms, Convert appears under Trading in the user navigation, and the API stops answering "Instant Convert is installed but disabled". It takes effect without a restart.
First configuration
Do these in order. Until step 4 is done no convert can execute, so users who find the page early see refusals rather than bad prices.
-
Read the settings before you change them. Open Admin → Convert → Settings. The shipped defaults are deliberately conservative: a 0.2% fee, a 0.5% spread, a 10-second quote, $10 to $10,000 per convert, $50,000 per user per day, $250,000 across the platform per hour, and every feature that moves money on its own (hedging, Send, house movements, the profit sweep) off. See Settings for each tab.
-
Choose the reference venue. Under Price guards, leave Reference venue on Automatic (another venue) (a curated public venue that is not your trading provider) or name one. Every quote is refused when the two disagree by more than the reference deviation, or when the reference cannot be read, so a reference that does not list your coins refuses them. See Pricing.
-
Add the assets users may convert. Admin → Convert → Assets, then Add asset. One row per currency and wallet type. A Spot row needs the currency enabled under Finance → Currency Management → Cryptocurrencies; an Ecosystem row needs an enabled ecosystem token. Choose whether it may be given (Convert from), received (Convert to) or both, and whether it is hedged. See Assets.
-
Fund the house and set its floors. Admin → Convert → Inventory. For each asset set a floor (converts into it close before the house goes below it) and a target (what hedging and movements aim for), then put coins in: Fund moves Spot and single-chain pooled Ecosystem balances from the Super Admin wallet; everything else is funded on-chain to the house's own address. Read Inventory and funding before you send anything: coins sent from your own master wallet are never credited, and coins withdrawn from your own exchange account show in pool backing as exchange drift, so fund the house from outside the platform.
-
Make a first convert yourself, on a small amount, from an ordinary user account (a Super Admin converts fee-free, so the fee path is not exercised). Then check the order under Admin → Convert → Orders: its rate, its fee, and the price inputs it was built from. Check the Super Admin wallet received the fee.
-
Decide on hedging. It is off. If you have an exchange provider, set Hedging mode to Monitor only first on the core house page (Instant Convert house, opened with House inventory on Finance → Transaction Management → Pool Backing), watch what the hedger would send for a day, then set it to Automatic. See Hedging.
Before you announce it:
- The fee and spread are what you intend, and the drift and reference limits sit below the spread (the page refuses a save otherwise).
- Every asset you opened has a floor, a target and a funded house balance, and none shows Below floor on the dashboard.
- Ecosystem assets show Open for balance converts in the eligibility column, or you meant them to be Send-only.
- Somebody holds
manage.convert.send,manage.convert.hedgeandmanage.convert.rebalance, and the alerts reach them. - A test convert executed, its fee reached the Super Admin wallet, and its price inputs look right.
-
convertMaxUnhedgedUsdis a position you are willing to carry if hedging stops. - The cron screen lists the eight Convert jobs with recent runs.
Optional, once the above is working:
- Convert & Send. Add a Send chain per currency and chain under Inventory → Send chains (Add Send chain), fund each house address on-chain, then turn Convert & Send on in Settings. See Sends.
- House movements. Only with hedging, and only after a canary. See Movements.
- The daily profit sweep. See Profit & loss.
Switching it off
Disabling the addon does not flatten the house's position. Set Mode to Drain in Settings first: quoting closes and, with hedging on Automatic and not paused, the hedger keeps running, only ever reducing exposure, until every hedged asset is flat. Then disable. With hedging Off, paused or on Monitor only nothing is traded, and an asset that is not hedged is never flattened: that exposure stays.
When you flip the switch off, the Extension Manager asks the addon what it would
leave in flight: Sends whose reservation is still open, hedge orders planned,
sent or in review, house movements not finished, and unhedged exposure of a
dollar or more. If there is any, the switch is refused with that list and stays
on, and the Extension Manager has no button to acknowledge it. To disable anyway,
send PUT /api/admin/system/extension/<productId>/status with
{"status": false, "acknowledgeInFlight": true} (permission edit.extension).
Nothing in flight is abandoned. The four jobs that finish work already started (paying and confirming Sends, booking hedge fills, verifying movements) keep running while the addon is disabled or unlicensed. The four that start new work stop. The Convert console itself answers 404 once the addon is off, so anything left in review is resolved from the core house page, which does not depend on the addon being enabled or licensed.