Documentation Index
Fetch the complete documentation index at: https://docs.polygon.technology/llms.txt
Use this file to discover all available pages before exploring further.
Trails ships composable actions, a token-first widget destination flow, auto-refresh for expired quotes, and a wide set of widget and SDK fixes.
New
- Composable Actions: chain multiple destination calls into a single intent, with dynamic balance routing and support for multiple ERC-20 tokens in dynamic-amount slots. Integrators can sequence approvals, swaps, and custom calls inside one quote, with backend validation rejecting ambiguous recipient or passthrough configurations. See the Trails docs for usage.
- Token-first widget destinations: widgets now accept token-specific destination lists, letting you configure a fixed set of destination tokens (and chains) that users can pick from. Persisted token selections survive across sessions.
- Quote auto-refresh: expired quotes refresh automatically on the next user interaction before signing, so users no longer see an “Intent quote has expired” error in the pre-signing state. Refresh is suppressed once signing has begun.
- Wallet runtime adapters: Trails wallet runtimes are now decoupled behind explicit adapters, giving integrators a cleaner extension point for embedding custom wallet stacks.
- Configuration validation and offline recovery: intent configuration is now validated up front and cached locally, with pruning of stale entries. This enables offline recovery of in-flight intents.
Updated
- Widget lifecycle callbacks renamed:
onSwapComplete,onPaymentComplete,onFundingComplete, andonWithdrawCompleteare nowonSwapSuccess,onPaymentSuccess,onFundingSuccess, andonWithdrawSuccessfor consistency. Update your widget props to match the new names. - WalletConnect: improved QR rendering, deep-link handling, and loading state in the WalletConnect flow.
- Quote input: clearer error states when the input amount or token is invalid.
- Send flow: destination chain now defaults to the connected wallet’s chain when no destination is specified.
- Mesh exchange: mesh exchange queries can now run without a configured
trailsApiUrl. - Receipt step ids: receipt step ids are now stable across renders, making them safer to use as React keys and analytics identifiers.
- SDK packaging: improved compatibility with Node environments and better tree-shaking for smaller bundles. Server-side rendering with Trails actions is now safe.
Fixed
- Fixed swap funding method selection so the chosen method is preserved across re-renders.
- Fixed the receiver token picker losing account context when switching accounts.
- Fixed chain-switch detection in the widget when users change networks mid-flow.
- Fixed Privy wallet modes incorrectly rendering a ConnectKit button.
- Fixed
useQuotesoQuoteErroris available as a runtime value rather than a type-only export. - Fixed missing deposit transaction enrichment in intent history.
- Wrapped errors now propagate via
Error.cause, preserving the original stack and context for debugging. - Composable-action quotes now reject a top-level recipient (which is per-call only) and omit the quote recipient in earn mode.
- Guarded against undefined
detailsinUnknownRpcErrorchecks to prevent spurious crashes. - Removed a duplicate Pay fallback path that could double-trigger the pay flow.
Trails API adds gas fee option selection to the intent flow, persists wallet configuration at quote time, and fixes a recovery issue for intents using custom address overrides.
New
- Intents now support gas fee option selection. Specify fee options at quote time; the API validates the selected option against quoted options before execution, giving integrators explicit control over transaction costs.
- Wallet configuration is now stored at quote time and returned with the quote response, enabling reliable intent recovery and re-execution across sessions.
Fixed
- Recovery now correctly applies custom address overrides when deriving wallet context, preventing derived-address mismatches for intents configured with non-default addresses.
Trails SDK and widget ship smarter intent protocol defaults, better recipient handling, and improved error recovery.
New
- The SDK now automatically resolves the best intent protocol version for each transaction. An explicit override, global config, or SDK default is checked in order, with a fallback to the API-provided default when the preferred version isn’t supported.
Updated
- The widget highlights the recipient address when it differs from the sender, making it easier to spot send-to-other flows before confirming.
- Expired quote errors now show a warning icon and offer a clear recovery path so users can retry without restarting the flow.
Fixed
- Fixed an issue where the recipient address could go stale after switching wallets in the widget.
- Fixed the add-wallet flow in the recipient selector so users can successfully add new recipient addresses.
Bor v2.7.1 stable ships opt-in EVM execution optimizations, database performance improvements, and a goroutine leak fix.
New
- Added opt-in EVM execution optimization via
--switch-dispatchCLI flag orEnableSwitchDispatchconfig option, introducing a fixed-size opcode stack and a switch-dispatch fast path for hot opcodes ported from GEVM
Updated
- Tuned PebbleDB write path (1 MiB
BytesPerSync, adaptive compaction) and increased PathDB state buffer to 2 GB with intelligent carry-over across flushes, reducing write stalls for archive and full nodes - Removed legacy
UpdateDeps/GetDepDAG algorithm from BlockSTM, fully replaced by theDepsBuilderimplementation
Fixed
- Fixed goroutine leaks in the witness request path that caused unbounded memory growth when peers disconnected during parallel stateless import
aggkit fixes claim syncer startup block selection on empty databases.
Fixed
- Claim syncer now determines its starting block from the earliest settled reference block (not the latest) when the database is empty on startup, preventing sync errors on fresh starts
Bor v2.7.1-beta ships transaction propagation improvements and an SRC buffer reduction, with additional RPC and monitoring fixes merged to the development branch.
Updated
- Increased max transaction packet size from 100 KB to 1 MB, improving transaction propagation between peers
- Reduced SRC buffer from 500ms to 100ms, allowing block producers to spend more time on transaction execution
Fixed
bor_getLogsandbor_getLatestLogsnow correctly return state-sync logs from blocks produced before the Madhugiri upgrade- Prometheus
_countmetrics no longer reset to zero on each scrape, restoring correctrate(),increase(), and latency calculations for node operators
The Polygon Wallet adds private token transfers via Hinkal and Yield vault support in the Earn tab.
New
- Added end-to-end private send flow via Hinkal, including a dedicated status screen for deposit, withdraw, success, and failure states, and refreshed gas and privacy fee display with up to 4 decimal place precision
- Added Yield vault support to the Earn tab
AggLayer raises the default settlement confirmation count to 12 for safer out-of-the-box deployments.
- Default confirmations for L1 settlement increased from 1 to 12. Deployments that do not set this value explicitly are now safer by default.
Trails API adds a new option to suppress passthrough quotes from intent responses.
- Added
intents.disable_passthrough_quotesoption. When set, the API omits passthrough quotes from intent results, giving integrators tighter control over which quote sources are returned.