AGENT SKILL

torch-market

Every token is its own margin market. Treasury-backed lending, real-token short selling, on-chain pricing. No oracles. No LPs. No bootstrapping.

License 许可
MIT
最近更新
2026-09-30
Stars
★ 1
Forks
0

01 前言 Front Matter

name
torch-market
license
MIT
version
10.1.1
metadata
{ "author": "torch-market", "clawhub": "https://clawhub.ai/mrsirg97-rgb/torchmarket", "version": "10.1.1", "website": "https://torch.market", "clawdbot": { "requires": { "env": [ { "name": "SOLANA_RPC_URL", "required": true }, { "name": "SOLANA_PRIVATE_KEY", "required": false }, { "name": "TORCH_NETWORK", "required": false } ] }, "primaryEnv": "SOLANA_RPC_URL" }, "openclaw": { "install": [ { "id": "npm-torchsdk", "kind": "npm", "flags": [], "label": "Install Torch SDK (npm, optional -- SDK is bundled in lib/torchsdk/ on clawhub)", "package": "torchsdk@^10.1.1" } ], "requires": { "env": [ { "name": "SOLANA_RPC_URL", "required": true }, { "name": "SOLANA_PRIVATE_KEY", "required": false }, { "name": "TORCH_NETWORK", "required": false } ] }, "primaryEnv": "SOLANA_RPC_URL" }, "program-id": "8hbUkonssSEEtkqzwM7ZcZrD9evacM92TcWSooVF4BeT", "sdk-source": "https://github.com/mrsirg97-rgb/torchsdk" }
requires
{ "env": [ { "name": "SOLANA_RPC_URL", "required": true }, { "name": "SOLANA_PRIVATE_KEY", "required": false }, { "name": "TORCH_NETWORK", "required": false } ] }
description
Every token is its own margin market. Treasury-backed lending, real-token short selling, on-chain pricing. No oracles. No LPs. No bootstrapping.
compatibility
REQUIRED: SOLANA_RPC_URL (HTTPS Solana RPC endpoint). OPTIONAL: SOLANA_PRIVATE_KEY (disposable controller keypair -- fresh key, ~0.01 SOL for gas, NEVER a vault authority key). OPTIONAL: TORCH_NETWORK ('devnet' for devnet). Without SOLANA_PRIVATE_KEY, operates in read-and-build mode: queries state, returns unsigned transactions. SDK bundled in lib/torchsdk/. No API server dependency.
disable-model-invocation
true

02 资源文件 27

03 SKILL.md 正文

torch.market

Every token launched on torch gets a funded treasury, a 300M token lending reserve, margin lending, short selling, and on-chain pricing — all live from migration.

No external LPs. No oracle feeds. No protocol token. No bootstrapping.

What Torch Is

A protocol where every token launches with its own margin market.

  • Lending: borrow SOL against token collateral from the token's own treasury
  • Short selling: borrow real tokens from the 300M treasury lock, sell on the real market
  • Pricing: Raydium pool reserves — no external oracle
  • Liquidation: permissionless — anyone can call
  • Parameters: immutable on-chain — no admin key changes them

Shorts are not synthetic. Borrowed tokens are real. Selling them moves the real price. Short sellers are market participants contributing to price discovery.

Token Lifecycle

CREATE → BOND → MIGRATE → TRADE → MARGIN
                                     │
                                ┌────┴─────┐
                              LEND     SHORT SELL
                                │          │
                              REPAY    CLOSE
                                │          │
                              LIQUIDATE  LIQUIDATE

Bonding — constant-product curve. SOL splits: curve (tokens to buyer) + treasury (SOL accumulates) + 10% tokens to vote vault. 2% max wallet. Completes at 100 or 200 SOL.

Migration — permissionless. Creates Raydium pool, burns LP tokens (liquidity locked forever), revokes mint/freeze authority permanently, activates 0.04% transfer fee.

Trading — token trades on Raydium. Transfer fees harvest to treasury as SOL. Treasury grows perpetually.

Margin — two capital pools, two-sided margin:

Pool Asset Purpose
Token Treasury SOL Lending pool — borrow SOL against token collateral
Treasury Lock 300M tokens Short pool — borrow real tokens against SOL collateral

Constants

SUPPLY          1,000,000,000 tokens (6 decimals)
CURVE_SUPPLY    700,000,000 (70%)
TREASURY_LOCK   300,000,000 (30%)
MAX_WALLET      2% during bonding
BONDING_TARGET  100 SOL (Flame) / 200 SOL (Torch)
PROTOCOL_FEE    0.5% on buys
TREASURY_RATE   15% → 2.5% (dynamic decay)
TRANSFER_FEE    0.04% (post-migration, immutable)
MAX_LTV         50%
LIQ_THRESHOLD   65%
INTEREST        2% per epoch (~7 days)
LIQ_BONUS       10%
UTIL_CAP        80%
BORROW_CAP      5x collateral share of supply
MIN_BORROW      0.1 SOL
PROGRAM_ID      8hbUkonssSEEtkqzwM7ZcZrD9evacM92TcWSooVF4BeT

SDK

GET QUOTE → BUILD TX → SIGN & SEND

