The first release of Polyester Testnet, open for you to try trading on Polyester with test funds.
- Daily rewards: claim testnet rewards every day
- Good-Til-Date orders: limit orders that expire at the exact time you choose
- Currency conversion APIs: reference rates for 154 fiat currencies, USDC and USDT
- Help chat: ask about your recent funding activity
API users: review the 13 changes that need attention below.
Changes to the API that may require updates to your integration.
Single-order submissions through REST, ConnectRPC, and trading WebSocket now represent independent attempts, with optional client order IDs available for reconciliation.
What you need to do
Remove request_id from single-order requests and update generated clients. Update trading WebSocket SBE clients to schema version 11 without requestId. Remove automatic single-create retries after ambiguous failures; supply a unique client order ID and reconcile through GetOrder before deciding whether to submit again.
Single and batch order submissions can replay their original admission outcomes for 15 minutes, including after a lost response or service restart.
What you need to do
Supply requestId in REST CreateOrder bodies and request_id in protobuf CreateOrder requests. SBE WebSocket clients must upgrade to schema version 12 and include requestId when creating orders. Preserve the request ID and complete payload when retrying; generate a fresh ID when changing an order or batch.
Integrations using millisecond time parameters or page_token must switch to RFC3339 startTime/endTime and camelCase pageToken.
What you need to do
Replace startTimeMs/endTimeMs with RFC3339 startTime/endTime and page_token with pageToken. Supply candle timeframe and limits within the documented maximum; use true/false or 1/0 for candle inclusion flags. Restart trade pagination without a pageToken to obtain a fresh cursor after the update.
Developers consuming JSON WebSocket status updates must accept decimal strings for nanosecond timestamps to preserve their exact values.
What you need to do
Update JSON WebSocket consumers to read batch-replacement acceptedTsNs, updatedTsNs, and items[].updatedTsNs as decimal strings instead of JSON numbers. Preserve them as strings or parse them with an integer type that retains nanosecond precision. Accept firePx="0" on trigger events without a firing price.
API clients now receive a duplicate-ID error even when the earlier order was canceled or the submitted order details are identical.
What you need to do
Clients relying on CreateOrder retries replaying an earlier result must handle duplicate-ID rejection. Use a fresh clientOrderId for each new order; retry BatchCreateOrders with the original requestId and unchanged payload.
Developers can retrieve 97 aligned samples of trailing 24-hour USD volume for individual trading pairs and their combined total, spaced 15 minutes apart over the latest day.
What you need to do
Replace order_by=VOLUME_24H_QUOTE with order_by=VOLUME_24H_USD and update generated clients for the renamed enum. Update primary REST candle tuple parsers to accept quote volume as the seventh value; reference candle tuples retain six values. Handle omitted market overview base and quote volumes when amounts exceed the supported range, and omitted USD volume when valuation is unavailable.
This validation applies to destination checks and both API-key and wallet-authorized withdrawals.
What you need to do
Remove unsupported JSON fields from withdrawal creation and destination-validation requests; clients already sending only documented fields need no changes.
Developers consuming GET /v1/chain/deposit-withdraw/config must update integrations that depend on the removed field.
What you need to do
Remove dependencies on the top-level polyesterChainId response field and update affected client models.
Session-authenticated integrations can distinguish temporary reward unavailability from general service failures across REST and Connect.
What you need to do
Update clients matching previous REST error strings: for example, resource_exhausted becomes RATE_LIMIT_EXCEEDED and invalid_request becomes INVALID_REQUEST. Handle SERVICE_UNAVAILABLE separately from CLAIM_TEMPORARILY_UNAVAILABLE, and keep request bodies within 1,024 bytes.
API clients can determine whether to restart a social verification challenge or retrieve its current status without parsing error messages.
What you need to do
Update clients that handle these failures as AUTH_INVALID_REQUEST or HTTP 400 to accept the new codes and HTTP 412. Restart verification after expiration; retrieve the current status for invalid-state responses.
Connect JSON APIs now reject scientific notation and other unsupported integer formats instead of converting them automatically.
What you need to do
If your Connect JSON client sends integer fields using scientific notation or other rejected formats, serialize them as plain base-10 integers. For example, replace "1e4" with "10000". Clients already sending canonical integers need no changes.
Clients paginating transfer history now receive consecutive entries in both oldest-first and newest-first order, including transfers recorded within the same microsecond.
What you need to do
Discard previously saved transfer-history page tokens and restart with no page token, then use the continuation tokens returned by subsequent responses.
New accounts accept terms during onboarding, while returning users with outstanding acceptance see a separate prompt.
What you need to do
When prompted, review the Terms of Service and Privacy Policy, select the acceptance checkbox, and choose Continue; alternatively, log out.
Good-Til-Date limit orders now support exact expiries, and daily testnet rewards can be claimed for Master Account Trading balances. Trading API contracts also changed around order submission identity and request formats, alongside broad reliability improvements.
Single-order submissions through REST, ConnectRPC, and trading WebSocket now represent independent attempts, with optional client order IDs available for reconciliation.
Submitting without a client order ID can create a separate order each time. Reusing a retained client order ID returns CONFLICT_DUPLICATE_CLIENT_ORDER_ID, even for an identical order. After an ambiguous timeout, use GetOrder with the supplied client order ID; an immediate lookup miss does not prove rejection. BatchCreateOrders retains its request-ID replay behavior.
Single and batch order submissions can replay their original admission outcomes for 15 minutes, including after a lost response or service restart.
Exact retries preserve the original order IDs, admission timestamp, and ordered batch outcomes, including validation rejections. Reusing a request ID with a changed payload during the replay window returns CONFLICT_IDEMPOTENCY_KEY_REUSE.
Integrations using millisecond time parameters or page_token must switch to RFC3339 startTime/endTime and camelCase pageToken.
Candle REST responses now preserve nextPageToken, including when requesting live candles, and historical pages exclude the current open candle. Pagination can continue beyond a full 10,000-candle page. Trade pagination no longer skips older trades whose IDs exceed the previous page’s last ID, and trade time filters preserve nanosecond precision.
Developers consuming JSON WebSocket status updates must accept decimal strings for nanosecond timestamps to preserve their exact values.
Batch-replacement status updates now ignore stale updates and prevent completed or rejected items from returning to an active phase. Trigger-event JSON always includes firePx, using "0" when no firing price applies.
API clients now receive a duplicate-ID error even when the earlier order was canceled or the submitted order details are identical.
CreateOrder rejects reuse of an account-scoped clientOrderId while it remains retained, including after rejection or completion. In BatchCreateOrders with a new requestId, reused client IDs return CONFLICT_DUPLICATE_CLIENT_ORDER_ID for the affected items while other valid items continue. Retrying the same batch requestId with unchanged contents still returns its original per-item results.
Developers can retrieve 97 aligned samples of trailing 24-hour USD volume for individual trading pairs and their combined total, spaced 15 minutes apart over the latest day.
GET /v1/spot/markets/volume-history supports pair filtering and returns decimal USD amounts. Each pair remains separate, including pairs sharing the same base asset. History requests fail when contributing trades cannot be valued reliably. Market overview responses and WebSocket updates now include optional USD volume, and default volume ranking uses USD. Candle responses add exact quote-asset volume calculated from executed prices and quantities. REST candle tuples expand from six to seven values, and the market overview sort option changes from VOLUME_24H_QUOTE to VOLUME_24H_USD.
Set an exact expiry time for limit orders so any unfilled quantity cancels automatically.
GTD limit orders support post-only execution through REST, ConnectRPC and private trading WebSockets. JSON requests use limitGtd with a required absolute RFC 3339 expireAt timestamp, validated within an inclusive 1-second-to-30-day window. Orders stop being eligible for execution at the deadline, with remaining quantity canceled as GTD_EXPIRED. The original expiry survives amendments, replacements and recovery, and appears in order reads and private realtime updates.
Adds daily testnet rewards credited to the Master Account’s Trading balance.
When a reward campaign is active, signed-in users can claim once per Master Account each UTC day, resetting at 00:00 UTC. The API reports today’s rewards, claim status and next reset time. Multi-asset rewards are paid together, and retries return the same daily claim. Future rewards remain hidden until their scheduled day, and missed days do not accumulate.
Connect JSON APIs now reject scientific notation and other unsupported integer formats instead of converting them automatically.
Integer fields accept base-10 whole numbers such as 100 or "100". Scientific notation, decimal-point notation, leading plus signs, whitespace inside integer strings, and leading zeros are rejected. BatchCreateOrders requests containing these formats return HTTP 400 before order submission.
API clients require Spot Trade permission for cancellation actions, while Spot Read continues to allow cancel-all previews.
The permission requirement covers single and batch cancellation, live cancel-all, and enabling or disabling automatic cancellation timers. Authorized cancellation remains available when account or subaccount trading is inactive.
Traders continue receiving book updates for existing and newly added markets when market coverage expands.
Fixed a condition that could leave order books stale or unavailable after adding markets.
Fixed inconsistencies between standalone trigger update responses and saved state during interruptions.
Cancel, pause, resume, and edit operations for standalone stop-loss, take-profit, and trailing-stop triggers can recover committed results after restarts without repeating the same update. Requests based on outdated state are rejected before they overwrite newer changes. Standalone TWAP and ladder cancellations now complete only after the cancellation has been durably recorded.
Standalone trailing stops now report when tracking begins and expose their current trigger price as the market moves.
Trigger history and JSON/protobuf WebSocket event streams now include EVENT_ACTIVATED. Trigger reads and protobuf state updates expose the current trailing threshold, which follows peak or trough changes. The threshold is absent before activation or when no positive threshold exists. REST responses expose it as triggerPrice.
Reference candle collection now uses Binance, Bybit, and OKX, avoiding repeated attempts to fetch Coinbase history whose completeness cannot be verified.
Coinbase market discovery and live trade and quote feeds remain supported.
API clients can determine when to retry a single order rejected for exceeding the account’s order-placement quota.
HTTP 429 responses now include quota headers and structured rate_limit information describing the limit, remaining quota and retry delay. ConnectRPC errors also preserve structured quota information alongside the order error.
When a requested total quantity is at or below the quantity already filled, batch replacement results correctly identify cancellation of the remaining quantity without a successor order.
BatchReplaceOrders and GetBatchReplaceStatus now distinguish cancel-only outcomes with action_taken=AMENDED and no replacement order ID. Cancel-only admission also returns no successor client order ID. Status describes the original order, which clients should track until cancellation is confirmed; REPLACED identifies an admitted successor.
Trading API clients now receive the original ordered results when replaying an identical batch cancellation, including after a service restart.
During the default 15-minute retry window after completion, reusing the same request ID with changed targets, symbols or item order returns per-item CONFLICT_IDEMPOTENCY_KEY_REUSE errors without cancelling the changed targets. This applies to batches using order IDs, client order IDs or both.
Traders canceling attached take-profit or stop-loss triggers after an order fills now receive success when the cancellation is confirmed.
Fixes intermittent service-unavailable responses after a cancellation had already succeeded, including triggers linked as one-cancels-the-other pairs.
API and SDK consumers can identify the strategy directly from newly recorded cancellation events without fetching the original trigger.
Cancellation history preserves the trigger type for Ladder, TWAP, stop-loss, take-profit, and trailing-stop triggers. Previously recorded events are not backfilled.
This fixes a source of submission delays during concurrent trading activity, including scheduled TWAP slices.
Independent orders can proceed while unrelated orders finish processing, including orders submitted with or without a client order ID.
Traders no longer see a duplicate client ID failure when an accepted TWAP slice receives a delayed confirmation.
Retries preserve the original slice quantity, and late confirmations advance progress only once, allowing subsequent slices to continue.
Spot market candle subscribers continue receiving updates when recovery replays a candle already loaded from saved history.
Fixes a restart failure caused by treating an unchanged candle as conflicting data, which could interrupt live candle updates.
SBE trade WebSocket connections can now become available after startup or outage recovery without waiting for a new settlement.
Fixes HTTP 503 responses on /ws/trade.sbe that could persist during periods without trading activity. Clients can now connect after startup or recovery even if no new settlements have occurred.
Fixed an issue where submitting an order without the optional clientOrderId could interrupt order-state processing.
These orders now support continued order-state processing during normal operation and recovery after a service restart.
Traders can continue placing orders when settlement arrives after a partially filled order has been canceled.
Fixes a timing issue that could incorrectly cause subsequent order attempts to return “Service temporarily unavailable.”
Traders can reach active and historical order details, including TWAP activity, in shorter supported browser windows without changing browser zoom.
Details scroll within the dialog while headers and close controls remain visible. The fix also covers related order and trigger dialogs opened from within another dialog.
Order-history time filters now use when an order was filled, canceled, or rejected, including exact start and end boundaries.
Orders created before the requested range now appear when they reach a final status within that range. The correction applies to REST and Connect order-history queries, with or without a status filter.
Traders receive take-profit, stop-loss, and trailing-stop details that match the order version shown after edits or recovery.
Order lookups, open-order lists, and live updates keep protection settings and status together. Rearmed protection no longer shows an outdated completion status or timestamp. Recovery also accounts for quantities already executed by protective orders.
Traders who leave completed or canceled TWAP details open can see execution prices that become available later without refreshing the page.
Execution prices continue updating while the details remain open in a visible tab, including after the final slice or cancellation.
Visitors returning to the homepage tab can resume live market updates and visible video playback without visibility-handling errors.
Homepage market feeds and videos pause while the tab is hidden and resume when it becomes visible, with videos playing only when on screen.
Traders can copy order IDs from trade history without being sent to a transaction page in Polyester Scan.
The Order ID column now displays copyable text with “Copy ID” and “ID copied” tooltips.
Fixed incorrect chain information in transfer history and missed order acceptance and cancellation updates.
Internal transfers now handle absent chain information correctly when loading history. Deposit records preserve their source chain through settlement and failure updates. Valid order acceptance and cancellation updates are processed correctly with either empty or populated client order IDs.
Fixed reliability issues affecting batch order replacements, settlement recovery, and pending order updates during planned restarts.
Batch replacements now consistently associate original and replacement orders with the same batch request. Fixed a failure case that could cause settlement requests to be skipped during recovery, and improved handling of queued order updates during graceful shutdown.
Improved reservation recovery for orders, withdrawals, and internal transfers after service interruptions.
Fixes cases where recovery could skip related reservation updates, helping keep reserved funds consistent. Also improves restoration of order and trigger reservations and funds reserved for withdrawals and internal transfers.
Protobuf trading clients can update or clear attached take-profit, stop-loss, and trailing-stop settings when modifying an order.
Valid immediate-or-cancel buy orders using a maximum quote spend also pass validation. Order edits now use the documented default modification behavior when omitted, while explicitly supplied zero prices and quantities are rejected instead of silently ignored.
Fixed edge cases affecting order replacement retries, cancel-all-after renewals, and standalone trigger creation.
Order replacement retries more accurately distinguish changes to price, quantity, and attached take-profit or stop-loss settings. Renewed cancel-all-after settings now survive completion of an older expiry. Successfully saved standalone triggers remain accepted if subsequent service communication fails, and identical creation retries return the existing trigger.
Improved historical reference candle recovery and handling of incomplete exchange data.
Backfills now continue searching for older daily candles across empty response pages and retry temporary exchange failures while respecting exchange cooldowns. Missing Coinbase candles are no longer treated as confirmed periods without trading, and history rechecks reject responses that would reclassify previously observed candles that way.
Improved one-second and one-minute candle accuracy and recovery after restarts and temporary service interruptions.
Fixes cases where repeated data inflated candle totals, unfinished minutes were incorrectly reconstructed, or interrupted updates were lost.
Descending 24-hour change sorting now places a 10% loss ahead of a 1% gain, including across result pages.
Last-trade prices ignore older or duplicate trades, removed markets are excluded from overview responses, and available sparklines follow the requested interval order without duplicates. Volume history excludes delisted markets and rejects requests that explicitly select them.
Traders viewing live spot candles now see volume totals that remain unchanged when a trade update is retried.
Repeated trade updates no longer inflate base or quote volume in open candles. Longer-timeframe candles also retain available data across gaps in incoming updates.
Fixed cases where interrupted processing could cause related order updates to be skipped on retry.
Recovery now also accounts for trigger updates and removals, improving handling of previously recorded trading activity.
Fixed retry and recovery handling for internal transfers, withdrawals, and trade settlement.
Internal transfers remain retryable after temporary account lookup failures. Completed withdrawals are recognized more reliably when processing is retried. Settlement resumes only after pending balance updates are recovered successfully.
API clients can reuse the same request ID after an unsuccessful cancel-all or dead-man switch request.
Duplicate cancel-all, dead-man switch, and batch replacement requests now respect their own cancellation and deadline while waiting for the original request to finish.
Unfinished ladder placements are preserved when many orders need recovery at once.
Recovery resumes unfinished placements from the latest saved ladder state and retains retries during busy periods.
Improved the accuracy and reliability of external market data used for reference prices and candles.
Corrected Binance and Binance.US trade direction, preserved Kraken quote timestamps, and improved Bybit feed subscriptions and keepalives. Invalid trade data is filtered more consistently, and malformed Coinbase book updates no longer partially change quotes.
Daily reward claims recover more reliably after request cancellation.
Failed claim attempts remain eligible for retry after cancellation or timeout, with corresponding API error codes preserved. Claims API Connect JSON requests now reject unknown fields, while invalid claim states return errors instead of misleading processing statuses.
Improved order consistency when duplicate spot order identifiers are encountered.
A submission that duplicates an existing resting order’s identifier is rejected while preserving the existing order in the book.
Developers reading open orders, order details, or order history now receive optional lifecycle timestamps only when those timestamps are set.
Unset completion dates and activation dates for attached stop-loss, take-profit, and trailing-stop orders are omitted. Delayed updates no longer make orders reappear in open-order results or roll back batch replacement progress. Trigger reads also reject outdated updates.
Traders and API consumers receive correctly rounded index prices when combined venue prices fall exactly halfway between ticks.
A combined index price of 3.5 ticks now rounds to 4 ticks instead of potentially publishing 3 ticks.
Subscribers receive a full replacement of price levels after feed recovery, including when the update sequence restarts or stays unchanged.
Replacement snapshots now tell subscribers to clear their previous order book before applying fresh levels. Snapshot recovery also discards retained state when a market has no current snapshot, preventing outdated bids and asks from reappearing.
Eligible maker buy fills now credit rebates paid in the purchased asset.
Rebates no longer count as spending from funds reserved for maker buy orders. Trading fee and rebate amounts also round down at settlement precision instead of rounding up.
Spot order book feeds wait for a fresh snapshot before publishing further price-level changes after a failed update batch.
The same safeguard applies when an update batch exceeds the supported size, preventing updates from continuing across missing data.
Switching between available regional gateways no longer makes your account appear signed out after the page reloads.
System status is now available in the trading footer. Refreshing gateway latency keeps the status menu open. If cookies prevent saving a gateway selection, the panel displays guidance to allow cookies and retry.
Order book snapshots also retain their price levels when valid batched updates overlap the latest snapshot.
Fixed a case where overlapping market updates stopped heatmap data from advancing and temporarily cleared the order book. These updates now apply changed quantities and remove cleared price levels correctly.
Traders can scroll the Trades and Transfers tabs to load additional execution history.
Duplicate trades and settlement transfers are removed across loaded pages. Replacing a partially filled order also stops repeating a fill notification for inherited fills.
Traders see consistent price precision and slower scrolling across all three footer ticker speed settings.
Stablecoin-quoted prices display two decimal places, while other prices retain their market precision, preventing jumps when trailing zeroes change. QuickSwap links also resolve token selections after available token data loads and use current token information.
Fixed an issue that could stall candle history updates while processing large historical backlogs.
Historical catch-up now handles large batches more reliably, improving availability of spot and reference candle history through the market data API. Failed writes remain eligible for retry.
Safari users should experience smoother browsing while live market prices update.
Price updates retain their rise-and-fall highlights, and empty order books remain static. Account settings confirmations now reflect your preference changes without appearing for background synchronization.
Traders can sort the Slippage column while order history is loading without encountering an error.
Slippage cells show a dash while loading or when configured slippage is unavailable.
Traders using the advanced spot trading layout can repeatedly expand and collapse the sidebar while the order form keeps its position and width.
The order form stays in place throughout the sidebar animation, including successive opening and closing actions.
Traders using attached OCO take-profit and stop-loss orders retain protection for the remaining quantity when an immediate-or-cancel exit fills partially or not at all.
Both protective legs rearm for the remaining exposure after the exit order ends. Later fills of a still-working parent order also receive protection again.
Reduced order book header shifting when the trading panel loads or resizes.
Size and Total headers retain consistent labels, with the selected asset symbol shown in wider panels and hidden in compact views.
BTC-USDT keeps its quantity increment of 0.00000001 BTC instead of reverting to 0.00001 BTC.
The minimum BTC quantity also remains one satoshi (0.00000001 BTC). Orders must still meet the 1 USDT minimum order value, and the price increment remains 0.01 USDT.
Fixed unnecessary rejections during repeated partial order replacements that could cause market-making quotes to disappear.
Completed replacement batches no longer prevent subsequent replacements solely because their orders remain open.
Reduced memory use when processing completed-order history, including during service restarts.
Preserves live updates for attached take-profit, stop-loss, and trailing-stop orders while their parent orders remain needed.
Price changes, quantity increases, and Replace Only edits now check available funds against the full unfilled replacement amount.
When available funds are insufficient, the order editor disables confirmation and displays an insufficient-balance message. Reducing quantity through an in-place amendment requires no additional funds.
Traders and API consumers now receive combined historical and recent trading volume across REST, Connect and WebSocket responses.
24-hour base, quote and USD volume preserve earlier trading activity as new trades arrive, without counting recent activity twice when totals refresh.
Traders editing open orders now need available funds only for the additional amount required by the change.
Balance checks account for existing reservations and partial fills when changing quantity or buy price. Edits that reduce the required funds no longer show a false insufficient-balance warning. When additional funds exceed the available balance, the confirmation button is disabled and identifies the insufficient asset balance.
Improved text and link display in support conversations, notification previews, and trading social posts.
Support replies and notification previews display HTML markup as text while preserving supported Markdown formatting, links, and images. Trading social posts handle special characters and links more consistently while retaining hashtag, ticker, and mention highlighting.
Switching trading pairs or changing order filters while signed out now leaves order tables empty instead of stuck loading.
Order-table reloads now finish when no account is available, allowing the loading indicator to clear.
Current 24-hour USD totals use the latest quote-to-USD conversion rate across market overview API responses and live updates.
USD volume now updates alongside quote volume as trades arrive. Historical volume charts retain their historical conversion rates.
Traders see each pair’s quote asset and price precision across market lists, the trade menu, and the price ticker.
The spot market table and trading header show last, 24-hour high, and 24-hour low prices with precision based on the pair’s tick size. Live price updates receive directional color flashes in market lists, the trade menu, and the ticker. The spot market table removes Market Cap and 7d Change columns, while the Spot Volume chart groups the top three assets separately and combines the remainder under Other.
Traders can cancel attached take-profit, stop-loss, and trailing-stop protection even several minutes after the original order fills.
Canceling a take-profit preserves a separate non-OCO trailing stop’s running state, settings, and price tracking, while the original order remains Filled.
Traders can resume viewing charts after temporary browser drawing errors without reloading the page.
Charts automatically retry drawing after a failure and redraw their axes and overlays when rendering recovers. Very large chart layouts adjust drawing resolution to stay within browser limits.
Traders can continue updating limit prices from the order book when a market allows only post-only orders.
The form remains responsive with Post-only automatically enabled, including when the market switches into post-only mode.
USDT and USDC markets now show 24-hour USD volume and chart history when historical conversion prices are missing.
Missing USDT or USDC conversion prices use a $1 estimate for volume displays, while available historical prices take precedence, including deviations from $1. Volume-history errors for other missing conversions now identify the affected pair and time window.
Traders viewing order details now see quantities such as 4.7 XRP instead of 4.70 XRP.
Total quantity omits unnecessary trailing decimal zeros while preserving meaningful digits up to the asset’s display precision.
For traders using market execution, configured percentage or quote-currency caps are submitted with TWAP orders and displayed in order tables and details.
TWAP tables gain a Slippage column. Bulk cancellation also applies selected market and side filters without depending on which open orders are loaded locally.
Reduced processing time for live spot candlestick updates and trade-driven previews.
The improvement preserves existing candle intervals and JSON and Protobuf stream formats. No integration changes are required.
Developers querying selected spot markets or requesting cached volume history benefit from reduced response preparation time.
The gains apply to filtered market overview queries and cached volume-history responses, including requests spanning many trading pairs.
Users can find guidance on fees, supported networks, deposit mistakes, and transfer permissions directly where they need it.
Homepage, deposit, withdrawal, and transfer FAQs expand their explanations, with clickable documentation links in relevant answers. The redesigned homepage footer adds developer documentation, changelog, community, and AI assistant links. Homepage demos update their asset defaults and withdrawal amount display, while the chart opens with one-minute candles.
API clients benefit when retrieving large trade pages or order details containing many fills and transfers.
Benchmarks show reduced time to prepare trade-history and order-detail responses, including large JSON responses. These measurements exclude database and network time and do not establish production latency gains.
Developers and market makers benefit when fetching spot market depth, especially at 500 or 1,000 levels per side.
Controlled benchmarks show faster snapshot preparation and JSON encoding, while supported depths, price ordering, and response formats remain unchanged.
Traders can choose price or 24-hour change sorting and its direction from a single menu while leaving more room for trading panels.
Market rows now stack the price above the 24-hour percentage change. All, Favorites, and Trending remain directly accessible, while additional market lists move into the More market lists menu.
API clients can identify executions after an order replacement even when its first update already includes a new fill.
REST responses and JSON WebSocket order updates now include inheritedCumQty, with inherited_cum_qty_scaled available in protobuf. The value records fills carried over when the replacement was accepted and stays fixed for that replacement. Subtracting it from cumulative filled quantity gives the amount executed by that replacement. Original orders report zero inherited fills, and historical reads retain the value. Clients still need order-version deduplication and their own notification baseline after reconnecting.
The Trades and Transfers tabs fetch additional records as you scroll and remove repeated entries across pages.
Editing a partially filled order also suppresses the initial fill notification for quantity already filled before the edit.
Traders can switch spot markets without expanding the sidebar, with favorites grouped above the remaining pairs.
The expanded sidebar now opens on All and keeps column headers visible while market rows scroll. Positive 24-hour changes show a plus sign. Favorites for markets that are no longer listed are automatically removed once the market list is available.
Traders can access listed markets from the collapsed sidebar, with favorites grouped above the remaining pairs.
The expanded sidebar opens on All and keeps market column headings visible while rows scroll. The collapsed sidebar adds up and down scroll buttons. Favorites for markets that are no longer listed are removed, and positive 24-hour changes display a plus sign.
Spot order submission is blocked when a pair is temporarily disabled, cancel-only, not yet listed, or delisted.
Disabled order buttons explain the pair restriction instead of showing balance warnings. Buttons update automatically as scheduled listing and delisting times pass, and blocked submission attempts display the corresponding reason.
Sorting and column-reordering controls now remain visible on devices without hover support across order, funding, and balance tables.
On desktop, controls appear when a header is hovered or receives keyboard focus, and reorder handles remain visible while dragging. Controls overlay the header edge, leaving more space for column labels.
Improved desktop layout resizing, chart placeholders, transfer defaults, and order and percentage displays.
Hold the standard trading layout’s bottom resize handle near a screen edge to continue resizing while the page scrolls. Spot-volume charts now use animated loading placeholders and fade transitions consistent with account-history charts. The transfer dialog clears default account selections when the source has no transferable funds. Filled orders show a solid check indicator, and negative percentages retain their minus sign when displayed without arrows.
Visitors can browse spot markets by volume, new listings, gainers, or losers and open a trading pair directly from the homepage.
The redesigned homepage includes a trading terminal preview, interactive deposit and withdrawal demonstrations, expandable FAQs, and a dedicated mobile navigation menu.
Traders can compare volume by base asset, with data refreshing every minute while the page is active.
The chart combines trading pairs for each base asset into a stacked volume history and shows totals for the selected time when hovering. Loading, empty, and unavailable states include a retry option after errors. Spot market tables, market tooltips, and trading turnover now use USD volume, and Top and Trending markets sort by USD volume with unavailable values last.
Help chat can now answer questions about recent deposits, withdrawals, and transfers with account approval. Funding APIs now reject unknown withdrawal fields and no longer return polyesterChainId in deposit configuration, while transfer history pagination is more reliable.
This validation applies to destination checks and both API-key and wallet-authorized withdrawals.
Requests containing unsupported fields, including nested fields, now receive HTTP 400. Retries after an interrupted withdrawal reservation also preserve the original request data.
Developers consuming GET /v1/chain/deposit-withdraw/config must update integrations that depend on the removed field.
The response no longer includes the top-level polyesterChainId field. Supported chains, assets, contracts, and the snapshot timestamp remain available.
Signed-in users can approve account access to ask about recent deposits, withdrawals and transfers.
Answers can include transaction status, confirmation counts and estimated completion times when available. Help chat also preserves source references on separate claims, keeps the Chat Sessions count consistent with My Chats, and avoids pointing to an unavailable human-support button.
Clients paginating transfer history now receive consecutive entries in both oldest-first and newest-first order, including transfers recorded within the same microsecond.
The fix applies to GET /v1/transfers and the public ListTransfers RPC. Response timestamps retain microsecond precision. Previously issued page tokens are rejected; clients holding those tokens must restart pagination.
Developers calling affected JSON APIs now receive invalid_argument for incomplete or whitespace-only request bodies instead of HTTP 501.
Affected requests are rejected before processing, including requests to create withdrawals through API-key and wallet flows.
Requests to transfer funds between Trading accounts now return a timeout error when confirmation does not arrive within the confirmation deadline.
Cancelling a request also stops the confirmation wait. A timeout or cancelled request does not establish whether the transfer completed.
When a Funding balance refresh fails, users can retry directly in the transfer form without losing known balance information.
Transfers between your accounts and to other users now show a Funding balance refresh warning with a Retry button. Known balances remain visible, and transfers from Funding stay disabled until a refresh succeeds.
Fixed a case where valid off-chain transfers could prevent transfer history from loading.
Affected transfers now appear alongside the rest of the history page. The fix applies to both REST and ConnectRPC transfer history requests.
First-time visitors to the Deposit page see instructions reposition above or below highlighted fields when the window has insufficient space beside them.
Guide placement adjusts as the window resizes, and page scrolling pauses while the guide is open.
Whitelisted internal accounts now appear even when they have not been saved in your address book.
Transfer destination lists also preserve unresolved whitelist status and include whitelist update times for internal accounts.
Clients using POST /v1/trading/internal-transfers receive consistent accepted results when retrying the same transfer.
Retries retain the original transfer ID and acceptance timestamp, and asset display metadata changes no longer cause false retry conflicts. Accepted transfers remain recorded when the caller disconnects. Error responses preserve cancellation and timeout statuses, domain error codes, and applicable retry headers.
When a successful transfer sends the full balance of the source’s only asset, the form clears its selections so the next transfer starts without a misleading balance error.
The source, destination, and selected asset reset when the source is emptied; partial transfers retain their account selections.
Users moving funds see newly credited available balances even when an older balance refresh finishes later.
Transfer account balances now follow live updates for the active main account or sub-account, and delayed refreshes preserve newer amounts and newly credited assets.
Fixed a chain data lookup error that could interrupt deposit, withdrawal, and balance updates.
Affected data is now retried automatically, allowing funding updates to recover once the required chain data becomes available. Updates dependent on missing data remain delayed until it can be retrieved.
Wallet users also receive a completion notification and refreshed balances when a request succeeds after they cancel it in the app.
Pending wallet confirmations stay open when you click outside the dialog, including on a wallet extension’s confirmation prompt. You can still cancel while waiting for wallet approval; if you later approve the request in your wallet and it completes, the app reports the outcome and refreshes balances.
Dashboard, Funding, and Unified Trading equity charts now offer Retry and retain available history with a warning when a refresh fails.
Charts show placeholders when history is unavailable. Documentation and changelog pages use the standard desktop app navigation, and the mobile sign-in button reads “Connect”. Accounts with unfinished welcome onboarding land on Spot Markets after sign-in. The dashboard VIP badge opens the fee schedule, login policy links open in a new tab, and account-page search shortcuts stay hidden while signed out. Deposit and Transfer buttons appear below balances for signed-in users.
Deposits, withdrawals, and transfers now show loading placeholders arranged to match their transaction details.
Amounts, progress, and transaction steps fade into place as data arrives, reducing layout shifts when opening transaction details.
Open withdrawal forms now recheck destination eligibility when the withdrawal whitelist changes, including changes made in another tab.
After a whitelist-related rejection, the form refreshes the whitelist and prompts you to choose an approved address. Further submission stays blocked until destination eligibility can be verified.
When a withdrawal exceeds available liquidity, the message identifies the asset and network and offers recovery options.
Suggested alternative networks now account for the full entered amount, network fees, available balance, minimum withdrawal amounts, and supported precision. If no alternative qualifies, the message suggests splitting withdrawals across supported networks or waiting for liquidity to replenish.
This applies when manually entering a recipient in the “To another Polyester user” transfer flow.
Selecting the same account’s Funding balance as both source and destination now disables Transfer, as does selecting its Trading balance on both sides. Transfers between Funding and Trading, or to another account, remain available when other requirements are met.
Deposit and withdrawal screens now distinguish paper assets for trading from native testnet tokens for testing deposits and withdrawals.
Updated tooltips, alerts, and FAQs explain that paper assets are simulated versions created on Ethereum Sepolia, separate from the assets’ native blockchains. They also clarify that native testnet tokens cannot be traded on the exchange during testnet. The deposit address header gives account labels more room.
Users selecting a paper asset on testnet now see a notice explaining that it has no value outside the testnet.
Deposit and withdrawal asset pickers now offer Paper Assets and Testnet Assets tabs, with Paper Assets selected by default. Both pages also include an FAQ explaining the difference between paper assets and assets on public test networks.
Users withdrawing trading balances now approve a message instead of structured data in their wallet.
The updated approval method applies to both connected and embedded wallets.
The transfer dialog now starts in the selected asset’s units when you have no saved denomination preference.
You can still switch to USD when a price is available, and saved USD selections continue to apply.
Polyester Scan improves documentation access and makes Testnet easier to identify, alongside onboarding and tour display fixes.
Scan’s More menu enables User Docs and API Docs links and adds Developer Docs. The network selector shows a dedicated Testnet icon and label, with Mainnet displayed as unavailable. In Mock Mode, username claiming no longer blocks onboarding completion. Tour videos without a separate dark version remain visible in dark mode, and the deposit tour gains a preview image.
Daily claims and social verification APIs now return standardized, more specific error states. Account settings also add username editing, guided X and Discord verification, and account selection during API key creation.
Session-authenticated integrations can distinguish temporary reward unavailability from general service failures across REST and Connect.
REST application errors now use uppercase Claims codes, while Connect errors include claims.v1.ErrorDetail. Browser clients can read retry and rate-limit response headers. Public request bodies are limited to 1 KiB. Protocol and network failures may omit Claims error details.
API clients can determine whether to restart a social verification challenge or retrieve its current status without parsing error messages.
SocialVerificationReady now returns AUTH_SOCIAL_VERIFICATION_EXPIRED for expired challenges and AUTH_SOCIAL_VERIFICATION_INVALID_STATE when verification is no longer awaiting user action. Both replace AUTH_INVALID_REQUEST and return HTTP 412 through REST, replacing HTTP 400.
Scheduled VIP qualification continues for other accounts when one account has conflicting qualification data.
The affected account keeps its last valid VIP tier, and corrected data can be considered at the next eligible hourly evaluation.
Account and portfolio history reuse available prices without treating missing price data as zero equity.
Charts carry the latest usable earlier price across missing or incomplete price data. A leading gap uses the first usable later chart price within the requested period. When required prices have no usable history, the chart returns empty instead of a server error.
Newly registered users can request subaccount signing authorization without a 15-second error caused by concurrent account updates.
Fixes a first-attempt HTTP 500 that could force users to retry subaccount setup immediately after creating their account.
Campaign funding accounts now receive an unavailable result when attempting to claim rewards from their own campaign.
Existing affected claims show as unavailable while retaining their original claim reference and reward amounts. REST and Connect return the existing CLAIM_UNAVAILABLE error for these claim attempts.
Affected reward requests now tell customers the claim is temporarily unavailable and to try again later.
The daily-claim API returns HTTP 503 with CLAIM_TEMPORARILY_UNAVAILABLE for affected requests; Connect callers receive Unavailable.
When a daily reward payout lacks funding, your original claim remains eligible for automatic retry without another submission.
Affected payouts retry after progressively longer delays, capped at 15 minutes. Repeated claim requests respect the same delay, and claim status remains available.
Eligible testnet users can open daily rewards from navigation or after onboarding without competing tour overlays.
Opening daily rewards dismisses active tours and prevents new tours from appearing until the dialog closes, when tour eligibility is checked again. Polyester Scan’s footer AI links also include the Polyester Chain guide in their prefilled questions.
Fixed an issue that could delay account and API configuration changes from taking effect.
Subaccount access changes and API rate-limit updates now synchronize more reliably, including when existing entries are updated or removed.
Eligible Testnet users now see the welcome dialog after onboarding is complete and the onboarding dialog has closed.
The welcome stays marked as seen for the main account in the same browser across subaccount switches and page reloads, while separate main accounts retain their own welcome status.
Accounts also retain earned automatic qualifications when a temporary VIP assignment expires while activity data is incomplete.
Missing portfolio-value or settled-volume data now prevents automatic tier reductions, while complete qualification data can still support upgrades.
Remaining keys appear newest first, with consistent ordering when creation times match.
Subaccount detail requests also reject invalid inclusion flags and distinguish denied balance access from temporary unavailability.
Improved recovery of the historical index prices used in portfolio history.
Recovery now preserves saved progress when older data is replayed and rejects conflicting historical records before incorporating them into hourly averages.
Users can retry the same unexpired MFA challenge when a temporary service error prevents verification from completing.
Applies to authenticator-app, passkey and recovery-code verification. Authentication REST errors also return HTTP statuses matching their reported error codes.
Account and portfolio charts can continue receiving new price history when the underlying price feed is reassigned.
Prevents a price feed handover from interrupting new equity-history data while retaining current market prices. Previously stored history gaps are not repaired.
Accounts holding assets such as ETC can now load equity history using verified USDT market prices when direct USD markets are unavailable.
Equity remains displayed in USDT. History requests also allow time for recent prices to finalize, avoiding failures near minute boundaries; missing or invalid price history can still make charts unavailable.
Users can view the available portion of account and portfolio equity history when its earliest price records are incomplete or invalid.
History starts at the first chart point supported by usable prices, keeping equity values and BTC prices aligned. Invalid prices or extended gaps later in the history can still prevent loading, as can entirely unusable price history.
Fixed a price-update issue that could make current portfolio equity unavailable after startup.
Portfolio valuations now continue receiving live index-price updates. Price-update failures no longer block unrelated ledger reads.
The profile preview keeps text aligned while demonstrating how to add a verification code to your X bio.
The highlighted code now matches the surrounding bio text’s line height throughout the typing animation.
Users linking an X account can proceed to bio verification even when their profile preview cannot load.
The verification screen explains when profile details are unavailable and still lets users attempt verification with a code in their X bio. Handles confirmed as nonexistent continue to show an account-not-found message.
Developers can rename an API key while keeping its public key visible and available to copy in account settings.
The public key remains displayed after saving a new label or receiving a live update for the renamed key.
Wallet sign-in and signed subaccount creation now distinguish server failures from invalid or expired wallet challenges.
When a wallet challenge cannot be retrieved because of a server failure, the response now reports a server error. Missing and expired challenges retain their existing authentication errors.
Current and historical portfolio equity exclude native testnet tokens such as tBTC and tETH while preserving their actual balances.
Native testnet tokens contribute zero to equity without requiring price feeds. Paper trading assets continue to contribute to portfolio value and require valid prices.
Signed-in visitors opening documentation or announcements directly now see their account controls while their session is restored.
Moving to either section from elsewhere in the app preserves the existing sign-in state.
Users viewing the deposit, trading, and wallet ownership steps now see a still image while each animation loads.
Onboarding prepares these images when the tour opens and continues to show still images for reduced-motion preferences. The welcome screen animation also responds to pointer movement and clicks again.
Accounts with previously completed Discord verification are corrected without needing to verify again.
Completing Discord verification now updates the username and verified status returned in your account profile.
Turning off In-App Notifications in Settings clears visible notification toasts and saves your choice for future visits.
New toasts remain hidden while the setting is off. Turning it back on allows new notifications to appear without replaying dismissed ones. Notifications remain enabled by default.
Verifying X from Account > Profile now saves the selected handle automatically, without a separate profile save.
Verification completes only when the saved profile confirms the matching X handle as verified. If saving fails, an error appears and verification remains available to retry.
After posting a challenge code in the Discord verification channel, users can click Verify Now to confirm their verified account without an unnecessary error.
The verification dialog now checks the result completed by the Discord bot and displays confirmation when verification succeeds.
Portfolio valuations across master accounts and owned subaccounts now use validated index prices instead of trade-candle prices.
Current valuations require valid prices from at least two venues with price samples and inputs no older than five seconds. Historical valuations use finalized one-minute index closing prices. Requests return an error when required prices are missing or invalid, rather than reuse older prices or return partial valuations.
The Members table keeps invited usernames and Account IDs readable when space is limited.
Invitation timestamps hide in narrow cells to leave room for the recipient’s name or Account ID, while the Invited badge stays visible and long names truncate with an ellipsis.
Account and sub-account API key tables now hide keys immediately after successful revocation and keep them hidden through delayed updates.
Actions, confirmation dialogs, notifications, and MFA prompts now consistently say “Revoke.” Revoked keys no longer offer a repeat removal action.
New accounts accept terms during onboarding, while returning users with outstanding acceptance see a separate prompt.
Acceptance is recorded for your account, and onboarding hides the consent checkbox when the current terms are already accepted. Terms of Service and Privacy Policy pages remain accessible without consent dialogs. Accounts with an existing username skip username selection during onboarding.
A persistent banner across account pages now reminds users without multi-factor authentication to add a passkey or authenticator app.
Select “Set up MFA” to open enrollment directly from the banner. The reminder disappears once a verification method is added. Enrollment instructions, loading placeholders, and spacing in security settings have also been refined.
Users linking an X account now see one explanation that verification uses their public bio without requiring an X login.
The explanation appears in the Verify X dialog header, with the duplicate guidance beneath the handle field removed.
Accounts with many subaccounts or frequent balance changes benefit from faster portfolio equity calculations.
The change reduces the time needed to prepare historical equity values across a master account and its subaccounts.
Users linking an X account to their profile must confirm they have saved the verification code in their X bio before selecting Verify.
A checkbox enables Verify, and a reminder highlights the confirmation when users hover over the disabled button. If you change the handle or verification code, you need to confirm again.
Accounts without a username can now choose and claim a generated name directly from the Profile page.
Refresh the suggested names before claiming one, or copy your existing username. When custom editing is unlocked, use inline save and cancel controls; during a cooldown, the edit control indicates when another change becomes available. Username history remains accessible beside the username label.
Notification settings now group display options together and hide event-specific controls when unavailable.
The In-App Notifications toggle moves into Display Settings. The Push Notifications and Show Notification Badge switches are removed. Notification trigger groups and the All, Essential, and Custom presets appear only when the feature is enabled.
Users managing API keys can view identifiers, account, label, and expiration together in a responsive General Info card.
Fields stack on smaller screens, with the public key spanning both columns on wider screens. The API Requests panel now shows a chart placeholder marked “Coming soon,” and the empty code panel has been removed.
Multi-factor authentication prompts now show when the current verification request expires. Recovery code controls provide clearer copy feedback and easier dismissal after saving.
Expiry guidance appears in method selection, authenticator, passkey, and recovery code prompts. Authenticator errors and verification progress messages take priority over the expiry note. Recovery code copy confirmations stay visible longer, and after confirming you saved your codes, you can close the dialog with Escape or by clicking outside.
Users with eligible subaccounts can choose which account a new API key represents directly in the creation dialog.
The dialog preselects the subaccount whose page opened it, otherwise the eligible active account or main account. Labels now show a character counter as they approach the existing 64-character limit and prevent input beyond it.
Users linking social accounts to their profile now see a dedicated confirmation displaying their verified handle.
Successful verification replaces the setup instructions with a provider icon, checkmark, and linked handle. X verification also offers a Change handle button that focuses and selects the current handle for editing.
Account holders can preview their X profile before verification and receive automatic confirmation when Discord verification completes.
Start either flow from Social Links in Profile settings. X verification shows the selected profile and instructions for adding a temporary code to its bio. Discord verification provides server and channel instructions, a copyable code, and an option to renew expired codes. Verified handles appear in Profile settings.
When adding address book entries, including during sub-account creation, users can select or deselect tags by clicking a row or using the keyboard.
Selected tags appear first, in selection order, with checkmarks showing which tags are applied.
Users verifying X or Discord accounts from their profile can now see the remaining time update automatically while the dialog is open.
The expiry display uses relative labels such as “in 5m,” with the exact expiry time available on hover.
Account setup now provides clearer progress information, announces refreshed username choices, and adds keyboard focus indicators to theme options.
Color tone and color scheme controls have associated labels, and legal links indicate that they open in a new tab to screen readers. Decorative previews are excluded from keyboard navigation and screen reader output.
Shared contacts and account identity displays show a labeled subaccount as “Trading” instead of “@alice / Trading”.
Subaccounts without a label continue to display the owner's username when available.
The new default applies to balances on the account dashboard, Funding Account, and Unified Trading pages.
The default page size increases from 10 to 50 assets, reducing page changes when reviewing larger portfolios.
Users verifying their X account need less space in their profile bio for the temporary code.
New codes contain four uppercase letters or digits, such as 24AB, and remain valid for 15 minutes.
API key owners now see permissions directly on the details page without a tab that always showed an empty history.
A Permissions section replaces the tab navigation, and the unused Audit Log page has been removed.
Users can re-roll suggested usernames and preview their selection before completing account setup.
The welcome walkthrough now includes username selection and controls for language, light or dark mode, color tone, and trading colors. Introductory slides use animated previews, with still images for users who prefer reduced motion.
New currency conversion APIs provide display metadata and reference rates for 154 fiat currencies, USDC, and USDT. Transfer and analytics timestamp filters now include records at the requested end time, and trade responses consistently identify maker and taker fills.
Developers can fetch display metadata and reference rates for 154 fiat currencies, USDC, and USDT.
GET /v1/market/currency-conversion/config returns currency names, symbols, and display precision. GET /v1/market/currency-conversion/rates returns fiat units per USD and independently observed USD values for USDC and USDT, with exact decimal strings, source timestamps in seconds, and freshness flags. Last-known rates remain available when stale; the rates endpoint returns HTTP 503 before any observations are available.
API clients can retrieve asset precision and trading-pair settings after new assets are added.
Fixes configuration requests failing because market-data volume precision was unavailable for a newly added asset.
Transfer history and Chain Analytics queries now include records previously omitted at the requested end timestamp.
Transfer filters include the entire final microsecond, allowing exact timestamp queries to find matching transfers. Zipped asset supply, grouped supply, and unified asset balance analytics include the entire explicitly requested final second while preserving response time-range metadata.
REST clients receive an explicit maker-or-taker value in both trade history and order-detail responses.
Trade objects returned by GET /v1/spot/trades and GET /v1/spot/orders/{order_id} now include isMaker: false for taker fills and continue to include isMaker: true for maker fills, matching the existing required-field contract.
Fiat conversion rate updates now retry temporary provider failures, helping updates recover before the next scheduled refresh.
Retries happen automatically; no client changes are needed.
Developers receive HTTP 400 for malformed sort flags and unsupported timestamp bounds when querying transfer history.
Malformed reversed values now return a validation error instead of silently selecting oldest-first ordering. REST and Connect requests reject timestamp bounds that exceed the supported Unix-microsecond range.
Fixed handling of invalid provider data in fiat currency conversion updates.
Fiat rate updates now reject out-of-range values, invalid timestamps, and responses containing unexpected trailing data, preventing these inputs from becoming conversion rates returned by the API.
Generated order book request examples now use numeric depth values accepted by the REST API.
Examples for GET /v1/orderbook/{symbol} now use ?depth=1 instead of ?depth=DEPTH_1, preventing the invalid-depth error reported when copying the documented request.
Fixed incorrect module references that could prevent the Python SDK from importing successfully.
Bundled API modules now resolve consistently within the installed SDK, including newly generated modules.
The currency conversion API now returns representative local fiat symbols where available, making display labels more familiar.
Examples include ֏ for AMD, Kz for AOA, and the full-width ¥ for JPY. Several currencies share symbols such as $, so code remains the currency identifier. ISO codes remain the fallback when no distinct visible local symbol is available. English names, display fraction digits, stablecoin tickers, and response fields are unchanged.
API developers can reference JSON and Protobuf examples showing a batch with both accepted and rejected order replacements.
Field descriptions explain item ordering, replacement progress, optional order identifiers, rejection codes, and accepted and rejected counts.
Ledger read APIs now provide more specific feedback for invalid parameters and pagination tokens.
Validation errors explain accepted history ranges and numeric formats, and identify pagination-token fields that do not match the request. Canceled requests and deadline failures receive distinct error responses. Temporary data unavailability is reported with a clearer message.
Developers can identify which endpoints accept session tokens, API keys, or requests without authentication.
REST and ConnectRPC reference data now includes accepted credential types, with session-only endpoints explicitly identified and public endpoints marked as requiring no authentication.
Polyester Scan now offers a full-screen mobile menu and clearer active-network labeling, while desktop search preselects suggestions for faster keyboard navigation. Release handling is also more reliable, helping open tabs recover after app updates.
Address icons in generated Polyester Scan preview images now retain distinct background and shape colors.
The fix applies to address and smart-account preview cards, as well as address icons in fund-flow previews.
Blocks with incomplete fee recipient or parent hash data are handled safely when viewing their details in Polyester Scan.
The fee recipient display and copy control tolerate missing address values, and the parent hash link handles an absent hash.
Fixed an issue that could prevent new Polyester and Polyester Scan releases from rolling out.
The previous release now stays available during updates where possible. Older tabs may need to reload when files from their release are no longer available.
Polyester and Scan automatically retry startup loading failures after updates and offer a Reload button if loading still fails.
Files needed by existing tabs remain available for at least four days after their app version is replaced. Automatic recovery is limited to one reload within five minutes to prevent repeated refreshes.
Desktop users can press Enter immediately to activate the selected suggestion when opening search or changing their query.
Search selects the first popular suggestion, or the first available result when popular suggestions are absent, and updates the selection as results arrive. Pressing Up within popular suggestions now keeps selection in that group.
Mobile visitors can access grouped explorer links, settings, network selection, and theme controls from one menu.
The menu closes after navigation and supports dismissal with Escape. Shared asset and chain links gain expanded artwork coverage, including testnet tokens and networks. Homepage layouts and documentation navigation also receive visual updates.
The public network menu no longer offers Ethereum, and saved selections for unavailable networks automatically fall back to Polyester.
The explorer home page heading and top-bar badge now show the network name, including whether it is Testnet or Devnet.
Navigation and search use the new name, while existing chain links redirect to the corresponding pages.
The list now lives at /supported-chains and individual networks at /supported-chain/{code}; redirects from old detail links preserve selected tabs. Chain and unified asset statistics use two-column layouts on small screens. Network tooltips on the list pages show asset counts and typical deposit confirmation times.
Documentation now offers richer changelog search with audience filters, expandable details, and shareable URLs, while testnet guides and API references are accessible without an access code. API reference coverage also expands to wallet authentication and paginated execution history.
Developers can enter comma-separated array values in REST query fields and get correctly formatted requests and code examples.
Array examples now populate editable fields as comma-separated values. Requests, generated code samples, and Markdown examples follow each parameter’s declared format, including repeated symbol parameters for open-order filters.
Developers can find daily reward status and claim endpoints in the Trading section of both the REST and ConnectRPC references.
Daily claims documentation now uses consistent navigation grouping across both API references.
Status labels retain their width, and API reference badges can expand to fit longer labels.
API reference badges for field types, validation rules, values, and defaults no longer have a fixed maximum width or automatic text truncation; long pattern previews remain abbreviated.
Readers using Copy page or View as Markdown now receive readable steps, tables, and code examples from the documentation page.
Markdown exports preserve code formatting and include full image and link URLs. ChatGPT and Claude sharing links use the Markdown view. Documentation code snippets also retain line breaks and syntax colors, and expanded images close without flashing.
Readers can open links containing search terms and filters and keep those selections when paging through changelog entries.
Search and filter changes update the displayed entries and address bar together. The date filter selects one period at a time; selecting it again clears it.
Readers can search individual change descriptions and combine filters to find relevant updates.
Sections show matching item counts, while individual changes can expand to reveal details. Filters include category, audience, product area, network, and date, and selected filters remain in shareable links. Entries display calendar dates or release date ranges.
Visitors can browse user guides, developer documentation, SDK guides, and API documentation on testnet without entering an access code.
User, developer, and SDK documentation is available as both web pages and Markdown. Selecting Connect from public testnet pages opens login with a return destination that preserves the documentation page and query parameters.
Developers can consult updated request and response schemas for wallet authentication and execution history across order replacements.
The reference covers wallet challenge messages for login and sub-account creation, paginated order executions, and trade filters across replacements with optional settlement transfers. It also corrects withdrawal signature guidance and the numeric order book depth example.
API documentation groups related services more clearly and includes improved examples and updated server listings.
Find Zipper under Chain, and Internal Transfer and VIP under Account. Fee and Rate Limit remain under Trading. Examples now include fuller wallet sign-in and subaccount authorization messages. The public OpenAPI server list uses https://api.testnet.polyester.com for Testnet and lists Development and Testnet only.
FAQ answer links now show keyboard focus cues, while linked chain names display underlines that thicken on hover.
JSON code examples gain syntax coloring, and interactive deposit and withdrawal walkthroughs show approval counts progressing toward the required total.
Mobile visitors can browse the home page, legal pages, and user, developer, and SDK guides.
The desktop-required notice now leaves the top navigation accessible. Documentation uses smaller headings, wider page margins, and text-only previous and next links on narrow screens. Trading, markets, API reference, changelog, and help pages display the desktop-required notice on mobile.
Readers can narrow the full release history by product, network, environment, change type, or date.
Search and filter selections stay in the URL for sharing and persist across pagination. Active filters can be removed individually or reset together, and release details expand through Learn More.
Support chat now uses live network and market information, while the homepage offers dedicated funding demos and a more responsive trading preview. Reliability improvements keep chat messages and attachments visible and prevent homepage and embedded app loading issues.
Users with older saved appearance settings can open the embedded app without a reload loop when their browser blocks third-party preference cookies.
Saved light or dark mode and color theme settings now apply immediately without refreshing the page.
Visitors see a still coin image until the animation reaches its intended starting position beside the headline.
The opening transition keeps the coin image visible while the video prepares, including in browsers that use playback events to determine readiness.
Visitors see a single moving ball beside the home-page headline when playback begins.
The static ball image disappears as the animation starts, preventing it from showing through the moving ball, and updated video assets support transparent playback.
Visitors on medium and larger screens see the execution animation without faded side edges.
The homepage also updates the capitalization of its Frequently Asked Questions heading.
Visitors can return to the home page from documentation or updates pages without encountering a missing market-data error.
The home page can load its market and asset information even when navigation does not supply the initial data.
Mobile visitors see the headline and animated logo stay in step when video playback is interrupted.
Playback retries after pauses and when returning to the page, while Safari keeps the logo visible as playback starts.
Mobile visitors see token names stay synchronized with the animated ball when video playback stalls.
The homepage retries playback after interruptions and keeps the ball visible while Safari starts the video.
Signed-in users can view screenshots when reopening saved conversations or sending attachments to support.
Image attachments display in the help widget wherever support chat is available.
When starting a conversation, your first message and reply remain visible even if loading the saved conversation is delayed or fails.
New conversations stay selected instead of switching to an unrelated chat after a reply finishes. Choosing New chat still opens an empty conversation.
Desktop and mobile menus now hide the Changelog entry when the changelog is disabled.
The link remains visible when the changelog is enabled.
Visitors navigating from public testnet pages into restricted app pages are prompted for a code when access is required.
The testnet homepage, public documentation, and legal pages remain accessible without a code.
Visitors can browse dedicated funding previews alongside a compact spot-market table and a trading-terminal preview adapted to screen size.
Deposit and withdrawal demos each have their own section and links to the relevant guides. The market preview uses narrower rows, while smaller screens show a terminal image with a live market header.
Mobile visitors can scroll past the trading preview and browse supported networks in a fixed grid.
The preview reveals its chart and order book as they become ready. The animated headline pauses when off screen or the browser tab is hidden, and home page network counts now follow the supported-network catalog.
Avatars, banners, tutorial thumbnails, and trading previews gain consistent visual states when images load slowly or fail.
Loading placeholders follow the image’s size and shape and disappear once it loads; supported image slots show a neutral background if loading fails.
Answers about supported assets, transfer fees, minimums and trading rules now combine documentation with current product data.
Source links open documentation and legal pages on the app you are using. Replies also preserve screen names from linked instructions and bracket syntax in code examples.