Developer API · rolling out · owner-signed by design

Build the bot. Keep the key.

LOSURIA gives a developer a cross-device passkey wallet, an API key for bot access and a bounded order-to-relay path. Your code builds the intent, the owner signs the exact limits and the relay submits only what the signature authorizes.

The 1% fee is checked in the execution boundary before broadcast. Your bot cannot remove it or widen the order. Value-moving routes remain tier- and safety-gated; nothing here is financial advice, and you trade only your own funds.

01 · Quickstart

From key to first call in a minute.

Create a key in the app (API tab), inject it from your secret manager into the process environment, and authenticate every request with a bearer header. Your key is a secret: send it only over HTTPS in the header, never in a URL or query string.

shell
# 1. Inject LOSURIA_API_KEY from your secret manager for this process only.
#    Do not write it to a plaintext file or commit it.
      # Set LOSURIA_API_KEY in this process from your secret manager before running the bot.

# 2. install the dependencies for reads, Solana relay, and EVM signing
pip install requests web3 pynacl base58

# 3. run the read-only demo — it moves nothing
python3 losuria_bot.py
python · your first authenticated call
import os, requests

KEY  = os.environ["LOSURIA_API_KEY"]
BASE = "https://app.losuria.com"
H    = {"Authorization": "Bearer " + KEY}

st = requests.get(BASE + "/api/v1/status", headers=H).json()
print(st["key_id"], st.get("tier"))
02 · Developer CLI

A local command line for the same signed rails.

Install the current LOSURIA CLI v0.6.0 for read-only API diagnostics, unsigned Solana builder preparation, bounded bot plans and offline contract-call inspection. The verified release includes the canonical bot entry point, so losuria bot works after the one-line install. It uses the same owner-bound platform contract as the app; it never stores a wallet key, signs a transaction or broadcasts one.

shell · one-line install
# HTTPS bootstraps; the installer verifies the signed release before install.
curl -fsSL https://losuria.com/losuria-install.sh | sh
losuria
losuria --version
# Optional: enter the key once at a hidden prompt.
losuria api configure
losuria api doctor
Read & diagnoseexplicit opt-in, protected local config
api read and api doctor use a fixed HTTPS route allowlist and redact sensitive response fields. They do not expose wallet data in the command output.
Build & inspectunsigned preparation only
api build, contract inspect and bot-plan produce bounded input for the existing owner-signing flow. The separate local signing and relay decision remains explicit.
03 · Custody

You sign. We pick the block.

The current execution path holds no Wallet-owner key. There is no API session to arm or budget cap to configure: each amount is inside its Owner signature. An EVM executor allowance may be reusable, but cannot move value without one of those signatures.

First-blockEthereum · Base · Monad
Approve the immutable executor, then sign the order — token, input, output floor, recipient, fee ceilings, safety policy, exits and windows — and post it to /api/v1/orders. The watcher submits only that signature. Deleting the API order removes it from the hosted watcher; cryptographic termination requires the Owner's on-chain cancel, expiry, or revoking the executor allowance.
Solanaone owner-signed order
For an explicit swap, your bot signs the complete fee-bearing message locally and LOSURIA verifies it before relay. For background entry and exits, the owner creates an isolated on-chain conditional order before the pool exists. Amount, mint, pool bounds, fee, deadlines, slippage and exit policy are committed in that signature; the keeper pays only for submission and cannot redirect funds. Owner-signed cancellation recovers principal and account rent without operator approval. Every order remains subject to the documented owner-signature and fee checks.
04 · Endpoints

Intelligence: facts you can build on.

Opens on an active Pro or Whale plan. It serves what launched and lets you inspect your own activity — and read handlers cannot move value: they hold no wallet signer or session key. Judgement and signing stay in your own code. The paid Intelligence allowance is 2,000 requests per UTC day on Pro and 20,000 on Whale; reading its meter does not consume that allowance. Signed orders, automation and relays remain Whale-gated; their execution and safety lanes are separate, so an Intelligence meter cannot block cancellation, recovery or legitimate execution. Per-key and per-route anti-abuse buckets protect every lane independently. Money-moving access remains subject to the documented owner-signature, fee and safety checks. For clarity, money-moving access will be enabled only when the documented safety requirements are met. The launch proof page shows recorded launches with their deployment transaction, without signup.

The full surface.

Every endpoint is authenticated with your bearer key. Bodies and responses are JSON. Base URL: https://app.losuria.com.

