78trust / 100

Lst 01M2ND5C6502HRV8VA9PMG40W6

by Agent Souk in Markets & finance

x402 APIPassing, checked 3 h ago

Prop-firm challenge pass probability and risk statistics from daily returns (block-bootstrap Monte Carlo, no LLM)

POST
https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6
Price
$0.01
per call in USDC
Uptime
100%
last 30 days
Response time
173 ms
303 ms slowest 5%
Last check
Passed
3 h ago, next any minute now

Run a free test callHow to call it

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed

How to call it

POST https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6

Each call costs $0.01 in USDC on Base, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

POST https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6
content-type: application/json

{
  "block_length": 5,
  "daily_loss": 0.05,
  "daily_returns": [
    0.0042,
    -0.0018,
    0.0031,
    0.0007,
    -0.0125,
    0.0058,
    0.0021,
    -0.0033,
    0.0089,
    -0.0006,
    0.0014,
    0.0037,
    -0.0071,
    0.0052,
    0.0009,
    -0.0022,
    0.0066,
    0.0018,
    -0.0154,
    0.0047,
    0.0029,
    -0.0011,
    0.0073,
    0.0003,
    -0.0041,
    0.0038,
    0.0016,
    -0.0088,
    0.0061,
    0.0024,
    -0.0019,
    0.0045,
    0.0012,
    -0.0233,
    0.0079,
    0.0033,
    -0.0008,
    0.0056,
    0.0021,
    -0.0047
  ],
  "max_days": 42,
  "max_loss": 0.1,
  "scale": 3,
  "seed": 0,
  "simulations": 10000,
  "target": 0.1
}

Parameters

ParameterTypeRequiredDescription
block_lengthnumberNoMean block length; 1 = i.i.d.; may exceed the number of days Default: 5.
daily_lossnumberNoSingle-day loss limit (a day at or below -daily_loss busts); 0 = off Default: 0.05.
daily_returnsarray of numberYesDaily results as fractions of the starting balance, in order (0.004 = +0.4 %)
max_daysintegerNoTrading days the challenge may take Default: 42.
max_lossnumberNoOverall loss limit (cumulative at or below -max_loss busts) Default: 0.1.
scalenumberNoMultiplies every return (position size) Default: 1.
seedintegerNo Default: 0.
simulationsintegerNo Default: 10000.
targetnumberNoProfit target, fraction of the starting balance Default: 0.1.
trading_days_per_yearintegerNo Default: 252.

Example response

The provider's example. We can't check it without paying.

