Skip to content

Bridge articles overhaul#3287

Open
anegg0 wants to merge 10 commits into
build-iteratefrom
bridge-articles-overhaul
Open

Bridge articles overhaul#3287
anegg0 wants to merge 10 commits into
build-iteratefrom
bridge-articles-overhaul

Conversation

@anegg0
Copy link
Copy Markdown
Contributor

@anegg0 anegg0 commented May 15, 2026

Description

Improvements on gateway conceptual parts and setup instructions.
Re-add Timeboost article that wasn't exposed.

Document type

  • Gentle introduction
  • Quickstart
  • How-to
  • Concept
  • FAQ
  • Troubleshooting
  • Reference
  • Third-party content
  • Codebase changes
  • Not applicable

@vercel
Copy link
Copy Markdown

vercel Bot commented May 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
arbitrum-docs Ready Ready Preview May 21, 2026 7:11pm

Request Review

@anegg0 anegg0 changed the base branch from master to build-iterate May 21, 2026 15:44
@anegg0 anegg0 requested a review from pete-vielhaber May 21, 2026 19:11
@anegg0 anegg0 marked this pull request as ready for review May 21, 2026 19:11

Auctioneer code: https://github.com/OffchainLabs/nitro/tree/master/cmd/autonomous-auctioneer

## Architecture
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Architecture


## How to use it?

Any auction participant looking to submit a valid bid will need to access the Timeboost Reserve Pricer API to get the round and minimum bid amount. There are 2 API endpoints that can be access using the following command
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Any auction participant looking to submit a valid bid will need to access the Timeboost Reserve Pricer API to get the round and minimum bid amount. There are 2 API endpoints that can be access using the following command
Any auction participant looking to submit a valid bid will need to access the Timeboost Reserve Pricer API to get the round and minimum bid amount. There are two API endpoints that can be access using the following command

`curl -H "Authorization: Bearer replace_with_api_token" ip_addr:port/api/latest`

- `/api/latest` which returns the newest reserve price and round
- `/api/recent` which returns the reserve price and rounds of the last 2 hours
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `/api/recent` which returns the reserve price and rounds of the last 2 hours
- `/api/recent` which returns the reserve price and rounds of the last two hours


<VanillaAdmonition type="info">

**Audience and scope.** This guide covers registration on Arbitrum One. The Solidity interfaces, SDK calls, and on-chain mechanics generalize to any Arbitrum chain — including Arbitrum Nova and chains you operate yourself — but the registration fallback for non-upgradeable parent chain tokens differs:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Audience and scope.** This guide covers registration on Arbitrum One. The Solidity interfaces, SDK calls, and on-chain mechanics generalize to any Arbitrum chainincluding Arbitrum Nova and chains you operate yourselfbut the registration fallback for non-upgradeable parent chain tokens differs:
**Audience and scope.** This guide covers registration on Arbitrum One. The Solidity interfaces, SDK calls, and on-chain mechanics generalize to any Arbitrum chainincluding Arbitrum Nova and chains you operate yourselfbut the registration fallback for non-upgradeable parent chain tokens differs:


import TokenCompatibilityPartial from '../partials/_token-compatibility.mdx';

The interfaces above also place a few constraints on how your token implements standard ERC-20 behavior. Review these before continuing:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The interfaces above also place a few constraints on how your token implements standard ERC-20 behavior. Review these before continuing:
The interfaces above also place a few constraints on how your token implements standard **ERC-20** behavior. Review these before continuing:

/**
* For the purpose of our tests, here we deploy an standard ERC20 token (L1Token) to L1
* It sends its deployer (us) the initial supply of 1000
* For the purpose of our tests, here we deploy a standard ERC-20 token (L1Token) to the parent chain.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* For the purpose of our tests, here we deploy a standard ERC-20 token (L1Token) to the parent chain.
* For the purpose of our tests, here we deploy a standard **ERC-20** token (`L1Token`) to the parent chain.


/**
* For the purpose of our tests, here we deploy an standard ERC20 token (L2Token) to L2
* For the purpose of our tests, here we deploy a standard ERC-20 token (L2Token) to the child chain.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* For the purpose of our tests, here we deploy a standard ERC-20 token (L2Token) to the child chain.
* For the purpose of our tests, here we deploy a standard **ERC-20** token (`L2Token`) to the child chain.

You can bridge tokens between the parent and child chain using the origin parent chain token and the custom token deployed on the child chain, along with the router and gateway contracts from each layer.

Suppose you want to see an example of bridging a token from the parent to the child chain using Arbitrum’s SDK. In that case, you can check out [How to bridge tokens via Arbitrum’s standard **ERC-20** gateway](/build-decentralized-apps/bridging/deposit/tokens.mdx), specifically in Steps 2-5.
For a fully working end-to-end implementation of every step on this page — contract sources, deployment scripts, registration call, and post-registration checks — see the [`custom-token-bridging` tutorial package](https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/custom-token-bridging).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For a fully working end-to-end implementation of every step on this pagecontract sources, deployment scripts, registration call, and post-registration checkssee the [`custom-token-bridging` tutorial package](https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/custom-token-bridging).
For a fully working end-to-end implementation of every step on this pagecontract sources, deployment scripts, registration call, and post-registration checkssee the [`custom-token-bridging` tutorial package](https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/custom-token-bridging).


### One of the retryables didn't redeem. How do I recover?

`registerCustomToken` produces two parent-to-child retryables (one for the router, one for the gateway). If either fails to auto-redeem — for example, because the supplied gas wasn't enough — the corresponding child chain mapping won't update and the verification calls in [Step 4](#verify-the-registration) will return `0x0000…0000`. Manually redeem the failed retryable from the child chain by calling `redeem()` on the message; see [Parent-to-child messaging](/how-arbitrum-works/deep-dives/l1-to-l2-messaging.mdx) for the procedure. Registration succeeds as soon as both retryables are redeemed.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`registerCustomToken` produces two parent-to-child retryables (one for the router, one for the gateway). If either fails to auto-redeemfor example, because the supplied gas wasn't enough — the corresponding child chain mapping won't update and the verification calls in [Step 4](#verify-the-registration) will return `0x0000…0000`. Manually redeem the failed retryable from the child chain by calling `redeem()` on the message; see [Parent-to-child messaging](/how-arbitrum-works/deep-dives/l1-to-l2-messaging.mdx) for the procedure. Registration succeeds as soon as both retryables are redeemed.
`registerCustomToken` produces two parent-to-child retryables (one for the router, one for the gateway). If either fails to auto-redeemfor example, because the supplied gas wasn't enough — the corresponding child chain mapping won't update and the verification calls in [Step 4](#verify-the-registration) will return `0x0000…0000`. Manually redeem the failed retryable from the child chain by calling `redeem()` on the message; see [Parent-to-child messaging](/how-arbitrum-works/deep-dives/l1-to-l2-messaging.mdx) for the procedure. Registration succeeds as soon as both retryables are redeemed.

Copy link
Copy Markdown
Contributor

@pete-vielhaber pete-vielhaber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested nits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants