You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JSON-RPC sunset (2026-07-31): SuiPythClient is built on the public fullnode — price updates for non-pythSponsored markets will break withdraw()/borrow() #157
Hi!
I'm running supply/withdraw on AlphaLend mainnet via @alphafi/alphalend-sdk (reads on GraphQL, build/sign on gRPC).
Both 3.0.1 and 3.0.2 construct a SuiJsonRpcClient on https://fullnode.mainnet.sui.io/ for SuiPythClient (src/core/client.ts, L117–127 — the constructor comment already notes it's the one remaining JSON-RPC usage; understandable, since every published @pythnetwork/pyth-sui-js is JSON-RPC-only — the latest, 3.0.0, still depends on @mysten/sui@^1.3).
withdraw() (likewise borrow()/claimRewards()/liquidate()) always calls updatePrices(), and for any coin whose metadata is not flagged pythSponsored that routes through SuiPythClient.updatePriceFeeds → the public fullnode.
Probing the live coin metadata today, 9 of 33 mainnet markets are non-sponsored (ALPHA, ALKIMI, SUI_USDE, EBTC, EXBTC, ESUI, EGUSDC, EWAL, ETHIRD).
With mainnet public JSON-RPC endpoints starting to shut down the week of 2026-07-20 (protocol deactivation 07-31), if I understand correctly those markets' withdraw/borrow paths will start failing then.
Sponsored coins (SUI, USDC, …) currently skip the Pyth client entirely — though the coin-metadata fallback defaults pythSponsored: false, so a metadata regression would send every coin down the JSON-RPC path. supply() (price-update-free) keeps working either way.
Questions:
Is a Pyth/JSON-RPC-free price path planned before 2026-07-20? Is PR feat: add Pyth Lazer as an opt-in price source #155 (Pyth Lazer, verify-in-PTB — which looks fullnode-free) the intended replacement, and will it cover the currently non-sponsored markets?
Will it ship as a 3.0.x on npm?
Separately: 3.0.2 switched withdraw/borrow/claim output delivery from returned coin objects to crediting the sender's address balance via 0x2::coin::send_funds (sendCoinToAddressBalance in src/models/blockchain.ts). Could you document the consumer-side requirements for that (minimum @mysten/sui for balance reads + coin selection over accumulator funds)? Recent @mysten/sui resolves coinWithBalance via FundsWithdrawal/redeem_funds, but apps reading plain coin-object balances may not see the withdrawn funds.
Hi!
I'm running supply/withdraw on AlphaLend mainnet via
@alphafi/alphalend-sdk(reads on GraphQL, build/sign on gRPC).Both 3.0.1 and 3.0.2 construct a
SuiJsonRpcClientonhttps://fullnode.mainnet.sui.io/forSuiPythClient(src/core/client.ts, L117–127 — the constructor comment already notes it's the one remaining JSON-RPC usage; understandable, since every published@pythnetwork/pyth-sui-jsis JSON-RPC-only — the latest, 3.0.0, still depends on@mysten/sui@^1.3).withdraw()(likewiseborrow()/claimRewards()/liquidate()) always callsupdatePrices(), and for any coin whose metadata is not flaggedpythSponsoredthat routes throughSuiPythClient.updatePriceFeeds→ the public fullnode.Probing the live coin metadata today, 9 of 33 mainnet markets are non-sponsored (ALPHA, ALKIMI, SUI_USDE, EBTC, EXBTC, ESUI, EGUSDC, EWAL, ETHIRD).
With mainnet public JSON-RPC endpoints starting to shut down the week of 2026-07-20 (protocol deactivation 07-31), if I understand correctly those markets' withdraw/borrow paths will start failing then.
Sponsored coins (SUI, USDC, …) currently skip the Pyth client entirely — though the coin-metadata fallback defaults
pythSponsored: false, so a metadata regression would send every coin down the JSON-RPC path.supply()(price-update-free) keeps working either way.Questions:
Is a Pyth/JSON-RPC-free price path planned before 2026-07-20? Is PR feat: add Pyth Lazer as an opt-in price source #155 (Pyth Lazer, verify-in-PTB — which looks fullnode-free) the intended replacement, and will it cover the currently non-sponsored markets?
Will it ship as a 3.0.x on npm?
Separately: 3.0.2 switched withdraw/borrow/claim output delivery from returned coin objects to crediting the sender's address balance via
0x2::coin::send_funds(sendCoinToAddressBalanceinsrc/models/blockchain.ts). Could you document the consumer-side requirements for that (minimum@mysten/suifor balance reads + coin selection over accumulator funds)? Recent@mysten/suiresolvescoinWithBalanceviaFundsWithdrawal/redeem_funds, but apps reading plain coin-object balances may not see the withdrawn funds.Thanks!