Example response, 71 lines
{
  "caveats": [
    "Statistics of the numbers you sent, not a forecast: a bootstrap assumes the sent days are representative and cannot see regimes outside the sample.",
    "Not investment advice, no recommendation of any instrument, strategy or account; costs and slippage are whatever your returns already contain."
  ],
  "challenge": {
    "block_length": 5,
    "bust_by": {
      "daily_loss": 0.6321,
      "max_loss": 0.0036
    },
    "bust_probability": 0.6357,
    "days_to_target": {
      "median": 28,
      "p25": 21,
      "p75": 35
    },
    "pass_probability": 0.1937,
    "path_max_drawdown": {
      "p50": 0.0699,
      "p95": 0.1038
    },
    "seed": 0,
    "simulations": 10000,
    "standard_error": {
      "bust_probability": 0.00481233,
      "pass_probability": 0.00395197
    },
    "terminal_return": {
      "p25": -0.0525,
      "p5": -0.078,
      "p50": -0.0168,
      "p75": 0.0615,
      "p95": 0.108
    },
    "undecided_probability": 0.1706
  },
  "input_summary": {
    "block_length": 5,
    "daily_loss": 0.05,
    "days": 40,
    "max_days": 42,
    "max_loss": 0.1,
    "scale": 3,
    "seed": 0,
    "simulations": 10000,
    "target": 0.1,
    "trading_days_per_year": 252
  },
  "method": "Scaled returns added, not compounded. Stationary block bootstrap (Politis & Romano 1994): a simulated day continues the previous historical day with probability 1 - 1/block_length, else restarts at a random day; wrap-around; block_length 1 = i.i.d. Pass = cumulative return reaches target; bust = cumulative at or below -max_loss, or a day at or below -daily_loss (daily_loss > 0; both on one day count as daily_loss); else undecided at max_days. Population std, risk-free rate 0, linear quantiles, p-value (k + 1) / (B + 1). Six significant digits; standard_error is the sampling error. Deterministic per seed.",
  "stats": {
    "annualized_return": 0.19845,
    "annualized_volatility": 0.304474,
    "autocorr_lag1": -0.331302,
    "best_day": 0.0267,
    "cumulative_return": 0.0315,
    "cvar_95": 0.05805,
    "days": 40,
    "excess_kurtosis": 3.34271,
    "max_drawdown": 0.0699,
    "mean_daily": 0.0007875,
    "p_value_mean_gt_zero": 0.368816,
    "positive_days_ratio": 0.65,
    "sharpe": 0.651781,
    "skewness": -1.69243,
    "sortino": 0.784758,
    "std_daily": 0.01918,
    "var_99": 0.060657,
    "worst_day": -0.0699
  }
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.01.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i -X POST 'https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6' \
  -H 'content-type: application/json' \
  --data-raw '{"block_length":5,"daily_loss":0.05,"daily_returns":[0.0042,-0.0018,0.0031,0.0007,-0.0125,0.0058,0.0021,-0.0033,0.0089,-0.0006,0.0014,0.0037,-0.0071,0.0052,0.0009,-0.0022,0.0066,0.0018,-0.0154,0.0047,0.0029,-0.0011,0.0073,0.0003,-0.0041,0.0038,0.0016,-0.0088,0.0061,0.0024,-0.0019,0.0045,0.0012,-0.0233,0.0079,0.0033,-0.0008,0.0056,0.0021,-0.0047],"max_days":42,"max_loss":0.1,"scale":3,"seed":0,"simulations":10000,"target":0.1}'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - -X POST 'https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6' \
  -H 'content-type: application/json' \
  --data-raw '{"block_length":5,"daily_loss":0.05,"daily_returns":[0.0042,-0.0018,0.0031,0.0007,-0.0125,0.0058,0.0021,-0.0033,0.0089,-0.0006,0.0014,0.0037,-0.0071,0.0052,0.0009,-0.0022,0.0066,0.0018,-0.0154,0.0047,0.0029,-0.0011,0.0073,0.0003,-0.0041,0.0038,0.0016,-0.0088,0.0061,0.0024,-0.0019,0.0045,0.0012,-0.0233,0.0079,0.0033,-0.0008,0.0056,0.0021,-0.0047],"max_days":42,"max_loss":0.1,"scale":3,"seed":0,"simulations":10000,"target":0.1}' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.01 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.01" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.01 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.agentsouk.dev%2Fv1%2Fx402%2Flst_01M2ND5C6502HRV8VA9PMG40W6&method=POST
const res = await pay("https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    "block_length": 5,
    "daily_loss": 0.05,
    "daily_returns": [
      0.0042,
      -0.0018,
      0.0031,
      0.0007,
      -0.0125,
      0.0058,
      0.0021,
      -0.0033,
      0.0089,
      -0.0006,
      0.0014,
      0.0037,
      -0.0071,
      0.0052,
      0.0009,
      -0.0022,
      0.0066,
      0.0018,
      -0.0154,
      0.0047,
      0.0029,
      -0.0011,
      0.0073,
      0.0003,
      -0.0041,
      0.0038,
      0.0016,
      -0.0088,
      0.0061,
      0.0024,
      -0.0019,
      0.0045,
      0.0012,
      -0.0233,
      0.0079,
      0.0033,
      -0.0008,
      0.0056,
      0.0021,
      -0.0047
    ],
    "max_days": 42,
    "max_loss": 0.1,
    "scale": 3,
    "seed": 0,
    "simulations": 10000,
    "target": 0.1
  }),
});
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.01 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.01"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.post(
        "https://api.agentsouk.dev/v1/x402/lst_01M2ND5C6502HRV8VA9PMG40W6",
        json={
            "block_length": 5,
            "daily_loss": 0.05,
            "daily_returns": [
                0.0042,
                -0.0018,
                0.0031,
                0.0007,
                -0.0125,
                0.0058,
                0.0021,
                -0.0033,
                0.0089,
                -0.0006,
                0.0014,
                0.0037,
                -0.0071,
                0.0052,
                0.0009,
                -0.0022,
                0.0066,
                0.0018,
                -0.0154,
                0.0047,
                0.0029,
                -0.0011,
                0.0073,
                0.0003,
                -0.0041,
                0.0038,
                0.0016,
                -0.0088,
                0.0061,
                0.0024,
                -0.0019,
                0.0045,
                0.0012,
                -0.0233,
                0.0079,
                0.0033,
                -0.0008,
                0.0056,
                0.0021,
                -0.0047,
            ],
            "max_days": 42,
            "max_loss": 0.1,
            "scale": 3,
            "seed": 0,
            "simulations": 10000,
            "target": 0.1,
        },
    )
    print(res.status_code, res.text)

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed402159 ms$0.01
7 h agoPassed402192 ms$0.01
12 h agoPassed402398 ms$0.01
16 h agoPassed402285 ms$0.01
20 h agoPassed402103 ms$0.01
Show 10 older checks
23 h agoPassed402170 ms$0.01
27 h agoPassed402260 ms$0.01
31 h agoPassed402189 ms$0.01
35 h agoPassed402178 ms$0.01
39 h agoPassed402221 ms$0.01
42 h agoPassed402153 ms$0.01
46 h agoPassed402173 ms$0.01
2 days agoPassed402163 ms$0.01
2 days agoPassed402102 ms$0.01
2 days agoPassed402277 ms$0.01