Intelligence — data only, no execution
GET/api/v1/intel/launches?chain=base&limit=50The launch feed as structured facts, without the public surface's publication delay.
GET/api/v1/intel/usageYour own daily meter. Reading it costs nothing against your allowance.
GET/api/v1/intel/entitlementWhat your plan opens today: tier, daily allowance, and the endpoints it covers.
Read
GET/api/v1/statusKey identity, tier, usage meter, and non-secret recovery metadata.
GET/api/v1/launches?minutes=60Recent token launches seen across the supported chains.
GET/api/v1/evm/readiness?chain=baseThe currently approved executor addresses and versions, your allowance, wrapped/native balances, nonce and gas schedule — read from the deployment's nodes and scoped to the owner wallet bound to the API key. Clients discover this response instead of hard-coding a historical executor version.
GET/api/v1/ordersYour submitted and pending owner-signed orders.
GET/api/v1/orders/{id}/revocationReturn the original signed V5 tuple, pinned executor, digest and node-backed revoked flag for your own order. This safety read is outside the commercial usage meter so a client can verify and finish an Owner-only on-chain cancellation even when normal usage is exhausted.
GET/api/v1/limitsYour limit orders, including execution_ready and execution_block_reason. A limit buy requires a native LOSURIA DEX pool; stale or external-only rows remain readable but are never submitted.
GET/api/v1/dcaYour DCA schedules and confirmed slice progress, including execution_ready and execution_block_reason. Stale or external-only rows remain readable but no slice is submitted.
GET/api/v1/fillsDurable owner-scoped execution records with workflow provenance.
GET/api/v1/gridsYour grids and the number of pre-signed rungs still available.
Automations
POST/api/v1/ordersPost the required v5_auth: one owner signature binds the bounded entry, safety policy, deadlines, fee ceilings and deterministic exits. The watcher can submit only through the verified immutable executor.
DEL/api/v1/orders/{id}Remove a pending order from the hosted watcher. It does not forge an Owner transaction; use on-chain Owner cancel, expiry, or allowance revocation for cryptographic termination.
POST/api/v1/limitsCreate a limit buy for the key's bound wallet.
DEL/api/v1/limits/{id}Cancel a limit order and remove its pre-signed exit.
POST/api/v1/dcaCreate a bounded DCA schedule.
DEL/api/v1/dca/{id}Stop and remove a DCA schedule.
POST/api/v1/gridsCreate the owner-scoped grid definition. This stores no signer and cannot execute until its exact bounded rungs are prepared, signed locally, and authorised.
POST/api/v1/grids/{id}/prepareBuild the owner-bound typed data for every grid rung. The response is signing input only; it does not activate the grid.
POST/api/v1/grids/{id}/authorizeVerify and durably store the locally produced rung signatures. Amounts, bounds, fees, deadlines and receiver remain committed by the owner.
DEL/api/v1/grids/{id}Stop the grid and remove every unused pre-signed rung through the unmetered safety lane.
First-block · owner-signed execution
POST/api/v1/ordersPost a signed snipe order with the required v5_auth. Entry, safety, fees and deterministic exits are committed together. An EVM wrapped-native allowance may be reusable, but it cannot move value without a matching Owner signature; the API key and backend hold no Wallet signing authority.
GET/api/v1/evm/status?chain=Which tokens the sniper has fired on.
Solana · you sign, LOSURIA verifies the fee + relays
POST/api/v1/solana/buildSend the gross input, exact expected_pool, and min_out_floor from the same RPC quote. LOSURIA may strengthen, but never lower, that floor; your client verifies the pool, fee, route, and every instruction before signing.
POST/api/v1/solana/relaySubmit your signature; the fee leg is verified before broadcast.
POST/api/v1/solana/launch/buildBuild the owner-bound Solana token-launch transaction set for local inspection and signing. The mint, pool, fee leg, owner and launch parameters remain explicit in the returned messages.
POST/api/v1/solana/launch/pool-buildBuild the owner-bound pool leg for an existing launch so the client can inspect and sign it locally.
POST/api/v1/solana/launch/relaySubmit the locally signed launch or pool messages; LOSURIA verifies the owner, fee leg, expected accounts and replay bounds before relay.
GET/api/v1/solana/conditional/ordersList only the on-chain conditional orders owned by the Solana wallet bound to this API key.
POST/api/v1/solana/conditional/buildBuild an isolated entry plus TP/SL, ladder or trailing policy for local owner verification and signature.
POST/api/v1/solana/conditional/relayRelay the verified owner-signed setup; the keeper receives no owner key.
POST/api/v1/solana/conditional/cancel/buildBuild unconditional owner recovery for one order.
POST/api/v1/solana/conditional/cancel/relayRelay the owner-signed recovery and refresh chain-backed order state.
POST/api/v1/relayBroadcast a locally-signed EVM raw transaction after the signer + fee check.
05 · Recipes

