Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d51afbb
docs: add 'Register via DAO governance' article for generic-custom ga…
anegg0 May 5, 2026
7f31031
Merge branch 'master' into docs/standardized-token-registrations
anegg0 May 13, 2026
89136b4
remove duplicate content, this belongs in the AF repository
anegg0 May 13, 2026
593c84c
add external link to AF docs
anegg0 May 13, 2026
4e139eb
point DAO token registration to AF docs
anegg0 May 13, 2026
0af4c21
point second DAO token registration link to the AF doc
anegg0 May 13, 2026
552f072
add missing docs/how-arbitrum-works/deep-dives/token-bridging.mdx to …
anegg0 May 13, 2026
3723c29
attempt: making setup gateway section clearer and more cohesive
anegg0 May 14, 2026
a1bc339
add new cross-article partials for token bridging next steps, prereqs…
anegg0 May 15, 2026
b380d60
Merge remote-tracking branch 'origin/build-iterate' into bridge-artic…
anegg0 May 21, 2026
4628b9c
Update docs/how-arbitrum-works/timeboost/timeboost-reserve-originator…
anegg0 May 26, 2026
ea856f4
Update docs/how-arbitrum-works/timeboost/timeboost-reserve-originator…
anegg0 May 26, 2026
7581779
Update docs/how-arbitrum-works/timeboost/timeboost-reserve-originator…
anegg0 May 26, 2026
f8fbd36
Update docs/build-decentralized-apps/bridging/configure-token-gateway…
anegg0 May 26, 2026
9d7574c
Update docs/build-decentralized-apps/bridging/configure-token-gateway…
anegg0 May 26, 2026
dbe5de6
Update docs/build-decentralized-apps/bridging/configure-token-gateway…
anegg0 May 26, 2026
44ca057
Update docs/build-decentralized-apps/bridging/configure-token-gateway…
anegg0 May 26, 2026
d899d32
Update docs/build-decentralized-apps/bridging/configure-token-gateway…
anegg0 May 26, 2026
aec01eb
Update docs/build-decentralized-apps/bridging/configure-token-gateway…
anegg0 May 26, 2026
29f3a37
Merge branch 'master' into bridge-articles-overhaul
anegg0 May 26, 2026
10fbc72
yarn format
pete-vielhaber May 29, 2026
0b22fd3
Merge branch 'master' into bridge-articles-overhaul
pete-vielhaber May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,18 @@ title: Configure standard gateway bridging
description: "Guide to configuring ERC-20 token bridging using Arbitrum's standard gateway, which automatically creates a standard token representation on the child chain with no custom configuration required."
user_story: 'As a developer, I want to set up standard gateway bridging for my ERC-20 token so it can be transferred between Ethereum and Arbitrum.'
content_type: how-to
author: anegg0
sme: TBD
displayed_sidebar: buildAppsSidebar
---

This guide explains how to configure your **ERC-20** token to work with Arbitrum's standard gateway. The standard gateway is the simplest option—it automatically creates a standard **ERC-20** token on the child chain with no configuration required.
This guide explains how to configure your **ERC-20** token to work with Arbitrum's standard gateway. The standard gateway is the simplest option — it automatically creates a standard **ERC-20** token on the child chain with no configuration required.

<VanillaAdmonition type="info">

**Audience and scope.** This guide covers registration on Arbitrum One. The same mechanics apply on Arbitrum Nova and on Arbitrum chains you operate yourself — the standard gateway is permissionless on every Arbitrum chain, so no extra steps are needed if you operate the chain. The first deposit triggers automatic child chain token deployment in all cases.

</VanillaAdmonition>

## When to use the standard gateway

