Command Reference#
All commands follow the pattern seesaw <group> <command> [options]. By default, output is JSON wrapped in a standard envelope. Use --human for human-readable output.
JSON Envelope Format#
Every JSON response uses this envelope:
{
"success": true,
"data": { ... },
"error": null,
"meta": {
"command": "market get",
"duration_ms": 142,
"slot": 312456789,
"signature": "5Uj..."
}
}
The slot and signature fields are present only for commands that submit transactions.
config#
Protocol configuration and CLI settings.
config get#
Fetch and decode the on-chain config account.
| Option | Description |
|---|---|
| (none) | Uses resolved RPC endpoint |
seesaw config get
{
"success": true,
"data": {
"address": "CfgXx...",
"authority": "Auth1...",
"treasuryRecipients": [
"TreasuryShard1...",
"TreasuryShard2...",
"TreasuryShard3...",
"TreasuryShard4...",
"TreasuryShard5...",
"TreasuryShard6...",
"TreasuryShard7...",
"TreasuryShard8..."
],
"defaultSettlementMint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"takerFeeBps": 30,
"tickSizeBps": 100,
"marketsCreated": 1547,
"version": 1,
"lastTreasuryUpdateAt": "2026-01-01T00:00:00.000Z"
},
"error": null,
"meta": { "command": "config get", "duration_ms": 89 }
}
config init-file#
Create default config file at ~/.seesaw/config.yaml.
| Option | Description |
|---|---|
| (none) | Creates config with default values |
seesaw config init-file
{
"success": true,
"data": {
"path": "/Users/you/.seesaw/config.yaml"
},
"error": null,
"meta": { "command": "config init-file", "duration_ms": 2 }
}
config show#
Show current resolved configuration (file + env + flags merged).
| Option | Description |
|---|---|
| (none) | Displays merged config |
seesaw config show
{
"success": true,
"data": {
"rpc_url": "https://api.mainnet-beta.solana.com",
"keypair": "/Users/you/.config/solana/id.json",
"api_url": "https://api.seesaw.markets",
"output": "json",
"config_file": "/Users/you/.seesaw/config.yaml"
},
"error": null,
"meta": { "command": "config show", "duration_ms": 1 }
}
market#
Market lifecycle commands.
market get#
Fetch and decode a market account, including orderbook summary.
| Option | Description |
|---|---|
<address> | Market account address (positional argument) |
seesaw market get Mkt1abc123def456ghi789jkl012mno345pqr678stu
{
"success": true,
"data": {
"address": "Mkt1abc123def456ghi789jkl012mno345pqr678stu",
"marketId": "112640",
"state": "TRADING",
"outcome": "NONE",
"pythFeedId": "ef0d8b6f...",
"tStart": "2026-03-04T12:00:00.000Z",
"tEnd": "2026-03-04T12:15:00.000Z",
"startPrice": "14250000000",
"endPrice": "0",
"totalYesShares": "5000000",
"totalNoShares": "5000000",
"totalCollateral": "5000000",
"totalVolume": "12000000",
"totalTrades": 24,
"totalPositions": 8,
"creator": "Cre8or...",
"orderbook": {
"bestBid": 4800,
"bestAsk": 5200,
"spread": 400,
"bidLevels": 3,
"askLevels": 4
}
},
"error": null,
"meta": { "command": "market get", "duration_ms": 156 }
}
market create#
Create a new prediction market. For the difference between push and pull oracle modes see Oracle.
| Option | Required | Description |
|---|---|---|
--pyth-feed <address> | Yes | Push: Receiver-owned Pyth push-feed account. Pull: Receiver-owned PriceUpdateV2 account supplied for the create snapshot. |
--pyth-feed-id <hex> | Yes | Pyth feed ID (32 bytes hex). This identifies the asset and is not a Solana account. |
--settlement-mint <address> | Yes | Settlement token mint address |
--duration <seconds> | No | Market duration in seconds (default: 900) |
--max-confidence-ratio <bps> | Choice | Max confidence ratio in basis points. Required unless --disable-confidence-guard is supplied. |
--disable-confidence-guard | Choice | Explicitly disable the confidence guard (max_confidence_ratio_bps = 0). Mutually exclusive with a non-zero --max-confidence-ratio. |
--capacity <tier> | No | Trader seat capacity tier: small (128, default), standard (1025), or large (4097). The max tier is disabled until split transaction support exists. |
--seats <count> | No | Advanced: exact packet-safe trader seat count from the on-chain table (128, 1025, 1153, 2049, 2177, 4097, 4225). Mutually exclusive with --capacity. |
--orderbook-capacity <levels> | No | Deep RBT orderbook levels per side: 64, 128, 256, 512 (default), 1024, 2048, or 4096. |
--oracle-mode <mode> | No | Oracle mode: push (default, classic Pyth push-oracle) or pull (Pyth pull-oracle; requires pyth_receiver_program_id set in config). |
seesaw market create \
--pyth-feed Gnt27xtC473ZT2Mw5u8wZ68Z3gULkSTb5DuxJy7eJotD \
--pyth-feed-id ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--duration 900 \
--max-confidence-ratio 500 \
--oracle-mode push
For Pull creation, pass --oracle-mode pull and a Receiver-owned
PriceUpdateV2 account for --pyth-feed. Fetching/posting arbitrary Pull
updates requires a server-side Hermes relay configured with PYTH_API_KEY.
{
"success": true,
"data": {
"market": "Mkt1abc...",
"orderbook": "OB1abc...",
"vault": "Vlt1abc...",
"marketId": "112640"
},
"error": null,
"meta": {
"command": "market create",
"duration_ms": 1250,
"signature": "5UjR4w...",
"slot": 312456789
}
}
Trader seat capacity controls how many distinct traders the market can hold. The CLI creates a deep RBT orderbook with
--orderbook-capacitylevels per side, defaulting to512. It submits the requiredEnsureTraderLedgerSpace(0x2E) andEnsureDeepOrderbookSpace(0x33) preludes in bounded chunks before the finalCreateMarket. It rejects seat counts above 4225 before submission because larger ledger tiers are not exposed in the beta CLI flow. Use--capacity largeor--seats 4225as the current upper bound. Account rent is refunded to the creator when the market is closed.
market snapshot#
Record end price snapshot from the Pyth oracle.
| Option | Required | Description |
|---|---|---|
--market-id <id> | Yes | Market epoch ID |
--pyth-feed <address> | Yes | Pyth price feed account |
--pyth-feed-id <hex> | Yes | Pyth feed ID (32 bytes hex) |
--creator <address> | Yes | Market creator address |
--duration <seconds> | No | Market duration in seconds (default: 900) |
seesaw market snapshot \
--market-id 112640 \
--pyth-feed Gnt27xtC473ZT2Mw5u8wZ68Z3gULkSTb5DuxJy7eJotD \
--pyth-feed-id ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d \
--creator Cre8orAddr123456789abcdefghijklmnopqrstuv
{
"success": true,
"data": {
"market": "Mkt1abc..."
},
"error": null,
"meta": {
"command": "market snapshot",
"duration_ms": 980,
"signature": "3kPq1x...",
"slot": 312456800
}
}
market resolve#
Resolve market outcome from price snapshots.
| Option | Required | Description |
|---|---|---|
--market-id <id> | Yes | Market epoch ID |
--pyth-feed-id <hex> | Yes | Pyth feed ID (32 bytes hex) |
--creator <address> | Yes | Market creator address |
--creator-token-account <address> | Yes | Creator's stablecoin token account |
--settlement-mint <address> | Yes | Settlement mint address |
--duration <seconds> | No | Market duration in seconds (default: 900) |
seesaw market resolve \
--market-id 112640 \
--pyth-feed-id ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d \
--creator Cre8orAddr123456789abcdefghijklmnopqrstuv \
--creator-token-account CreatorUsdtAta11111111111111111111111 \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
{
"success": true,
"data": {
"market": "Mkt1abc..."
},
"error": null,
"meta": {
"command": "market resolve",
"duration_ms": 870,
"signature": "2yNm8v...",
"slot": 312456810
}
}
market expire#
Expire a market if no resolution occurs within the expiration grace window
after market end (protocol default: 7 days; configurable via
admin operational-params). For the full expiration timeline and teardown
sequence see Settlement.
| Option | Required | Description |
|---|---|---|
--market-id <id> | Yes | Market epoch ID |
--pyth-feed-id <hex> | Yes | Pyth feed ID (32 bytes hex) |
--creator <address> | Yes | Market creator address |
--creator-token-account <address> | Yes | Creator's stablecoin token account |
--settlement-mint <address> | Yes | Settlement mint address |
--duration <seconds> | No | Market duration in seconds (default: 900) |
--pyth-feed <address> | No | Pyth account for late price capture |
seesaw market expire \
--market-id 112640 \
--pyth-feed-id ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d \
--creator Cre8orAddr123456789abcdefghijklmnopqrstuv \
--creator-token-account CreatorUsdtAta11111111111111111111111 \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--pyth-feed Gnt27xtC473ZT2Mw5u8wZ68Z3gULkSTb5DuxJy7eJotD
{
"success": true,
"data": {
"market": "Mkt1abc..."
},
"error": null,
"meta": {
"command": "market expire",
"duration_ms": 910,
"signature": "4fRt2p...",
"slot": 312456820
}
}
market force-close#
Force-close a position on a resolved or expired market. This is a permissionless operation that anyone can call to settle a position and reclaim associated account rent.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--position-owner <address> | Yes | Position owner address |
--user-stablecoin-ata <address> | Yes | Position owner's USDT token account |
--settlement-mint <address> | Yes | Settlement mint address |
seesaw market force-close \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--position-owner User1abc123def456ghi789jkl012mno345pqr678s \
--user-stablecoin-ata ATA1abc123def456ghi789jkl012mno345pqr678stu \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
{
"success": true,
"data": {
"market": "Mkt1abc...",
"position": "Pos1abc...",
"vault": "Vlt1abc..."
},
"error": null,
"meta": {
"command": "market force-close",
"duration_ms": 1100,
"signature": "7hYt3q...",
"slot": 312456830
}
}
market close#
Close a market account and reclaim rent to the creator. All positions must be settled first.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--creator <address> | Yes | Market creator address |
--creator-stablecoin-ata <address> | Yes | Creator settlement-token ATA that receives residual vault dust first |
seesaw market close \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--creator Cre8orAddr123456789abcdefghijklmnopqrstuv \
--creator-stablecoin-ata Cre8orATA123456789abcdefghijklmnopqrst
{
"success": true,
"data": {
"market": "Mkt1abc..."
},
"error": null,
"meta": {
"command": "market close",
"duration_ms": 850,
"signature": "9pWx4r...",
"slot": 312456840
}
}
market claim-creator-fees#
Claim deferred creator fees from a resolved or expired market. Use this when resolve_market / expire_market could not disburse fees inline (e.g., the creator's ATA was missing or frozen). Permissionless — anyone can call it, but the fees always go to the market creator.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--creator-ata <address> | Yes | Creator's token account for the settle mint |
--settlement-mint <address> | Yes | Settlement mint address |
seesaw market claim-creator-fees \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--creator-ata CreatorAtaAddr123456789abcdefghijklmnopqrs \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
{
"success": true,
"data": { "market": "Mkt1abc…", "vault": "Vlt1abc…" },
"error": null,
"meta": {
"command": "market claim-creator-fees",
"duration_ms": 830,
"signature": "9xYa4k…",
"slot": 312456900
}
}
market top-up-closer-rewards#
Permissionlessly top up a market PDA's rent-safe closer-reward budget to the current config rate.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
-y, --yes | No | Skip mainnet confirmation prompt |
--record-events | No | Append binary event-recorder tail |
seesaw market top-up-closer-rewards \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu
order#
Order management commands. The CLI exposes single-order trading, quote free-funds custody, bulk/range cancel and reduce, and post-only maker ladders.
order place#
Place a limit order on the order book.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--side <side> | Yes | Order side: buy-yes, sell-yes, buy-no, sell-no |
--price <bps> | Yes | Price in basis points [1-9999] |
--quantity <amount> | Yes | Number of shares (in base units) |
--token-account <address> | Yes | User's settlement token account |
--settlement-mint <address> | Yes | Settlement mint address |
--user-yes-ata <address> | Yes | User's YES mint token account |
--user-no-ata <address> | Yes | User's NO mint token account |
--order-type <type> | No | Order type: limit, post-only, ioc (default: limit) |
--self-trade-behavior <0|1|2> | No | Self-trade policy: 0=Abort, 1=CancelProvide, 2=DecrementTake |
--worst-acceptable-price-bps <bps> | No | IOC slippage bound [0-10000]; 0 disables the bound |
--min-fill-quantity <amount> | No | Minimum fill quantity in base units for IOC/partial-fill protection |
--match-limit <n> | No | Maximum maker matches to consume [0-255]; 0 uses the program default |
--max-age-seconds <seconds> | No | Order TTL in seconds [0-4294967295]; 0 disables |
--reject-post-only-would-cross <0|1> | No | Reject post-only orders that would cross the book (default: 1) |
--protocol-treasury-index <n> | Yes | Protocol treasury shard index [0-7] |
--referrer <addr> | No | Pending referrer candidate resolved through on-chain/indexer precedence |
--referrer-treasury-index <n> | Manual override only | Raw referrer earnings treasury shard [0-7] |
--manual-referrer-override | No | Bypass resolver precedence and use raw referrer tail accounts |
--record-events | No | Append the optional binary event-recorder self-CPI account tail |
-y, --yes | No | Skip mainnet confirmation prompt |
The protocol treasury token account is derived from
ConfigAccount.treasuryRecipients[--protocol-treasury-index]; trading commands
do not accept a client-supplied fee-recipient account.
Referral attribution defaults to the resolver path: pass --referrer as a
pending candidate and the CLI resolves the locked on-chain referrer, pending
candidate, protocol fallback, and eligible treasury shard. Use
--manual-referrer-override only for diagnostic raw account-tail construction;
it requires both --referrer and --referrer-treasury-index.
seesaw order place \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--side buy-yes \
--price 5000 \
--quantity 1000000 \
--self-trade-behavior 0 \
--max-age-seconds 300 \
--protocol-treasury-index 3 \
--token-account ATA1abc123def456ghi789jkl012mno345pqr678stu \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--user-yes-ata YesATA1abc123def456ghi789jkl012mno345pqr6 \
--user-no-ata NoATA1abc123def456ghi789jkl012mno345pqr67
{
"success": true,
"data": {
"market": "Mkt1abc...",
"orderbook": "OB1abc...",
"position": "Pos1abc..."
},
"error": null,
"meta": {
"command": "order place",
"duration_ms": 1050,
"signature": "6nKm5s...",
"slot": 312456850
}
}
order cancel#
Cancel an existing order.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--order-id <id> | Yes | Order ID to cancel |
--token-account <address> | Yes | User's settlement token account |
--settlement-mint <addr> | Yes | Settlement mint |
--user-yes-ata <address> | Yes | User's YES token account |
--user-no-ata <address> | Yes | User's NO token account |
seesaw order cancel \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--order-id 42 \
--token-account ATA1abc123def456ghi789jkl012mno345pqr678stu \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--user-yes-ata YesATA1abc123def456ghi789jkl012mno345pqr6 \
--user-no-ata NoATA1abc123def456ghi789jkl012mno345pqr67
{
"success": true,
"data": {
"market": "Mkt1abc...",
"orderbook": "OB1abc...",
"position": "Pos1abc...",
"cancelledOrderId": "42"
},
"error": null,
"meta": {
"command": "order cancel",
"duration_ms": 920,
"signature": "8wLp6t...",
"slot": 312456860
}
}
order deposit-funds#
Deposit quote free funds into the market trader ledger. These funds can be used by free-funds order-management variants.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--user-stablecoin-ata <addr> | Yes | User's settlement token account |
--settlement-mint <address> | Yes | Settlement mint |
--amount <u64> | Yes | Amount in settlement-mint base units |
seesaw order deposit-funds \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--user-stablecoin-ata ATA1abc123def456ghi789jkl012mno345pqr678stu \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--amount 1000000
order withdraw-funds#
Withdraw quote free funds from the market trader ledger.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--user-stablecoin-ata <addr> | Yes | User's settlement token account |
--settlement-mint <address> | Yes | Settlement mint |
--amount <u64> | Yes | Amount in settlement-mint base units |
seesaw order withdraw-funds \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--user-stablecoin-ata ATA1abc123def456ghi789jkl012mno345pqr678stu \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--amount 1000000
order cancel-multi#
Cancel multiple orders by ID. Add --free-funds to use the lean with-free-funds account set.
seesaw order cancel-multi \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--order-ids 42,43,44 \
--free-funds
Without --free-funds, also pass --token-account, --settlement-mint, --user-yes-ata, and --user-no-ata.
order cancel-all#
Cancel every active order for the configured wallet in a market.
seesaw order cancel-all \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--free-funds
Without --free-funds, also pass --token-account, --settlement-mint, --user-yes-ata, and --user-no-ata.
order cancel-up-to#
Cancel orders up to a canonical side, tick, and count limit.
seesaw order cancel-up-to \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--side buy-yes \
--tick-limit-bps 4900 \
--max-orders 8 \
--free-funds
order reduce#
Reduce an active order's remaining quantity.
seesaw order reduce \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--order-id 42 \
--reduce-qty 100000 \
--free-funds
order place-ladder#
Place multiple post-only bid and ask levels in one maker instruction. Each level is priceBps:quantity.
| Option | Required | Description |
|---|---|---|
--record-events | No | Append the optional binary event-recorder self-CPI account tail |
seesaw order place-ladder \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--bids 4900:100000,4800:200000 \
--asks 5100:100000,5200:200000 \
--token-account ATA1abc123def456ghi789jkl012mno345pqr678stu \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--user-yes-ata YesATA1abc123def456ghi789jkl012mno345pqr6 \
--user-no-ata NoATA1abc123def456ghi789jkl012mno345pqr67 \
--reject-post-only-on-cross 1 \
--protocol-treasury-index 3
order list#
List orders on a market's order book. Optionally filter by owner.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--owner <address> | No | Filter by owner address |
# List aggregated orderbook
seesaw order list --market Mkt1abc123def456ghi789jkl012mno345pqr678stu
# List orders for a specific owner
seesaw order list \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--owner User1abc123def456ghi789jkl012mno345pqr678s
Aggregated orderbook output:
{
"success": true,
"data": {
"bids": [
{ "price": 4800, "quantity": "500000", "orders": 3 },
{ "price": 4700, "quantity": "250000", "orders": 1 }
],
"asks": [
{ "price": 5200, "quantity": "300000", "orders": 2 },
{ "price": 5500, "quantity": "1000000", "orders": 5 }
]
},
"error": null,
"meta": { "command": "order list", "duration_ms": 120 }
}
Filtered by owner:
{
"success": true,
"data": [
{
"orderId": "42",
"owner": "User1abc...",
"priceBps": 4800,
"quantity": "100000",
"originalQuantity": "200000",
"side": 0,
"isActive": true
}
],
"error": null,
"meta": { "command": "order list", "duration_ms": 115 }
}
order reclaim-expired#
Permissionlessly reclaim an expired resting order. If --caller-stablecoin-ata is provided, the caller can collect the configured bounty.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--maker <address> | Yes | Original order owner, not necessarily the caller |
--maker-token-account <address> | Yes | Maker's settlement token account |
--maker-yes-ata <address> | Yes | Maker's YES share token account |
--maker-no-ata <address> | Yes | Maker's NO share token account |
--settlement-mint <address> | Yes | Settlement mint |
--order-id <u64> | Yes | Order ID to reclaim |
--caller-stablecoin-ata <addr> | No | Caller token account for the optional bounty |
seesaw order reclaim-expired \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--maker Maker1abc123def456ghi789jkl012mno345pqr67 \
--maker-token-account MakerStableAta123456789abcdefghijk \
--maker-yes-ata MakerYesAta123456789abcdefghijklmnop \
--maker-no-ata MakerNoAta123456789abcdefghijklmnopq \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--order-id 42 \
--caller-stablecoin-ata CallerStableAta123456789abcdefghi
position#
Position management commands.
position get#
Fetch and decode a position account.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--user <address> | No | User address (defaults to wallet) |
seesaw position get --market Mkt1abc123def456ghi789jkl012mno345pqr678stu
{
"success": true,
"data": {
"address": "Pos1abc...",
"market": "Mkt1abc...",
"owner": "User1abc...",
"yesShares": "500000",
"noShares": "0",
"lockedYesShares": "100000",
"lockedNoShares": "0",
"collateralDeposited": "500000",
"collateralLocked": "100000",
"payout": "0",
"totalBought": "500000",
"totalSold": "0",
"totalFeesPaid": "10000",
"orderCount": 2,
"settled": false
},
"error": null,
"meta": { "command": "position get", "duration_ms": 98 }
}
position mint#
Mint YES/NO share pairs by depositing settlement tokens (USDT).
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--amount <lamports> | Yes | Amount in base units |
--stablecoin-account <address> | Yes | User's settlement token account |
--yes-account <address> | Yes | User's YES mint token account |
--no-account <address> | Yes | User's NO mint token account |
--settlement-mint <address> | Yes | Settlement mint address |
seesaw position mint \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--amount 1000000 \
--stablecoin-account ATA1abc123def456ghi789jkl012mno345pqr678stu \
--yes-account YesATA1abc123def456ghi789jkl012mno345pqr6 \
--no-account NoATA1abc123def456ghi789jkl012mno345pqr67 \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
{
"success": true,
"data": {
"market": "Mkt1abc...",
"position": "Pos1abc...",
"amount": "1000000"
},
"error": null,
"meta": {
"command": "position mint",
"duration_ms": 1080,
"signature": "4rNx7u...",
"slot": 312456870
}
}
position redeem#
Redeem winning shares for settlement tokens after market resolution.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--amount <lamports> | Yes | Amount to redeem in base units |
--token-type <type> | Yes | Token type: yes or no |
--stablecoin-account <address> | Yes | User's settlement token account |
--yes-account <address> | Yes | User's YES mint token account |
--no-account <address> | Yes | User's NO mint token account |
--settlement-mint <address> | Yes | Settlement mint address |
seesaw position redeem \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--amount 500000 \
--token-type yes \
--stablecoin-account ATA1abc123def456ghi789jkl012mno345pqr678stu \
--yes-account YesATA1abc123def456ghi789jkl012mno345pqr6 \
--no-account NoATA1abc123def456ghi789jkl012mno345pqr67 \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
{
"success": true,
"data": {
"market": "Mkt1abc...",
"position": "Pos1abc...",
"amount": "500000",
"tokenType": "yes"
},
"error": null,
"meta": {
"command": "position redeem",
"duration_ms": 1020,
"signature": "1mTy8v...",
"slot": 312456880
}
}
position withdraw#
Withdraw trader-ledger free YES/NO share credits as SPL tokens.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market account address |
--amount <lamports> | Yes | Amount to withdraw in base units |
--token-type <type> | Yes | Token type: yes or no |
--mint <address> | Yes | YES or NO mint address for the given type |
--token-account <address> | Yes | User's token account for the withdrawn type |
seesaw position withdraw \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--amount 200000 \
--token-type yes \
--mint YesMint1abc123def456ghi789jkl012mno345pqr6 \
--token-account YesATA1abc123def456ghi789jkl012mno345pqr678
{
"success": true,
"data": {
"market": "Mkt1abc...",
"position": "Pos1abc...",
"amount": "200000",
"tokenType": "yes"
},
"error": null,
"meta": {
"command": "position withdraw",
"duration_ms": 990,
"signature": "5kHz9w...",
"slot": 312456890
}
}
position mark-settled#
Permissionlessly settle and pay an abandoned resolved position after the post-grace window.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--owner <address> | Yes | Recorded position owner |
--owner-settlement-ata <addr> | Yes | Owner's settlement-token payout account |
--settlement-mint <address> | Yes | Settlement mint for the TransferChecked CPI |
--record-events | No | Append the optional binary event-recorder self-CPI account tail |
seesaw position mark-settled \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--owner User1abc123def456ghi789jkl012mno345pqr678s \
--owner-settlement-ata UserStableAta123456789abcdefghijkl \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
position close#
Permissionlessly close a settled position account. Rent is returned to the recorded position owner, not the caller.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--owner <address> | Yes | Position owner and rent receiver |
seesaw position close \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--owner User1abc123def456ghi789jkl012mno345pqr678s
admin#
Protocol admin commands. These require the protocol authority keypair.
admin init#
Initialize protocol configuration. This is a one-time operation. The current multi-fee-recipient layout requires all 8 protocol treasury token accounts up front, encoded as a JSON array in shard order.
| Option | Required | Description |
|---|---|---|
--treasury-recipients <json> | Yes | JSON array of exactly 8 SPL token-account addresses |
--settlement-mint <address> | Yes | Default settlement mint address |
--program-data <address> | Yes | BPF upgradeable loader program-data account |
--taker-fee <bps> | No | Legacy display taker fee field (default: 30) |
--tick-size <bps> | No | Tick size in basis points (default: 100) |
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
seesaw admin init \
--treasury-recipients '[
"TreasuryShard111111111111111111111111111",
"TreasuryShard222222222222222222222222222",
"TreasuryShard333333333333333333333333333",
"TreasuryShard444444444444444444444444444",
"TreasuryShard555555555555555555555555555",
"TreasuryShard666666666666666666666666666",
"TreasuryShard777777777777777777777777777",
"TreasuryShard888888888888888888888888888"
]' \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--program-data ProgramDataAddr123456789abcdefghijklmnop
{
"success": true,
"data": {
"config": "CfgXx..."
},
"error": null,
"meta": {
"command": "admin init",
"duration_ms": 1200,
"signature": "2bGk0x...",
"slot": 312456900
}
}
admin pause#
Pause all protocol trading activity. No new orders or markets can be created while paused.
| Option | Description |
|---|---|
| (none) | Uses authority keypair |
seesaw admin pause
{
"success": true,
"data": {
"config": "CfgXx...",
"paused": true
},
"error": null,
"meta": {
"command": "admin pause",
"duration_ms": 890,
"signature": "3cHl1y...",
"slot": 312456910
}
}
admin propose-authority#
Propose a pending two-step ConfigAccount.authority rotation, or cancel a pending proposal with the all-zero authority payload.
| Option | Required | Description |
|---|---|---|
--new-authority <address> | Choice | Pending authority to propose |
--cancel | Choice | Cancel a pending authority rotation |
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
--record-events | No | Append binary event-recorder tail |
seesaw admin propose-authority --new-authority SquadsMultisig1111111111111111111111111
admin claim-authority#
Claim a pending ConfigAccount.authority rotation after the on-chain timelock elapses. The signer must be the pending authority.
| Option | Required | Description |
|---|---|---|
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
--record-events | No | Append binary event-recorder tail |
seesaw admin claim-authority
admin set-pauser#
Set the escalation-only pauser guardian key. Passing the all-zero pubkey disables pauser access fail-closed.
| Option | Required | Description |
|---|---|---|
--pauser <address> | Yes | New pauser pubkey |
-y, --yes | No | Skip mainnet confirmation prompt |
--record-events | No | Append binary event-recorder tail |
seesaw admin set-pauser --pauser Pauser111111111111111111111111111111111111
admin unpause#
Resume protocol trading activity.
| Option | Description |
|---|---|
| (none) | Uses authority keypair |
seesaw admin unpause
{
"success": true,
"data": {
"config": "CfgXx...",
"paused": false
},
"error": null,
"meta": {
"command": "admin unpause",
"duration_ms": 870,
"signature": "4dIm2z...",
"slot": 312456920
}
}
admin enable-post-only-mode#
Enable global post-only mode. Existing makers may continue posting/cancelling, while taking is halted by the program.
| Option | Required | Description |
|---|---|---|
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
--record-events | No | Append binary event-recorder tail |
seesaw admin enable-post-only-mode
admin disable-post-only-mode#
Disable global post-only mode.
| Option | Required | Description |
|---|---|---|
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
--record-events | No | Append binary event-recorder tail |
seesaw admin disable-post-only-mode
admin update-fee-config#
Retune the capped-linear-decay curve and the three-way split (instruction 0x1F UpdateFeeConfig). The three shares are bps of the fee and MUST sum to 10_000. --fee-cap is bounded at 500 (5.00% hard ceiling). For the full fee model and split rationale see Treasury and fee split.
| Option | Required | Description |
|---|---|---|
--fee-cap <bps> | Yes | Curve ceiling in bps of notional (max 500) |
--decay-rate <bps> | Yes | Curve slope in bps of notional |
--protocol-share <bps> | Yes | Protocol share in bps of fee |
--creator-share <bps> | Yes | Creator share in bps of fee |
--referral-share <bps> | Yes | Referral share in bps of fee |
seesaw admin update-fee-config \
--fee-cap 200 \
--decay-rate 600 \
--protocol-share 5000 \
--creator-share 1000 \
--referral-share 4000
{
"success": true,
"data": {
"config": "CfgXx...",
"feeCapBps": 200,
"decayRateBps": 600,
"protocolFeeBps": 5000,
"defaultCreatorFeeBps": 1000,
"referralShareBpsOfFee": 4000
},
"error": null,
"meta": {
"command": "admin update-fee-config",
"duration_ms": 910,
"signature": "5eJn3a...",
"slot": 312456930
}
}
admin update-tick-size#
Update the order book tick size (minimum price increment).
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA whose microstructure cooldown is stamped |
--tick-size <bps> | Yes | New tick size in basis points (1-1000) |
seesaw admin update-tick-size \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--tick-size 50
{
"success": true,
"data": {
"config": "CfgXx...",
"tickSizeBps": 50
},
"error": null,
"meta": {
"command": "admin update-tick-size",
"duration_ms": 880,
"signature": "6fKo4b...",
"slot": 312456940
}
}
admin update-treasury-recipients#
Atomically rotate all 8 protocol treasury recipient token accounts. Pass the full array: to replace one slot, keep the other 7 addresses unchanged. The on-chain instruction is authority-signed and rate-limited.
| Option | Required | Description |
|---|---|---|
--treasury-recipients <json> | Yes | JSON array of exactly 8 SPL token-account addresses |
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
seesaw admin update-treasury-recipients \
--treasury-recipients '[
"TreasuryShard111111111111111111111111111",
"TreasuryShard222222222222222222222222222",
"TreasuryShard333333333333333333333333333",
"TreasuryShard444444444444444444444444444",
"TreasuryShard555555555555555555555555555",
"TreasuryShard666666666666666666666666666",
"TreasuryShard777777777777777777777777777",
"TreasuryShard888888888888888888888888888"
]'
admin update-min-resting-notional#
Update the minimum quote notional required for a resting remainder.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--min-resting-notional <u64> | Yes | New floor in settlement-token base units, max 100000000 |
-y, --yes | No | Skip mainnet confirmation prompt |
seesaw admin update-min-resting-notional \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--min-resting-notional 1000000
admin update-market-cap#
Update a market's YES/NO supply cap. This is accepted from the market creator or protocol authority on-chain.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--max-total-shares <u64> | Yes | Zero disables the cap |
-y, --yes | No | Skip mainnet confirmation prompt |
seesaw admin update-market-cap \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--max-total-shares 1000000000
admin set-market-emergency-status#
Set a single market's emergency status without changing global protocol pause state.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--status <n> | Yes | 0=None, 1=PostOnly, 2=Paused, 3=ForceCancelOnly |
--reason <utf8> | No | Operator-visible reason tag |
-y, --yes | No | Skip mainnet confirmation prompt |
seesaw admin set-market-emergency-status \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--status 3 \
--reason incident-2026-05-22
admin force-cancel-market-orders#
Force-cancel one resting order while the market is in ForceCancelOnly mode.
| Option | Required | Description |
|---|---|---|
--market <address> | Yes | Market PDA |
--maker <address> | Yes | Original order owner |
--maker-token-account <address> | Yes | Maker's settlement token account |
--maker-yes-ata <address> | Yes | Maker's YES share token account |
--maker-no-ata <address> | Yes | Maker's NO share token account |
--settlement-mint <address> | Yes | Settlement mint |
--order-id <u64> | Yes | Resting order to force-cancel |
-y, --yes | No | Skip mainnet confirmation prompt |
seesaw admin force-cancel-market-orders \
--market Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--maker Maker1abc123def456ghi789jkl012mno345pqr67 \
--maker-token-account MakerStableAta123456789abcdefghijk \
--maker-yes-ata MakerYesAta123456789abcdefghijklmnop \
--maker-no-ata MakerNoAta123456789abcdefghijklmnopq \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--order-id 42
admin operational-params#
Tune the post-deploy operational bounds exposed by UpdateOperationalParams.
Bounds mirror on-chain validation: closer reward <= 1000000 lamports, price
staleness <= 3600 seconds, expiration window <= 2592000 seconds, explicit
market duration bounds must be 0 or between 60 and 604800 seconds with
min <= max, and max order size must be in [1, 281474976710655].
| Option | Required | Description |
|---|---|---|
--closer-reward-lamports <u64> | Yes | Lifecycle closer reward, zero disables the bounty |
--max-price-staleness-seconds <u64> | Yes | Maximum oracle price age, zero selects protocol default |
--market-expiration-window-seconds <u64> | Yes | Expiration grace window, zero selects protocol default |
--min-market-duration-seconds <u64> | Yes | Minimum market duration, zero selects protocol default |
--max-market-duration-seconds <u64> | Yes | Maximum market duration, zero selects protocol default |
--max-order-size <u64> | Yes | Maximum order size; must be nonzero |
-y, --yes | No | Skip mainnet confirmation prompt |
seesaw admin operational-params \
--closer-reward-lamports 1000000 \
--max-price-staleness-seconds 60 \
--market-expiration-window-seconds 86400 \
--min-market-duration-seconds 60 \
--max-market-duration-seconds 604800 \
--max-order-size 1000000000
admin propose-pyth-program#
Build the frozen compatibility payload for ProposePythProgramId (0x30).
Current on-chain execution rejects this instruction with OracleProgramIdFrozen;
do not use it as an operational Pyth program-id re-point path. The command is
kept only so SDK/CLI wire formats remain testable against the frozen ABI.
| Option | Required | Description |
|---|---|---|
--program-id <base58> | No* | New Pyth program-id as a base58 pubkey. Mutually exclusive with --cancel. |
--cancel | No* | Cancel the pending swap (sends [0;32] as new_pyth_program_id). Mutually exclusive with --program-id. |
--target <slot> | No | Which oracle program slot to update: push (default, config.pyth_program_id) or receiver (config.pyth_receiver_program_id for the pull-oracle path). |
-y, --yes | No | Skip mainnet confirmation prompt |
* Exactly one of --program-id or --cancel is required.
# Build a frozen compatibility transaction. On-chain execution rejects with
# OracleProgramIdFrozen.
seesaw admin propose-pyth-program \
--program-id pyt2F414BA6dPttK6RddPZUdHfapoBN24GL5wbrPCou
# Cancel an in-progress swap
seesaw admin propose-pyth-program --cancel
{
"success": false,
"data": null,
"error": {
"code": "OracleProgramIdFrozen",
"message": "Pyth program-id governance is frozen; owner program IDs are hard-pinned"
}
}
admin apply-pyth-program#
Build the frozen compatibility payload for ApplyPythProgramId (0x31).
Current on-chain execution rejects this instruction with OracleProgramIdFrozen;
there is no pending oracle program update to apply.
| Option | Required | Description |
|---|---|---|
-y, --yes | No | Skip mainnet confirmation prompt |
seesaw admin apply-pyth-program
{
"success": false,
"data": null,
"error": {
"code": "OracleProgramIdFrozen",
"message": "Pyth program-id governance is frozen; owner program IDs are hard-pinned"
}
}
admin update-market-defaults#
Update legacy/display config.taker_fee_bps (UpdateMarketDefaults, 0x32). Settlement-mint rotation is disabled after initialization because it is coupled to protocol treasury recipients and referrer treasury state. Live v2 trade fee behavior is controlled by admin update-fee-config.
| Option | Required | Description |
|---|---|---|
--settlement-mint <base58> | No | Unsupported; rejected client-side until a future migration instruction exists. |
--taker-fee-bps <u16> | Yes | New taker fee in basis points (0–MAX_TAKER_FEE_BPS). Cannot be 65535 (sentinel). |
-y, --yes | No | Skip mainnet confirmation prompt |
# Update the taker fee
seesaw admin update-market-defaults --taker-fee-bps 20
{
"success": true,
"data": {
"config": "CfgXx...",
"takerFeeBps": 20
},
"error": null,
"meta": {
"command": "admin update-market-defaults",
"duration_ms": 920,
"signature": "9pXz5k...",
"slot": 312457950
}
}
api#
Indexer API commands. These query the Seesaw indexer for aggregated protocol data. No keypair is required for public endpoints.
api markets#
List all markets from the indexer.
| Option | Description |
|---|---|
| (none) | Fetches all markets |
seesaw api markets
{
"success": true,
"data": [
{
"id": "Mkt1abc...",
"pair": "SOL/USD",
"state": "TRADING",
"yesPrice": 0.52,
"noPrice": 0.48,
"volume": 15200.5,
"timeRemaining": "8m 32s"
}
],
"error": null,
"meta": { "command": "api markets", "duration_ms": 210 }
}
api market#
Get detailed market info from the indexer.
| Option | Description |
|---|---|
<id> | Market ID (positional argument) |
seesaw api market Mkt1abc123def456ghi789jkl012mno345pqr678stu
{
"success": true,
"data": {
"id": "Mkt1abc...",
"pair": "SOL/USD",
"state": "TRADING",
"startPrice": 142.5,
"currentPrice": 143.1,
"yesPrice": 0.62,
"noPrice": 0.38,
"volume": 15200.5,
"totalTrades": 48,
"totalPositions": 12,
"timeRemaining": "8m 32s",
"createdAt": "2026-03-04T12:00:00.000Z"
},
"error": null,
"meta": { "command": "api market", "duration_ms": 180 }
}
api leaderboard#
Get the leaderboard from the indexer.
| Option | Required | Description |
|---|---|---|
--period <period> | No | Time period: daily, weekly, monthly, all_time (default: weekly) |
--metric <metric> | No | Sort metric: pnl, volume, winRate, trades (default: pnl) |
seesaw api leaderboard --period weekly --metric pnl
{
"success": true,
"data": [
{
"rank": 1,
"address": "Top1abc...",
"stats": {
"totalPnl": 4250.0,
"winRate": 0.72,
"totalTrades": 156,
"totalVolume": 52000.0
}
}
],
"error": null,
"meta": { "command": "api leaderboard", "duration_ms": 195 }
}
api stats#
Get protocol-wide statistics from the indexer.
| Option | Description |
|---|---|
| (none) | Fetches global protocol stats |
seesaw api stats
{
"success": true,
"data": {
"totalMarkets": 15470,
"totalVolume": 2450000.0,
"totalTrades": 89200,
"activeMarkets": 12,
"totalUsers": 3400
},
"error": null,
"meta": { "command": "api stats", "duration_ms": 150 }
}
api stats-personal#
Get personal trading statistics. Requires authentication.
| Option | Required | Description |
|---|---|---|
--token-stdin | No | Read auth token from stdin instead of argv |
export SEESAW_API_TOKEN=eyJhbGci...
seesaw api stats-personal
{
"success": true,
"data": {
"totalPnl": 1250.0,
"winRate": 0.65,
"totalTrades": 42,
"totalVolume": 8500.0,
"marketsParticipated": 28
},
"error": null,
"meta": { "command": "api stats-personal", "duration_ms": 175 }
}
api achievements#
Get user achievements. Requires authentication.
| Option | Required | Description |
|---|---|---|
--token-stdin | No | Read auth token from stdin instead of argv |
export SEESAW_API_TOKEN=eyJhbGci...
seesaw api achievements
{
"success": true,
"data": [
{
"id": "first_trade",
"name": "First Trade",
"description": "Place your first order",
"unlockedAt": "2026-02-15T09:30:00.000Z"
},
{
"id": "winning_streak_5",
"name": "Hot Streak",
"description": "Win 5 markets in a row",
"unlockedAt": null
}
],
"error": null,
"meta": { "command": "api achievements", "duration_ms": 160 }
}
api compliance-check#
Run a compliance check on a wallet address. Requires authentication.
| Option | Required | Description |
|---|---|---|
--address <address> | Yes | Wallet address to check |
--token-stdin | No | Read auth token from stdin instead of argv |
export SEESAW_API_TOKEN=eyJhbGci...
seesaw api compliance-check \
--address User1abc123def456ghi789jkl012mno345pqr678s
{
"success": true,
"data": {
"address": "User1abc...",
"compliant": true,
"restricted": false,
"checkedAt": "2026-03-04T12:05:00.000Z"
},
"error": null,
"meta": { "command": "api compliance-check", "duration_ms": 320 }
}
fee#
Fee-model and referral commands. The old referral command group was folded into fee; use these names in scripts and runbooks.
fee preview#
Preview the capped-linear-decay fee and current default split locally without RPC.
| Option | Required | Description |
|---|---|---|
--price-bps <n> | Yes | Canonical YES price in bps, 0 through 10000 |
--notional <base> | Yes | Trade notional in settlement-token base units |
--cap-bps <n> | No | Fee cap bps, default 200 |
--decay-bps <n> | No | Decay-rate bps, default 600 |
seesaw fee preview --price-bps 5000 --notional 1000000
fee init-referral-account#
Initialize the signer's ReferrerEarningsAccount PDA and bind it to a stable treasury shard index.
| Option | Required | Description |
|---|---|---|
--treasury-index <n> | Yes | Treasury shard index, 0 through 7 |
--mint <address> | Yes | Settlement mint |
seesaw fee init-referral-account \
--treasury-index 3 \
--mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
fee claim-referral#
Claim accumulated referral earnings to the signer's settlement-token account.
| Option | Required | Description |
|---|---|---|
--ata <address> | Yes | Referrer's settlement-token account |
--mint <address> | Yes | Settlement mint |
--treasury-index <n> | Yes | Shard index stored on the ReferrerEarningsAccount |
seesaw fee claim-referral \
--ata ReferrerStableAta123456789abcdefghijkl \
--mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--treasury-index 3
fee set-referrer#
Set the signer's immutable first-touch referrer. The CLI rejects self-referral before building the transaction.
| Option | Required | Description |
|---|---|---|
--referrer <address> | Yes | Referrer wallet address, must not self |
seesaw fee set-referrer --referrer RefAddr123456789abcdefghijklmnopqrstuvwxyz
treasury#
Treasury shard operations for the multi-fee-recipient layout.
treasury list#
Show the 8 protocol treasury token accounts from config plus the 8 referrer treasury PDAs and their token balances.
| Option | Description |
|---|---|
| (none) | Uses resolved RPC URL |
seesaw treasury list
treasury update-recipients#
Atomically replace config.treasuryRecipients with 8 new SPL token-account addresses. This is equivalent to admin update-treasury-recipients with a shorter flag name.
| Option | Required | Description |
|---|---|---|
--recipients <json> | Yes | JSON array of exactly 8 SPL token-account addresses |
-y, --yes | No | Skip mainnet confirmation prompt after reviewing inputs |
seesaw treasury update-recipients \
--recipients '[
"TreasuryShard111111111111111111111111111",
"TreasuryShard222222222222222222222222222",
"TreasuryShard333333333333333333333333333",
"TreasuryShard444444444444444444444444444",
"TreasuryShard555555555555555555555555555",
"TreasuryShard666666666666666666666666666",
"TreasuryShard777777777777777777777777777",
"TreasuryShard888888888888888888888888888"
]'
creator#
Creator-market and creator-fee commands.
creator list#
List markets created by the configured wallet, including accumulated and currently claimable creator fees.
| Option | Description |
|---|---|
| (none) | Uses resolved API URL |
seesaw creator list
creator claim#
Claim deferred creator fees for one market.
| Option | Required | Description |
|---|---|---|
<marketAddress> | Yes | Market address positional argument |
--creator-ata <address> | Yes | Creator's token account for the settlement mint |
--settlement-mint <address> | Yes | Settlement mint |
seesaw creator claim Mkt1abc123def456ghi789jkl012mno345pqr678stu \
--creator-ata CreatorAtaAddr123456789abcdefghijklmnopqrs \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
creator claim-all#
Claim creator fees from every claimable market returned by the indexer, split into bounded batches.
| Option | Required | Description |
|---|---|---|
--creator-ata <address> | Yes | Creator's token account for the settlement mint |
--settlement-mint <address> | Yes | Settlement mint |
--max-per-tx <n> | No | Maximum claim instructions per batch, default 5 |
seesaw creator claim-all \
--creator-ata CreatorAtaAddr123456789abcdefghijklmnopqrs \
--settlement-mint Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB