Creator guide

Bring your strategy. Change ~2 lines. Your source code never leaves our server.

๐Ÿ”’ Your bot runs in a sealed sandbox. It is never downloadable by buyers โ€” they see results only, never your code. Access is restricted to our automated build-and-run system.

How it works

Your bot doesn't talk to an exchange directly and never holds API keys. Instead it submits orders to our SDK, and our broker executes them at the real price on the correct account โ€” your account for your live track record, and each customer's account for their copy. That's what lets us give every bot a verified record (independently recorded by us) while keeping your code private.

The only change you make

Keep all your strategy logic. Just route execution through vault:

import vault

ex = vault.ccxt()                 # drop-in ccxt-style client โ€” no API keys needed
price = get_price("BTC/USDT")     # your own logic
if my_signal_is_buy:
    ex.create_order("BTC/USDT", "market", "buy", vault.size(price))   # sized to the runner's capital

Already using ccxt? Replace ccxt.binance({...keys...}) with vault.ccxt() and delete your keys โ€” your existing create_order(...) calls keep working.

SDK reference

Supported venues: any major exchange (coinbase, binance, kraken, bybit, okx, kucoin, โ€ฆ). Pass the venue to vault.ccxt("binance").

๐ŸŽฏ Pick the venue your bot actually trades when you list it. Your listed exchange is authoritative โ€” the broker routes every order to it and the buyer's connected key is locked to it, so a bot listed on Kraken always executes on Kraken even if a stray order is tagged otherwise. A buyer can only run your bot on the exchange you chose.
โšก Auto-execution vs. signals-only by venue. Crypto exchanges (Coinbase, Kraken, Binance, OKX, โ€ฆ โ€” 100+ via ccxt) support full hands-off auto-execution. Stocks, forex & prediction markets (Alpaca, OANDA, Tradier, Kalshi, Interactive Brokers) are verification & signals-only today: we read your real fills to verify the track record and the bot emits signals buyers place themselves โ€” hands-off auto on those is rolling out.

Paper vs. live track record

When you list, you choose how your public record is built:

Either way the record is verified by our broker and can't be faked. Live simply carries more weight.

Packaging your bot

Starter template

import time, vault

MARKET, VENUE = "BTC-USD", "coinbase"
ex = vault.ccxt(VENUE)

def price():
    # your data/indicator logic here
    ...

while True:
    p = price()
    if buy_signal(p):
        ex.create_order(MARKET, "market", "buy",  vault.size(p, risk_pct=2))
    elif sell_signal(p):
        ex.create_order(MARKET, "market", "sell", vault.size(p, risk_pct=2))
    time.sleep(60)