Repository navigation
docs: add AGGLAYER provider, Bali chains and ETA behaviour (agglayer/issues#46) - #124
arnaubennassar wants to merge 7 commits into
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Verified on-chain via eth_chainId (agglayer/issues#39, gke configs, live RPC). Also drop the agglayer/networks registry reference (superseded by the SDK chain registry). Refs agglayer/issues#46.
arnaubennassar
left a comment
There was a problem hiding this comment.
Verdict: NEEDS WORK — the Bali chain IDs are still given as 82/85 in three places (the follow-up fixed only the new table), and the ETA floors need clarifying before readers can rely on them.
Reviewed at 0157570 against the on-chain Bali values: EVM chain IDs 828282 (rollup 82, PP) and 858585 (rollup 85, FEP), Sepolia L1 11155111, native ETH, no public explorer.
What checks out: the new Testnet Chains table (828282/858585, ETH, Sepolia 11155111), the rollup-ID clarification in the <Note>, no explorer URLs, and no pointer to the networks repo. Internal links (/sdk/quote-providers) resolve to an existing page.
Blocking
resources/supported-chains.mdx, Route provider table, AggLayer row — "Bali pilot testnet chains 82/85" uses rollup IDs where the table above says 828282/858585. Use "Bali pilot testnet chains (828282, 858585)".sdk/quote-providers.mdx, AggLayer section, intro paragraph — "chain82(PP) and chain85(FEP)" calls rollup IDs chain IDs. Suggest "Bali PP (chain ID828282, rollup ID 82) and Bali FEP (chain ID858585, rollup ID 85)".sdk/quote-providers.mdx, AggLayer section, "Slow routes" bullet — "the FEP chain (85)", "82→85" and "85→82" have the same problem. A reader who passes85as a chain ID gets a different chain, or none. Use 858585/828282 here, or name the chains ("Bali PP → Bali FEP").sdk/quote-providers.mdx, "ETA-driven waits" bullet — floors are not defined clearly enough to rely on. "20 minutes for transfers entering from the L1, 3 hours for exits" never says what an "exit" is. Direction is decided by the origin chain: an L1 origin is an entry, and any L2 origin is an exit. That includes L2→L2 hops such as 828282 ↔ 858585, which are the only routes this page documents. Read plainly, a Bali→Bali transfer looks like it gets the 20-minute entry floor, but the code gives it the 3-hour floor.- The same bullet should say that the floored figure is what the quote and widget display. Without that, the "typical 10–15 / ~20 minutes" figures in the next bullet look like they contradict a 3-hour estimate on the quote.
- Please also reconcile the 3-hour floor with the expected behaviour that only L1-origin quotes reach the ~8100 s (2h15m+) polling window and that L2-origin estimates are shorter. See the first question below.
Nits
sdk/quote-providers.mdx, "Slow routes" bullet — "can take 90 minutes or more" for 85-origin hops sits right next to "about 20 minutes for85→82". Both are origin-85 routes, so the two statements read as contradictory. Say when the slow path applies (the L1 global exit root change must land before the claim), or give one range per direction.sdk/quote-providers.mdx, "L1 data fee" bullet — the figures are claim gas (1.02M / 228k / 150k), not a fee. The bullet doesn't say who pays, in which currency, or whether the user sees it. "Corridors" is also not defined for readers. Either reword to say what the user sees, or drop the exact gas numbers, which will go stale.sdk/quote-providers.mdx, AggLayer config example —<Swap apiKey="..." bridgeProvider="AGGLAYER" />matches the neighbouring examples but doesn't help anyone reach the Bali chains. Add a concrete example withfrom/toon the Bali chain IDs and ETH. For Bali→Bali that gives the reader a copy-pasteable route, and it shows the ID form to use.resources/supported-chains.mdx,<Note>— "Bridge transfers on these chains wait for the quote's completion estimate" is loose. The SDK polls for the estimate × 1.5, raised to a floor. Link to the AggLayer anchor (/sdk/quote-providers#agglayer) instead of the page root, so readers land on the ETA text.resources/supported-chains.mdx, Testnet Chains — add one line saying there is currently no public block explorer for either chain, so readers don't go looking. Don't add URLs.sdk/quote-providers.mdx, "Available Providers" entry — "(Polygon AggLayer)" is the only place the product is called that. The section and the chain table use "AggLayer". Pick one.
Questions
- ETA floors (item 4): the docs say 20 min (L1 origin) and 3 h (L2 origin). The expected behaviour is that AggLayer exit claims wait for the L1 finality/claim window, that only L1-origin quotes can reach the ~8100 s floor, and that L2-origin estimates are shorter. Which is the intended product behaviour? The SDK change currently uses an origin-based 20 min / 3 h split, plus a polling window of estimate × 1.5. If the SDK is right, the docs need the "exit = L2 origin" definition. If the behaviour above is right, the SDK and these numbers both need another look.
- Release sequencing: this describes SDK behaviour (estimate-driven polling, the Bali chain registry) that depends on the SDK PRs. Should the docs wait for an SDK release, or is a version note wanted?
- Sepolia: the section says the chains "settle to" Sepolia, and L1-origin quotes imply Sepolia as an origin. Is Sepolia itself a Trails-supported chain? If so, it belongs in the Testnet table. If not, say so.
…ayer example (agglayer/issues#46) - Use EVM chain IDs 828282/858585 in the provider table, AggLayer intro and slow-routes text; label 82/85 as AggLayer rollup IDs everywhere - Rewrite the ETA section per the SDK implementation: direction is set by the quote's origin chain (L1 origin = entry, any L2 origin = exit, including Bali-to-Bali hops), entries floor at 20 minutes and exits at 3 hours, the displayed estimate is the estimate raised to the floor, and the receipt-polling window is max(estimate x 1.5, floor) - Recast the 'L1 data fee' bullet as user-paid claim gas - Extend the AggLayer config example with from/to on the Bali chain IDs - Add Sepolia (11155111) to the testnet table — verified supported in the SDK chain registry (supportedSequenceTestnetChains/ALL_CHAINS) - Note there is no public block explorer for the Bali chains yet, that AGGLAYER ships with the upcoming SDK release, tighten the Note, link the ETA anchor, and standardize on 'AggLayer'
|
Pushed 1f5da4b addressing the review: Blockers
Other changes
|
…le (agglayer/issues#46) - FEP is Full Execution Proof, not "front-end provers" (supported-chains type column) - AGGLAYER also serves Ethereum <-> Katana mainnet corridors (the routing table registers it for chains 1 and 747474), so both pages state the provider's general AggLayer corridor coverage instead of Bali-only scope - Exit-floor rationale qualified: the L1-GER-anchored wait is the FEP (85)-origin path (OP Succinct proof anchored to an L1 info-tree leaf); PP (82)-origin hops do not wait on it — the 3-hour floor is unchanged - Document the missing-estimate behavior: a quote with no estimate displays and polls the direction floor itself - Soften "require an explicit selection": AUTO only falls back to AGGLAYER last and a trustless route preference also selects it; mirror the qualifier in the routes table - Separate display (floored estimate) from polling (1.5x headroom) in the supported-chains note; bridge PP/FEP naming to the SDK's "Bali 82"/"Bali 85"
|
Pushed 036462d addressing the follow-up review round: Majors
Minors
Nits
Mintlify broken-links check is green on the pushed tip; every changed behavioral claim was re-verified against the SDK at 0xsequence/trails@65d6f41c (read-only). |
miguelmota
left a comment
There was a problem hiding this comment.
Checked every behavioural claim against the SDK (#1297) and API (#1186) branches: the 20-minute and 3-hour floors, the 10-minute warning threshold, origin-based direction, chain ids 828282/858585, AggLayer as an AUTO last resort only, trustless-preference selection, and numeric chain ids in the Swap from/to props all match the code. Three edits before merging:
1. The claim-gas sentence is wrong (sdk/quote-providers.mdx, "the final claim step is paid by the user in ETH"). In the API, L2 destinations are auto-claimed by the chain operator's AggKit and claims into an ecosystem's L1 are sent and paid by Trails (lib/routes/agglayer/agglayer.go:1000-1001, ClaimServiceSponsorsDestination); the claim cost is folded into the quoted fee, denominated in the route token (claimGasFee, agglayer.go:533). The gas figures are still useful as the basis of that fee, but the text should say who executes the claim and that the user pays it through the quote, not in ETH at claim time.
2. The "ships with the upcoming 0xtrails SDK release" note has no removal trigger. Tie it to the release that carries #1297 or drop it, otherwise it goes stale the day the SDK ships.
3. The ETA model is written out twice with slightly different framing: the supported-chains table says "explicit selection recommended", the provider page says "an explicit selection is not required". Keep the provider page as the single source and have the supported-chains note link to it.
🤖 Generated with Claude Code (Claude Fable 5.1)
|
Thanks — addressed in the latest commit:
|
There was a problem hiding this comment.
The release-note and ETA de-duplication edits at 136ce3c are correct. The claim-gas paragraph needs one more pass, suggested inline on line 204: "executed automatically by the chain operator's AggKit" is stale, since upstream aggkit removed autoclaim (agglayer/aggkit#1901, in v0.11.0) and on the API branch Trails claims every destination itself after a short grace (workers/agglayer.go:452-463). The fee statement is right as written: the claim gas is priced into the quoted fee for every destination, in the route token.
Heads-up, not a blocker: the 20-minute and 3-hour figures match the SDK floors in 0xsequence/trails#1297 and the API's static estimates; if #1297 changes them these need a follow-up edit.
🤖 Generated with Claude Code (Claude Fable 5.1)
|
Updated the AggLayer polling windows in |
|
Pushed a follow-up fixing two things in the AggLayer section of
|
The docs do not cover the AGGLAYER route provider, the two Bali pilot chains, or the multi-hour ETA behavior integrators will see on AggLayer routes — the first integrator to quote a Bali corridor sees a 3-hour ETA materialize from a 15-minute route with no documented explanation. This PR documents all three, with every behavioral claim verified against the SDK implementation that ships the behavior (0xsequence/trails#1297): estimate-driven polling windows with 20-minute/3-hour origin floors, origin-based direction (any L2 origin is an exit), the Bali PP and FEP pilot chains (EVM chain IDs 828282/858585, Sepolia L1 11155111), and measured pilot claim-gas figures.
Related: SDK work on 0xsequence/trails#1297 (the polling windows, direction rule and Bali chain registry this documents) and 0xsequence/trails#1227 (the AGGLAYER provider it builds on); token lists 0xsequence/token-directory#162; the API side 0xsequence/trails-api#1186 (agglayer/issues#42), which is what serves the Bali corridors these pages describe.
On token listings: these docs enumerate no token addresses — the SDK registry and demo reference the verified on-chain pilot contracts directly (the USDC wrapper, JTT, E2E), while the public token dataset (0xsequence/token-directory#162) intentionally lists the native-ETH sentinels first and adds the wrapped ERC-20s once the Bali team confirms metadata. The two surfaces are independent.
Note: commit 0157570 uses a
fix:prefix against this repo'sdocs:convention — the content is accurate; kept as-is (additive history, flattened on squash-merge).Closes agglayer/issues#46