@ostraagent/mcp 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ostra-mcp.js +40 -18
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ Keep the file and the passphrase off the machine. On a new machine, run `npx -y
|
|
|
47
47
|
- **Privacy:** `shield`, `shield_status`, `auto_shield`, `unshield`, `private_withdraw`
|
|
48
48
|
- **Recovery:** `recovery_status`, `set_guardian`, `set_recovery_policy`, `cancel_recovery`, `support_recovery`, `request_recovery`
|
|
49
49
|
- **Trading:** `tokens`, `token_info`, `pool_info`, `quote_swap`, `buy`, `sell`, `token_vault`, `transfer_token`, `claim_dividends`, `claim_referral`
|
|
50
|
-
- **Launching:** `pairs`, `launch` (paired with USDG, ETH or a listed Robinhood stock token, at a starting market cap in US dollars, with an optional dev buy and vesting), `launches`, `set_pool_setting`, `set_creator_share`, `release_creator_payout`, `airdrop_fund`, `airdrop_start`, `airdrop_claim`, `airdrop_close`, `vesting_info`, `vesting_release`, `vesting_claim_dividends`
|
|
50
|
+
- **Launching:** `pairs`, `launch` (paired with USDG, ETH, $OSTRA or a listed Robinhood stock token, at a starting market cap in US dollars, with an optional dev buy and vesting), `launches`, `set_pool_setting`, `set_creator_share`, `release_creator_payout`, `airdrop_fund`, `airdrop_start`, `airdrop_claim`, `airdrop_close`, `vesting_info`, `vesting_release`, `vesting_claim_dividends`
|
|
51
51
|
- **Identity:** `profile`, `upload_image`, `publish_profile`, `set_profile`, `publish_token_metadata`, `set_token_metadata`, `register_agent`, `set_agent_uri`
|
|
52
52
|
|
|
53
53
|
Every spend is simulated before its one-time key signs it. When a tool refuses, the error says whether it refused before anything was signed.
|
package/dist/ostra-mcp.js
CHANGED
|
@@ -18,7 +18,7 @@ var __export = (target, all) => {
|
|
|
18
18
|
var define_OSTRA_PACKAGED_default;
|
|
19
19
|
var init_define_OSTRA_PACKAGED = __esm({
|
|
20
20
|
"<define:OSTRA_PACKAGED>"() {
|
|
21
|
-
define_OSTRA_PACKAGED_default = { version: "0.1.
|
|
21
|
+
define_OSTRA_PACKAGED_default = { version: "0.1.2", deployment: { version: 1, chainId: 4663, fromBlock: "91991509", token: "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168", batchSettlement: "0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003", vaultImplementation: "0xa455cbf5Aa10cE858f3b250dc791FCD900e950BC", vaultBeacon: "0xE9F525B9EaeE48d13AEd28fE146F48f2832a18a0", vaultFactory: "0x043a15c514CFE2c797d33520bFF91a5DCdbf2979", poolImplementation: "0xC04d4a222dC1C966640B977608bE29949b0648ec", poolBeacon: "0x30669Ca534921038a531BBE27116d85bB7406fFF", pool: "0x6ea80F2462e5Fd783B0Ec3B2c7BaC96795980CD6", splitFactory: "0xAAf54A483B2c7c2c5ecFc1eDED5ed1619C1bA882", beaconOwner: "0x55533a51d9bd9b06F2D179d919BB31995EF96E5e", launchpad: { hook: "0x63A784afb8905452aDceC471a45E555F5caE68cC", fees: "0x8e79671DC9729476614C78aFcf2345D4c1963801", launchpad: "0xfC57162C0e3f9773F97fEa8d276e957d7c43A6C5", creatorSplit: "0x987994dE6A1d5303B9e3F50977cB0321BA4D033B", dispatcher: "0x44Bb65164b2855f8E80B142d5Fb9bDb72E869986", locker: "0xb593812363bAd70Ee381c7B54c4FC82b0BA3A4A7", devBuy: "0x0e1Fd799E136dcfEcad5695B07Ac5DAc5B2fF4bc", vesting: "0xadD9C1995910457312c156E7D8120D1b447E179a", airdrop: "0xBC798D956aF4c2B104FFC6106d5322294Bc103bb", owner: "0x6569E27A95a6A3E92A311B4Cc6600fed56aA50A2" } }, relayerUrl: "https://relayer.ostraagent.xyz", keeperUrl: "https://keeper.ostraagent.xyz", aggregatorUrl: "https://aggregator.ostraagent.xyz" };
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
|
|
@@ -11721,7 +11721,7 @@ var init_hash = __esm({
|
|
|
11721
11721
|
});
|
|
11722
11722
|
|
|
11723
11723
|
// ../sdk/src/constants.ts
|
|
11724
|
-
var ROBINHOOD_CHAIN_ID, ROBINHOOD_PUBLIC_RPC, USDG, USDG_EIP712_DOMAIN, X402_BATCH_SETTLEMENT, X402_BATCH_SETTLEMENT_DOMAIN, X402_MIN_WITHDRAW_DELAY, X402_MAX_WITHDRAW_DELAY, UNISWAP_V4_POOL_MANAGER, CHAINLINK_ETH_USD, CHAINLINK_ETH_USD_DECIMALS, ERC8004_IDENTITY_REGISTRY, WETH, MULTICALL3, ARBITRUM_NODE_INTERFACE, MAX_FEE_BPS, DEPOSIT_TIMEOUT_SECONDS, VAULT_SWAP_GAS_RESERVE, VAULT_VERSION, VAULT_MAX_URI_LENGTH, VAULT_ACTION, MIN_RECOVERY_DELAY, MAX_RECOVERY_DELAY, POOL_SETTING, CIRCUIT_BREAKER, VAULT_SWAP_GAS, LAUNCHPAD, DEV_BUY, AIRDROP, CREATOR_SPLIT, DEPOSIT_STATUS, BATCH_STATUS;
|
|
11724
|
+
var ROBINHOOD_CHAIN_ID, ROBINHOOD_PUBLIC_RPC, USDG, USDG_EIP712_DOMAIN, X402_BATCH_SETTLEMENT, X402_BATCH_SETTLEMENT_DOMAIN, X402_MIN_WITHDRAW_DELAY, X402_MAX_WITHDRAW_DELAY, UNISWAP_V4_POOL_MANAGER, CHAINLINK_ETH_USD, CHAINLINK_ETH_USD_DECIMALS, ERC8004_IDENTITY_REGISTRY, WETH, OSTRA, OSTRA_DECIMALS, OSTRA_PONS_CURVE, MULTICALL3, ARBITRUM_NODE_INTERFACE, MAX_FEE_BPS, DEPOSIT_TIMEOUT_SECONDS, VAULT_SWAP_GAS_RESERVE, VAULT_VERSION, VAULT_MAX_URI_LENGTH, VAULT_ACTION, MIN_RECOVERY_DELAY, MAX_RECOVERY_DELAY, POOL_SETTING, CIRCUIT_BREAKER, VAULT_SWAP_GAS, LAUNCHPAD, DEV_BUY, AIRDROP, CREATOR_SPLIT, DEPOSIT_STATUS, BATCH_STATUS;
|
|
11725
11725
|
var init_constants = __esm({
|
|
11726
11726
|
"../sdk/src/constants.ts"() {
|
|
11727
11727
|
"use strict";
|
|
@@ -11744,6 +11744,9 @@ var init_constants = __esm({
|
|
|
11744
11744
|
CHAINLINK_ETH_USD_DECIMALS = 8;
|
|
11745
11745
|
ERC8004_IDENTITY_REGISTRY = "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432";
|
|
11746
11746
|
WETH = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
|
|
11747
|
+
OSTRA = "0x68Ff81dFFF6eccefb74706fE1e0a86320CB2Eb96";
|
|
11748
|
+
OSTRA_DECIMALS = 18;
|
|
11749
|
+
OSTRA_PONS_CURVE = "0xef89C3a9832Ae6f8Dc5F785484b1B5cb1120F372";
|
|
11747
11750
|
MULTICALL3 = "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
11748
11751
|
ARBITRUM_NODE_INTERFACE = "0x00000000000000000000000000000000000000C8";
|
|
11749
11752
|
MAX_FEE_BPS = 500;
|
|
@@ -12120,7 +12123,7 @@ var init_deployment = __esm({
|
|
|
12120
12123
|
|
|
12121
12124
|
// ../sdk/src/external-abi.ts
|
|
12122
12125
|
import { parseAbi } from "viem";
|
|
12123
|
-
var usdgAbi, chainlinkAggregatorAbi, multicall3Abi, nodeInterfaceAbi;
|
|
12126
|
+
var usdgAbi, chainlinkAggregatorAbi, ponsCurveAbi, multicall3Abi, nodeInterfaceAbi;
|
|
12124
12127
|
var init_external_abi = __esm({
|
|
12125
12128
|
"../sdk/src/external-abi.ts"() {
|
|
12126
12129
|
"use strict";
|
|
@@ -12147,6 +12150,13 @@ var init_external_abi = __esm({
|
|
|
12147
12150
|
"function description() view returns (string)",
|
|
12148
12151
|
"function latestRoundData() view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)"
|
|
12149
12152
|
]);
|
|
12153
|
+
ponsCurveAbi = parseAbi([
|
|
12154
|
+
"function token() view returns (address)",
|
|
12155
|
+
"function graduated() view returns (bool)",
|
|
12156
|
+
"function graduationThreshold() view returns (uint256)",
|
|
12157
|
+
"function getReserves() view returns (uint256 ethReserve, uint256 tokenReserve)",
|
|
12158
|
+
"function buy(uint256 ethIn, uint256 minTokensOut, address recipient) payable returns (uint256 tokensOut)"
|
|
12159
|
+
]);
|
|
12150
12160
|
multicall3Abi = parseAbi([
|
|
12151
12161
|
"struct Call3 { address target; bool allowFailure; bytes callData; }",
|
|
12152
12162
|
"struct Result { bool success; bytes returnData; }",
|
|
@@ -13631,6 +13641,17 @@ async function readPairUsdPrice(client, quote) {
|
|
|
13631
13641
|
throw new Error(`the ${quote.symbol}/USD price was last updated ${Math.round((now3 - updatedAt) / 3600)} hours ago, older than ${Math.round(maxAge / 3600)} hours; try again once the feed updates`);
|
|
13632
13642
|
}
|
|
13633
13643
|
let priceE8 = answer;
|
|
13644
|
+
if (quote.kind === "ostra") {
|
|
13645
|
+
const [graduated, reserves] = await Promise.all([
|
|
13646
|
+
client.readContract({ address: OSTRA_PONS_CURVE, abi: ponsCurveAbi, functionName: "graduated" }),
|
|
13647
|
+
client.readContract({ address: OSTRA_PONS_CURVE, abi: ponsCurveAbi, functionName: "getReserves" })
|
|
13648
|
+
]);
|
|
13649
|
+
if (graduated) throw new Error("OSTRA has graduated from its Pons curve and migrated; its price is not read from its new pool yet");
|
|
13650
|
+
const [ethReserve, tokenReserve] = reserves;
|
|
13651
|
+
if (ethReserve <= 0n || tokenReserve <= 0n) throw new Error(`the OSTRA Pons curve reports reserves of ${ethReserve} wei and ${tokenReserve} tokens`);
|
|
13652
|
+
priceE8 = answer * ethReserve / tokenReserve;
|
|
13653
|
+
if (priceE8 < 100n) throw new Error(`OSTRA's price (${priceE8} x 0.00000001 USD) is too small to set a market cap in within 1%`);
|
|
13654
|
+
}
|
|
13634
13655
|
if (quote.kind === "stock") {
|
|
13635
13656
|
const multiplier = await client.readContract({ address: quote.address, abi: stockTokenAbi, functionName: "uiMultiplier" });
|
|
13636
13657
|
if (multiplier <= 0n) throw new Error(`${quote.symbol} reports a uiMultiplier of ${multiplier}`);
|
|
@@ -13663,6 +13684,7 @@ var init_pairs = __esm({
|
|
|
13663
13684
|
LAUNCH_PAIRS = [
|
|
13664
13685
|
{ symbol: "USDG", name: "Global Dollar", kind: "usdg", address: USDG, decimals: 6, feed: null },
|
|
13665
13686
|
{ symbol: "ETH", name: "Ether", kind: "eth", address: zeroAddress6, decimals: 18, feed: CHAINLINK_ETH_USD },
|
|
13687
|
+
{ symbol: "OSTRA", name: "Ostra Agent", kind: "ostra", address: OSTRA, decimals: OSTRA_DECIMALS, feed: CHAINLINK_ETH_USD },
|
|
13666
13688
|
stock("AAPL", "Apple", "0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9", "0x6B22A786bAa607d76728168703a39Ea9C99f2cD0"),
|
|
13667
13689
|
stock("AMZN", "Amazon", "0x12f190a9F9d7D37a250758b26824B97CE941bF54", "0xD5a1508ceD74c084eBf3cBe853e2C968fB2a651C"),
|
|
13668
13690
|
stock("ASML", "ASML Holding", "0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA", "0xB4106147E8cce40b7d46124090d373A71b70f87D"),
|
|
@@ -16624,8 +16646,8 @@ var init_launchpad = __esm({
|
|
|
16624
16646
|
}
|
|
16625
16647
|
/**
|
|
16626
16648
|
* The agent's creator vault for `pairText` and the sender of its operations:
|
|
16627
|
-
* for USDG the USDG creator vault and its own relayer client; for a
|
|
16628
|
-
* token or ETH, the creator vault in that token (WETH for ETH), paid for by
|
|
16649
|
+
* for USDG the USDG creator vault and its own relayer client; for OSTRA, a
|
|
16650
|
+
* stock token or ETH, the creator vault in that token (WETH for ETH), paid for by
|
|
16629
16651
|
* the buyer vault.
|
|
16630
16652
|
*/
|
|
16631
16653
|
async pairCreator(pairText) {
|
|
@@ -16735,7 +16757,7 @@ var init_launchpad = __esm({
|
|
|
16735
16757
|
throw new Error(`the pool of ${pool.token} trades against ETH: an Ostra vault holds one ERC-20 and cannot pay or take native ETH, so this pool is traded from a wallet; nothing was signed`);
|
|
16736
16758
|
}
|
|
16737
16759
|
const pair3 = findLaunchPair(quote);
|
|
16738
|
-
if (pair3 === null) throw new Error(`the pool of ${pool.token} trades against ${quote}, not a pair Ostra offers (USDG, ETH or a listed stock token); nothing was signed`);
|
|
16760
|
+
if (pair3 === null) throw new Error(`the pool of ${pool.token} trades against ${quote}, not a pair Ostra offers (USDG, ETH, OSTRA or a listed stock token); nothing was signed`);
|
|
16739
16761
|
const referrer = a.referrer === void 0 ? void 0 : address2(a.referrer, "referrer");
|
|
16740
16762
|
const quoteIs0 = getAddress16(pool.key.currency0) === quote;
|
|
16741
16763
|
const buying = a.side === "buy";
|
|
@@ -16781,7 +16803,7 @@ var init_launchpad = __esm({
|
|
|
16781
16803
|
}
|
|
16782
16804
|
throw new Error(`transaction ${txHash} has no Swap of ${vault}`);
|
|
16783
16805
|
}
|
|
16784
|
-
/** Buys `token` with `amount` of its pool's pair (USDG from the buyer vault, a stock token from its token vault), into the agent's token vault. */
|
|
16806
|
+
/** Buys `token` with `amount` of its pool's pair (USDG from the buyer vault, OSTRA or a stock token from its token vault), into the agent's token vault. */
|
|
16785
16807
|
buy(a) {
|
|
16786
16808
|
return this.#swap({ ...a, side: "buy" });
|
|
16787
16809
|
}
|
|
@@ -16891,7 +16913,7 @@ var init_launchpad = __esm({
|
|
|
16891
16913
|
/**
|
|
16892
16914
|
* Moves `amount` into the creator vault of `pairText` (default USDG): USDG
|
|
16893
16915
|
* from the buyer vault (a launch's dev buy and the USDG creator vault's
|
|
16894
|
-
* relayer requests are paid from it); a stock token or WETH from the
|
|
16916
|
+
* relayer requests are paid from it); OSTRA, a stock token or WETH from the
|
|
16895
16917
|
* agent's token vault of it (what a dev buy in that pair is paid from). The
|
|
16896
16918
|
* creator vault is created first when it does not exist yet.
|
|
16897
16919
|
*/
|
|
@@ -16921,7 +16943,7 @@ var init_launchpad = __esm({
|
|
|
16921
16943
|
async creatorWithdraw(a) {
|
|
16922
16944
|
const { pair: pair3, vault: creator, sender } = await this.pairCreator(a.pair ?? "USDG");
|
|
16923
16945
|
const token = this.#pairToken(pair3);
|
|
16924
|
-
if (pair3.kind
|
|
16946
|
+
if (pair3.kind === "eth" && a.destination === void 0) throw new RangeError(`a ${pair3.symbol} creator vault holds WETH: name the destination`);
|
|
16925
16947
|
const destination = a.destination === void 0 ? await this.tokenVault(token).vaultAddress() : address2(a.destination, "destination");
|
|
16926
16948
|
await this.#notStranded(destination, token, `the ${pair3.symbol} creator vault's transfer`);
|
|
16927
16949
|
if (pair3.kind === "usdg") return creator.withdraw(destination, a.amount);
|
|
@@ -17102,7 +17124,7 @@ var init_launchpad = __esm({
|
|
|
17102
17124
|
// ---------------------------------------------------------------------------
|
|
17103
17125
|
// Airdrops
|
|
17104
17126
|
// ---------------------------------------------------------------------------
|
|
17105
|
-
/** Buys `amount` of the pool's pair worth of the token from its creator vault into OstraAirdrop, for the pool's next round (USDG and stock pools). */
|
|
17127
|
+
/** Buys `amount` of the pool's pair worth of the token from its creator vault into OstraAirdrop, for the pool's next round (USDG, OSTRA and stock pools). */
|
|
17106
17128
|
async airdropFund(a) {
|
|
17107
17129
|
const lp = this.#lp();
|
|
17108
17130
|
const { pool, pair: pair3, creator, sender } = await this.#ownPool(a.token);
|
|
@@ -19112,14 +19134,14 @@ function registerTools(server, agent) {
|
|
|
19112
19134
|
tool("pool_info", "A token the Ostra launchpad launched: price, market cap, taxes, circuit breaker band, airdrop round, creator shares.", { token: address3 }, (a) => lp().poolInfo(a.token));
|
|
19113
19135
|
tool(
|
|
19114
19136
|
"quote_swap",
|
|
19115
|
-
"Quotes a buy (the pool's pair in: USDG or a stock token) or sell (token in) as it would be signed now: expected and minimum output, the gas the swap reserves, the share of the circuit breaker's room used. Nothing is signed.",
|
|
19137
|
+
"Quotes a buy (the pool's pair in: USDG, OSTRA or a stock token) or sell (token in) as it would be signed now: expected and minimum output, the gas the swap reserves, the share of the circuit breaker's room used. Nothing is signed.",
|
|
19116
19138
|
{ side: z.enum(["buy", "sell"]), token: address3, amount: units, slippageBps: slippage2, referrer: address3.optional() },
|
|
19117
19139
|
(a) => lp().quote({ side: a.side, token: a.token, amount: a.amount, ...a.slippageBps === void 0 ? {} : { slippageBps: a.slippageBps }, ...a.referrer === void 0 ? {} : { referrer: a.referrer } })
|
|
19118
19140
|
);
|
|
19119
19141
|
tool(
|
|
19120
19142
|
"buy",
|
|
19121
|
-
"Buys a launched token with its pool's pair: USDG from the vault, or a stock token from the agent's vault of that
|
|
19122
|
-
{ token: address3, amount: units.describe("in the pool's pair: USDG (6 decimals) or the stock token (18)"), slippageBps: slippage2, referrer: address3.optional() },
|
|
19143
|
+
"Buys a launched token with its pool's pair: USDG from the vault, or OSTRA or a stock token from the agent's vault of that token (pairs: tradingVault). The tokens go to the agent's vault for that token (created in the same transaction). An ETH pool is traded from a wallet, not a vault.",
|
|
19144
|
+
{ token: address3, amount: units.describe("in the pool's pair: USDG (6 decimals), OSTRA or the stock token (18)"), slippageBps: slippage2, referrer: address3.optional() },
|
|
19123
19145
|
(a) => lp().buy({ token: a.token, amount: a.amount, ...a.slippageBps === void 0 ? {} : { slippageBps: a.slippageBps }, ...a.referrer === void 0 ? {} : { referrer: a.referrer } })
|
|
19124
19146
|
);
|
|
19125
19147
|
tool(
|
|
@@ -19139,14 +19161,14 @@ function registerTools(server, agent) {
|
|
|
19139
19161
|
);
|
|
19140
19162
|
tool(
|
|
19141
19163
|
"pairs",
|
|
19142
|
-
"The pairs a launch can take (USDG, ETH and the listed stock tokens), each with its USD price now, this agent's creator vault for it (what that pair's dev buys are paid from, and what owns its pools and receives their creator payouts) and the agent's vault of its token (what its pools are bought with).",
|
|
19164
|
+
"The pairs a launch can take (USDG, ETH, OSTRA and the listed stock tokens), each with its USD price now, this agent's creator vault for it (what that pair's dev buys are paid from, and what owns its pools and receives their creator payouts) and the agent's vault of its token (what its pools are bought with).",
|
|
19143
19165
|
{},
|
|
19144
19166
|
() => lp().pairs({ prices: true })
|
|
19145
19167
|
);
|
|
19146
19168
|
tool(
|
|
19147
19169
|
"fund_creator_vault",
|
|
19148
|
-
"Moves funds into the creator vault of a pair (default USDG): USDG from the vault (USDG launches, dev buys, airdrops and the USDG creator vault's relayer requests); a stock token or WETH from the agent's vault of it. Funds can also be sent straight to a pair's creator vault (pairs).",
|
|
19149
|
-
{ amount: units.describe("in the pair's token: USDG (6 decimals), WETH or the stock token (18)"), pair: pair2.optional() },
|
|
19170
|
+
"Moves funds into the creator vault of a pair (default USDG): USDG from the vault (USDG launches, dev buys, airdrops and the USDG creator vault's relayer requests); OSTRA, a stock token or WETH from the agent's vault of it. Funds can also be sent straight to a pair's creator vault (pairs).",
|
|
19171
|
+
{ amount: units.describe("in the pair's token: USDG (6 decimals), WETH, OSTRA or the stock token (18)"), pair: pair2.optional() },
|
|
19150
19172
|
(a) => lp().fundCreatorVault(a.amount, a.pair ?? "USDG")
|
|
19151
19173
|
);
|
|
19152
19174
|
tool(
|
|
@@ -19157,11 +19179,11 @@ function registerTools(server, agent) {
|
|
|
19157
19179
|
);
|
|
19158
19180
|
tool(
|
|
19159
19181
|
"launch",
|
|
19160
|
-
"Launches a token on the Ostra launchpad (1 billion supply) paired with USDG (default), ETH or a listed stock token (pairs), from the agent's creator vault of that pair, optionally with a dev buy in the pair's token paid by that creator vault in the same transaction and vesting to the agent's token vault. The market cap is in US dollars, set in the pair's token at its price now (Chainlink for ETH and stocks). The relayer fronts the 0.0002 ETH launch fee and charges it in USDG. The launch is simulated first; nothing is signed if it would fail. `options` sets LaunchParams fields (taxes, buckets, anti-snipe, limits, graduation, circuit breaker) beyond Ostra's defaults.",
|
|
19182
|
+
"Launches a token on the Ostra launchpad (1 billion supply) paired with USDG (default), ETH, OSTRA or a listed stock token (pairs), from the agent's creator vault of that pair, optionally with a dev buy in the pair's token paid by that creator vault in the same transaction and vesting to the agent's token vault. The market cap is in US dollars, set in the pair's token at its price now (Chainlink for ETH and stocks; OSTRA at Chainlink ETH/USD times its bonding curve's price). The relayer fronts the 0.0002 ETH launch fee and charges it in USDG. The launch is simulated first; nothing is signed if it would fail. `options` sets LaunchParams fields (taxes, buckets, anti-snipe, limits, graduation, circuit breaker) beyond Ostra's defaults.",
|
|
19161
19183
|
{
|
|
19162
19184
|
name: z.string().min(1).max(64),
|
|
19163
19185
|
symbol: z.string().regex(/^[A-Za-z0-9]{1,11}$/),
|
|
19164
|
-
pair: pair2.optional().describe("the pool's pair: USDG (default), ETH or a listed stock token's ticker"),
|
|
19186
|
+
pair: pair2.optional().describe("the pool's pair: USDG (default), ETH, OSTRA or a listed stock token's ticker"),
|
|
19165
19187
|
marketCap: usdg.optional().describe("the starting market cap in US dollars (or startTick)"),
|
|
19166
19188
|
startTick: z.number().int().optional(),
|
|
19167
19189
|
devBuy: z.object({ amount: units.describe("in the pair's token"), cliffDays: z.number().min(7).max(365).optional(), vestingDays: z.number().min(0).max(365).optional() }).optional(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ostraagent/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Ostra Agent's MCP server: an AI agent's own post-quantum USDG vault on Robinhood Chain, with payments, a shielded pool and the Ostra launchpad. The agent needs no ETH.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|