Build and integrate Manifest DEX on Solana using the Manifest SDK. Covers market reads, order placement, wrapper and global account setup, reverse and global order types, and frontend integration patterns.
Build trading, routing, portfolio, and frontend integrations on top of Manifest's permissionless orderbook.
Use this skill when the task involves:
Limit, PostOnly, ImmediateOrCancel, Global, Reverse, and ReverseTight order typesLoad supporting references as needed:
resources/manifest-actions.mdresources/manifest-sdk.mddocs/troubleshooting.mdexamples/read-market/read-market.tsexamples/wallet-order/place-order.tsexamples/global-liquidity/global-order.tsexamples/reverse-liquidity/amm-style-batch.tstemplates/manifest-setup.tsMarket reads or ManifestClient.getClientReadOnly(...).getClientForMarket(...) for signer-controlled flows, or use getSetupIxs(...) first and then getClientForMarketNoPrivateKey(...) for wallet-adapter flows.OrderType.Global).Reverse or ReverseTight instead of ordinary limit orders.bidsL2() and asksL2() for display-ready levels.cancelAllIx() does not fully cover all reverse/global edge cases; cancelAllOnCoreIx() is the stronger cleanup path.When user asks: "Show the best bid and ask on a Manifest market"
The agent should:
Market.loadFromAddress(...) or ManifestClient.getClientReadOnly(...)bestBidPrice() and bestAskPrice() or bidsL2() / asksL2()When user asks: "Place a Manifest order from a browser wallet"
The agent should:
ManifestClient.getSetupIxs(...)ManifestClient.getClientForMarketNoPrivateKey(...)client.placeOrderIx(...)When user asks: "Use the same capital across multiple Manifest markets"
The agent should:
createGlobalAddTraderIx(...)globalDepositIx(...)OrderType.Global ordersWhen user asks: "Provide recurring liquidity that flips after fills"
The agent should:
OrderType.Reverse or OrderType.ReverseTightspreadBps instead of lastValidSlotReverseTight when tighter spread precision matterscancelAllOnCoreIx() rather than only wrapper-level cancellationCopy-paste oriented examples in this skill:
examples/read-market/read-market.tsexamples/wallet-order/place-order.tsexamples/global-liquidity/global-order.tsexamples/reverse-liquidity/amm-style-batch.tsgetSetupIxs(...) before wallet-adapter trading flows.getClientReadOnly(...) for anonymous or pre-setup inspection paths.bidsL2() / asksL2() for UI-facing orderbook displays.OrderType.Global as equivalent to ordinary market-local orders.cancelAllIx() as if it always fully cleans up reverse/global edge cases.Cause: A write method was called on a read-only client or without a payer/wrapper context.
Solution: Switch to getClientForMarket(...) or complete the getSetupIxs(...) flow and then use getClientForMarketNoPrivateKey(...).
Cause: Wrapper creation or market seat claim has not been completed.
Solution: Run the instructions returned by ManifestClient.getSetupIxs(...) before building normal wrapper-based trading actions.
Cause: The trader is using OrderType.Global without a funded global account for the supporting token.
Solution: Run createGlobalAddTraderIx(...) if needed, then globalDepositIx(...), and only then place the global order.
Cause: Wrapper-level cancellation does not fully cover all core-level order states.
Solution: Use cancelAllOnCoreIx() when full core cleanup is required.
https://manifest.tradehttps://www.npmjs.com/package/@bonasa-tech/manifest-sdkhttps://github.com/Bonasa-Tech/manifesthttps://github.com/Bonasa-Tech/manifest/tree/main/client/ts