Expand Down Expand Up @@ -57,9 +66,9 @@ contract DappToken is ERC20 {

Deploy it to the parent chain:

```javascript
const { ethers } = require('hardhat');
const { providers, Wallet } = require('ethers');
```ts
import { ethers } from 'hardhat';
import { providers, Wallet } from 'ethers';

const parentProvider = new providers.JsonRpcProvider(process.env.PARENT_RPC);
const wallet = new Wallet(process.env.PRIVATE_KEY, parentProvider);
Expand Down Expand Up @@ -98,7 +107,7 @@ The child chain token is created automatically on the first deposit. You can tri

### Using the Arbitrum SDK

```javascript
```ts
import { getArbitrumNetwork, Erc20Bridger } from '@arbitrum/sdk';
import { providers, Wallet } from 'ethers';

Expand Down Expand Up @@ -135,7 +144,7 @@ After the first deposit, find your token's child chain address:

### Using the SDK

```javascript
```ts
const childTokenAddress = await erc20Bridge.getChildErc20Address(parentTokenAddress, parentProvider);

console.log(`L2 token address: ${childTokenAddress}`);
Expand All @@ -162,12 +171,14 @@ The automatically deployed token is an instance of [`StandardArbERC20`](https://

You can verify this on [Arbiscan](https://arbiscan.io/) by viewing the token contract.

import TokenBridgingNextSteps from '../partials/_token-bridging-next-steps.mdx';
import TokenBridgingResources from '../partials/_token-bridging-resources.mdx';

## Configuration complete

Your token is now bridgeable! Users can:

- [Deposit tokens to the child chain](/build-decentralized-apps/bridging/deposit/tokens.mdx)
- [Withdraw tokens back to parent chain](/build-decentralized-apps/bridging/withdraw/tokens.mdx)
<TokenBridgingNextSteps />

## Important considerations

Expand All @@ -190,16 +201,9 @@ Once the first deposit occurs, the token is permanently assigned to the standard

The gateway controls the automatically deployed child chain token—you can't modify or upgrade it. For control over the child chain token, use the generic-custom gateway.

## Next steps

- [Deposit tokens](/build-decentralized-apps/bridging/deposit/tokens.mdx)
- [Withdraw tokens](/build-decentralized-apps/bridging/withdraw/tokens.mdx)
- [Understand token bridge architecture](/how-arbitrum-works/deep-dives/token-bridging.mdx)
- [View example code](https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/token-deposit)

## Resources

- [Token bridge conceptual overview](/how-arbitrum-works/deep-dives/token-bridging.mdx)
<TokenBridgingResources />

- [Standard **ERC-20** bridging details](/how-arbitrum-works/deep-dives/token-bridging.mdx#default-standard-bridging)
- [Arbitrum SDK documentation](/sdk)
- [Contract addresses](/build-decentralized-apps/reference/02-contract-addresses.mdx)
- [Example code: token deposit](https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/token-deposit)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- [Deposit tokens to the child chain](/build-decentralized-apps/bridging/deposit/tokens.mdx)
- [Withdraw tokens back to the parent chain](/build-decentralized-apps/bridging/withdraw/tokens.mdx)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Familiarity with [Arbitrum's token bridge system](/how-arbitrum-works/deep-dives/token-bridging.mdx), smart contracts, and decentralized application development is required. If you're new to developing on Arbitrum, consider reviewing the [Quickstart: Build an app with Arbitrum](/build-decentralized-apps/01-quickstart-solidity-remix.mdx) before proceeding. We'll use [Arbitrum's SDK](https://github.com/OffchainLabs/arbitrum-sdk) throughout this how-to, although no prior knowledge is required.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- [Token bridge conceptual overview](/how-arbitrum-works/deep-dives/token-bridging.mdx)
- [Arbitrum SDK](https://github.com/OffchainLabs/arbitrum-sdk)
- [Token bridge contract addresses](/build-decentralized-apps/reference/02-contract-addresses.mdx)
38 changes: 38 additions & 0 deletions docs/how-arbitrum-works/timeboost/timeboost-reserve-originator.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: 'Timeboost - Reserve Originator'
description: Learn how to use timeboost
author: alxdca
sme: alxdca
content_type: how-to
sidebar_position: 2
target_audience: Developers writing Stylus contracts in Rust using Stylus
---

## What’s the Reserve Originator ?

Timeboost is an auction-based mechanism to gain exclusive access to the Arbitrum sequencer express lane for a given amount of time. It was recently noticed that auction participation is low and collusion may be happening to lower the winning bid price.

The reserve originator is part of a new design that introduces a reserve price, a minimum per round fair access price to the auction. The reserve originator basically acts as a participant to the auction, fetches the reserve price from a dedicated service and submits a bid to the Auctioneer service. If the reserve originator ends up being the winner of the auction, the auctioneer will nullify the round, meaning no one gains the express lane. In that case, the reserve originator doesn’t pay anything.

## Links

Problem definition and requirements: [[PRD] Timeboost Dynamic Reserve Price](https://www.notion.so/PRD-Timeboost-Dynamic-Reserve-Price-30c01a3f59f880c8abdaf6be9e3846f5?pvs=21)

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.

is this public?


Timeboost docs: https://docs.arbitrum.io/how-arbitrum-works/timeboost/gentle-introduction

Repository: https://github.com/OffchainLabs/timeboost-virtual-bidder

Reserve pricer: https://github.com/OffchainLabs/timeboost-reserve-pricer

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

## 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 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 two hours

The price gets updated at the 31st second of every minute.
10 changes: 10 additions & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -1036,6 +1036,11 @@ const sidebars = {
label: 'AnyTrust',
id: 'how-arbitrum-works/deep-dives/anytrust-protocol',
},
{
type: 'doc',
label: 'Token bridging',
id: 'how-arbitrum-works/deep-dives/token-bridging',
},
{
type: 'doc',
label: 'ArbOS',
Expand Down Expand Up @@ -1144,6 +1149,11 @@ const sidebars = {
id: 'how-arbitrum-works/timeboost/gentle-introduction',
label: 'How Timeboost works',
},
{
type: 'doc',
label: 'Reserve originator',
id: 'how-arbitrum-works/timeboost/timeboost-reserve-originator',
},
{
type: 'doc',
label: 'Use Timeboost',
Expand Down
Loading