One flow, any token state. The SDK auto-routes bonding curve or Raydium DEX based on the quote's source field.

import { getBuyQuote, buildBuyTransaction } from "torchsdk";

const quote = await getBuyQuote(connection, mint, 100_000_000); // 0.1 SOL
const { transaction } = await buildBuyTransaction(connection, {
  mint, buyer: wallet, amount_sol: 100_000_000,
  slippage_bps: 500, vault: vaultCreator, quote,
});
// sign and send — VersionedTransaction, ALT-compressed

Queries

Function Returns
getTokens(connection, params?) Token list (filterable, sortable)
getToken(connection, mint) Full detail: price, treasury, votes, status
getTokenMetadata(connection, mint) On-chain Token-2022 metadata
getHolders(connection, mint) Top holders with balance/percentage
getMessages(connection, mint, limit?, opts?) On-chain memos. { enrich: true } adds SAID
getLendingInfo(connection, mint) Lending parameters and pool state
getLoanPosition(connection, mint, wallet) Loan: collateral, debt, LTV, health
getAllLoanPositions(connection, mint) All loans sorted by liquidation risk
getShortPosition(connection, mint, wallet) Short: collateral, debt, LTV, health
getBuyQuote(connection, mint, sol) Tokens out, fees, impact. source: bonding|dex
getSellQuote(connection, mint, tokens) SOL out, impact. source: bonding|dex
getBorrowQuote(connection, mint, collateral) Max borrow: LTV, pool, per-user caps
getVault(connection, creator) Vault state
getVaultForWallet(connection, wallet) Reverse vault lookup

Trading

Function Description
buildBuyTransaction Buy via vault. Auto-routes bonding/DEX
buildDirectBuyTransaction Buy without vault (human wallets)
buildSellTransaction Sell via vault. Auto-routes bonding/DEX
buildCreateTokenTransaction Launch token + treasury + 300M lock
buildStarTransaction Star token (0.02 SOL)
buildMigrateTransaction Migrate to Raydium (permissionless)

Margin (post-migration)

Function Description
buildBorrowTransaction Borrow SOL against token collateral
buildRepayTransaction Repay debt, unlock collateral
buildLiquidateTransaction Liquidate loan (>65% LTV)
buildOpenShortTransaction Post SOL, borrow tokens from treasury lock
buildCloseShortTransaction Return tokens, recover SOL collateral
buildLiquidateShortTransaction Liquidate short (>65% LTV)
buildClaimProtocolRewardsTransaction Claim epoch trading rewards

Vault

Function Signer
buildCreateVaultTransaction creator
buildDepositVaultTransaction anyone
buildWithdrawVaultTransaction authority
buildWithdrawTokensTransaction authority
buildLinkWalletTransaction authority
buildUnlinkWalletTransaction authority
buildTransferAuthorityTransaction authority

Treasury Cranks (permissionless)

Function Description
buildHarvestFeesTransaction Harvest 0.04% transfer fees to treasury
buildSwapFeesToSolTransaction Swap harvested tokens to SOL via Raydium
buildReclaimFailedTokenTransaction Reclaim inactive tokens (7+ days)

Vault — Why Funds Are Safe

Human (authority)                   Agent (controller, ~0.01 SOL gas)
  ├── createVault()                  ├── buy(vault)       → vault pays
  ├── depositVault(5 SOL)            ├── sell(vault)      → SOL to vault
  ├── linkWallet(agent)              ├── borrow(vault)    → SOL to vault
  ├── withdrawVault()  ← auth only   ├── repay(vault)     → collateral back
  └── unlinkWallet()   ← instant     ├── openShort(vault) → tokens to vault
                                     └── closeShort(vault)→ SOL to vault
Guarantee Mechanism
Full custody Vault holds all SOL and tokens. Controller holds nothing.
Closed loop Every operation returns value to vault. No leakage.
Authority separation Creator (immutable) / Authority (transferable) / Controller (disposable)
Instant revocation Authority unlinks controller in one tx
No extraction Controllers cannot withdraw. Period.
Isolated positions One loan per user per token. One short per user per token. No cascading.
Immutable parameters LTV, liquidation, interest — set at deployment. No admin key changes them.

Key Safety

If SOLANA_PRIVATE_KEY is provided: must be a fresh disposable keypair (~0.01 SOL gas). All capital lives in vault. If compromised: attacker gets dust, authority revokes in one tx. Key never leaves the runtime.

If not provided: read-only mode — queries state, returns unsigned transactions.

Rules:

  1. Never ask for a private key or seed phrase.
  2. Never log, print, store, or transmit key material.
  3. Use a secure HTTPS RPC endpoint.

Risk

Positions can be liquidated. Bad debt is possible in extreme conditions. There is no insurance fund. But:

  • Bad debt is isolated — one position going underwater cannot affect any other position
  • Per-user caps prevent pool concentration — one user cannot drain the lending pool
  • 20% of treasury SOL is always reserved (utilization cap)
  • Liquidation is permissionless — no keeper dependency

Verification

58 Kani proof harnesses. 59 end-to-end tests. All passing. Core arithmetic formally verified. See VERIFICATION.md.

Links

04 同仓库更多 Skills