Strategies, copy-paste.

These use the Losuria client from the starter bot. Tune the filters, sizes and RPC to your own strategy — they are starting points, not a turnkey money machine.

Solana swap · explicit amount, owner-wallet signature

For a direct swap, build one fee-bearing transaction for an explicit mint and amount, sign it locally, and let LOSURIA verify the fee before relay. For background execution, create a conditional on-chain order whose amount, deadlines, pool protections and exits are fixed by the same owner signature.

Non-custodial swap · sign locally, LOSURIA relays

LOSURIA builds the fee-bearing transaction, your bot signs it locally, and LOSURIA verifies the 1% before broadcasting. No cap, no custody.

python
WSOL = "So11111111111111111111111111111111111111112"
USDC = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
MIN_OUT = int(os.environ["LOSURIA_SOL_MIN_OUT"])  # from your RPC quote
POOL = os.environ["LOSURIA_SOL_POOL"]  # from the same RPC quote

ok, res = lo.swap_solana(WSOL, USDC, POOL, amount=2_000_000, min_out_floor=MIN_OUT, slippage_bps=100)
print("relayed" if ok else "rejected", res)

First-block EVM on your BYO chain

python
import os

token = os.environ["LOSURIA_BASE_TOKEN"]
amount = int(os.environ.get("LOSURIA_AMOUNT_WEI", "2000000000000000"))
code, result = lo.snipe("base", token, amount)
print(result)  # the owner signature is bounded to this token and amount

Owner-signed orders

python
import os

token = os.environ["LOSURIA_BASE_TOKEN"]
amount = int(os.environ.get("LOSURIA_AMOUNT_WEI", "2000000000000000"))
code, made = lo.snipe("base", token, amount)
if code == 200:
    print("signed order accepted", made)
else:
    print("refused", made)
06 · Errors & limits

Predictable under load. Safe under failure.

The execution API uses a per-key anti-abuse bucket: 25 requests/second, burst 300. Independent edge ceilings apply by route: reads 250/600, quotes 50/100, credential issuance 1/30, signed submissions 2/20, and safety 10/120 (steady RPS/burst). GET /api/v1/status returns the current per-key budget as rate_limit. These are anti-abuse controls, not billing; safety actions and order cancellation remain outside commercial execution usage.

HTTP + JSONone stable failure shape
Failures return the appropriate HTTP status and {"error":"machine_readable_code","error_id":"…"}. Keep error_id for support and logs; it identifies the server-side trace without exposing a request body or secret.
429retry reads, not money movement
Retry idempotent GETs with exponential backoff. Do not blindly retry an order, build, relay, or launch after a timeout: first query the authoritative status, then decide. The starter bot follows this rule.
Safety lanenever stranded by a quota
Credential revocation and order, limit and DCA cancellation bypass the normal plan and request bucket by using a separate safety bucket. They reduce authority, never create it, and remain available when ordinary execution traffic is throttled.
python · explicit mutation handling
code, result = lo.snipe("base", token, amount)
if code == 200:
    print("signed order accepted", result)
elif code == 429:
    # Do not resend blindly. Check the authoritative order state first.
    print("orders", lo.orders())
else:
    print("failed", result.get("error"), result.get("error_id"))
07 · Fees

One percent, enforced, not negotiable.

Swaps and snipes carry a 1% fee; native sends carry 0.05%. There is no separate fee for API traffic — a bot pays the same rate as a tap in the app.

  • On EVM, owner-signed execution uses the immutable V5 verifier published for Ethereum, Base and Monad. Swap Forwarder and LOSURIA DEX fees remain enforced on their respective routes; a trade that bypasses the required fee path is simply not a LOSURIA trade.
  • On Solana, the non-custodial relay parses your signed transaction and confirms the fee leg to the operator sink before it broadcasts. A transaction missing the fee — or signed by the wrong key — is rejected, never submitted.
  • Every forwarder is on-chain and source-verified. You can read the exact fee math yourself on the Verify and Architecture pages.
Your key, your keys

Your API key never leaves your machine except as the HTTPS bearer header to app.losuria.com. Your bot signs locally, with its own key, in every money-moving mode; the current execution path holds no Wallet-owner key; the API credential never substitutes for the owner-wallet signature. Keep the API key private: it authenticates your reads and signed-order submissions, but it never replaces your owner-wallet signature.

08 · Starter bot

One file from first call to first strategy.

The starter bot is a single self-contained file: the authenticated client, local signature verification, and the four recipes above. Its documented dependencies cover HTTP reads, EVM signing and Solana signing without hidden setup; signing libraries load only when their command is used.