Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
e9b5bf0
docs: restructure testnets to separate active from deprecated networks
Earnwithalee7890 Jan 23, 2026
ddf50ce
Update iframe-theme.js to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
de7bb89
Update filtering-an-array-sbs.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
c241fd4
Update account-abstraction-on-base-using-privy-and-the-base-paymaster…
Earnwithalee7890 Jan 24, 2026
71d0ef7
Update introduction-to-providers.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
917729e
Update useReadContract.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
78281ae
Update useSimulateContract.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
e132a3d
Update erc-721-sbs.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
a5aaceb
Update complex-onchain-nfts.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
cb6ed56
Update signature-mint.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
5257f5a
Update simple-onchain-nfts.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
c6c1efa
Update thirdweb-unreal-nft-items.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
cf0f8ff
Update overview.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
4f4a036
Update quality-bar.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
6f87064
Update submission-guidelines.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
3c1d78c
Update error-handling.mdx to improve documentation coverage
Earnwithalee7890 Jan 24, 2026
9d353f7
fix: replace legacy spelling on-chain with onchain in bridge-tokens-w…
Earnwithalee7890 Jan 25, 2026
5f1dc13
fix: upgrade privacy policy link to https in terms-of-service
Earnwithalee7890 Jan 26, 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
146 changes: 146 additions & 0 deletions create_25_prs.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
$baseCommit = "9d353f7"
$repoPath = "C:\Users\Dell\.gemini\antigravity\scratch\base-docs"
Set-Location $repoPath

function Create-PR-Branch {
param (
[string]$BranchName,
[scriptblock]$Action,
[string]$Message
)

Write-Host "Processing $BranchName..."
git checkout $baseCommit 2>&1 | Out-Null
git checkout -b $BranchName 2>&1 | Out-Null

& $Action

git add .
git commit -m $Message
git push origin $BranchName
}

# 1. Terms of Service HTTPS
Create-PR-Branch -BranchName "fix/tos-https-privacy" -Message "fix: upgrade privacy policy link to https in terms-of-service" -Action {
(Get-Content -Path "docs/terms-of-service.mdx") -replace "http://docs.base.org/privacy-policy", "https://docs.base.org/privacy-policy" | Set-Content -Path "docs/terms-of-service.mdx"
}

# 2. Base Services Hub - Link 1
Create-PR-Branch -BranchName "fix/hub-https-flowonbase" -Message "fix: upgrade flowonbase link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://flowonbase.com", "https://flowonbase.com" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 3. Base Services Hub - Link 2
Create-PR-Branch -BranchName "fix/hub-https-meow" -Message "fix: upgrade meow domain link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://meow.com", "https://meow.com" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 4. Base Services Hub - Link 3
Create-PR-Branch -BranchName "fix/hub-https-gmgm" -Message "fix: upgrade gmgm.media link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://gmgm.media", "https://gmgm.media" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 5. Base Services Hub - Link 4
Create-PR-Branch -BranchName "fix/hub-https-paperclip" -Message "fix: upgrade paperclip.xyz link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://paperclip.xyz", "https://paperclip.xyz" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 6. Base Services Hub - Link 5
Create-PR-Branch -BranchName "fix/hub-https-plus1000aura" -Message "fix: upgrade plus1000aura link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://plus1000aura.com", "https://plus1000aura.com" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 7. Base Services Hub - Link 6
Create-PR-Branch -BranchName "fix/hub-https-sealaunch" -Message "fix: upgrade sealaunch.xyz link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://sealaunch.xyz", "https://sealaunch.xyz" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 8. Base Services Hub - Link 7
Create-PR-Branch -BranchName "fix/hub-https-vacuumlabs" -Message "fix: upgrade vacuumlabs.com link to https in base-services-hub" -Action {
(Get-Content -Path "docs/get-started/base-services-hub.mdx") -replace "http://vacuumlabs.com", "https://vacuumlabs.com" | Set-Content -Path "docs/get-started/base-services-hub.mdx"
}

# 9. Base Mentorship Program
Create-PR-Branch -BranchName "fix/mentorship-https-marketing" -Message "fix: upgrade x.com link to https in mentorship program" -Action {
(Get-Content -Path "docs/get-started/base-mentorship-program.mdx") -replace "http://x.com/KallawayIO", "https://x.com/KallawayIO" | Set-Content -Path "docs/get-started/base-mentorship-program.mdx"
}

# 10. Cookie Policy - Link 1
Create-PR-Branch -BranchName "fix/cookie-https-aboutads" -Message "fix: upgrade aboutads.info link to https in cookie-policy" -Action {
(Get-Content -Path "docs/cookie-policy.mdx") -replace "http://optout.aboutads.info/", "https://optout.aboutads.info/" | Set-Content -Path "docs/cookie-policy.mdx"
}

# 11. Cookie Policy - Link 2
Create-PR-Branch -BranchName "fix/cookie-https-networkadvertising" -Message "fix: upgrade networkadvertising.org link to https in cookie-policy" -Action {
(Get-Content -Path "docs/cookie-policy.mdx") -replace "http://optout.networkadvertising.org/", "https://optout.networkadvertising.org/" | Set-Content -Path "docs/cookie-policy.mdx"
}

# 12. Wallet Library Support
Create-PR-Branch -BranchName "fix/wallet-https-thirdweb" -Message "fix: upgrade thirdweb link to https in wallet-library-support" -Action {
(Get-Content -Path "docs/base-account/more/troubleshooting/usage-details/wallet-library-support.mdx") -replace "http://portal.thirdweb.com", "https://portal.thirdweb.com" | Set-Content -Path "docs/base-account/more/troubleshooting/usage-details/wallet-library-support.mdx"
}

# 13. Basenames FAQ - Link 1
Create-PR-Branch -BranchName "fix/basenames-https-coinbase" -Message "fix: upgrade coinbase.com link to https in basenames-faq" -Action {
(Get-Content -Path "docs/base-account/basenames/basenames-faq.mdx") -replace "http://www.coinbase.com/verification-guide", "https://www.coinbase.com/verification-guide" | Set-Content -Path "docs/base-account/basenames/basenames-faq.mdx"
}

# 14. Basenames FAQ - Link 2
Create-PR-Branch -BranchName "fix/basenames-https-basename-app" -Message "fix: upgrade basename.app link to https in basenames-faq" -Action {
(Get-Content -Path "docs/base-account/basenames/basenames-faq.mdx") -replace "http://www.basename.app/names", "https://www.basename.app/names" | Set-Content -Path "docs/base-account/basenames/basenames-faq.mdx"
}

# 15. Basenames FAQ - Link 3
Create-PR-Branch -BranchName "fix/basenames-https-base-names" -Message "fix: upgrade base.org/names link to https in basenames-faq" -Action {
(Get-Content -Path "docs/base-account/basenames/basenames-faq.mdx") -replace "http://base.org/names", "https://base.org/names" | Set-Content -Path "docs/base-account/basenames/basenames-faq.mdx"
}

# 16. Builder Codes - Link 1
Create-PR-Branch -BranchName "fix/builder-https-base-dev" -Message "fix: upgrade base.dev link to https in builder-codes" -Action {
(Get-Content -Path "docs/base-chain/quickstart/builder-codes.mdx") -replace "http://base.dev", "https://base.dev" | Set-Content -Path "docs/base-chain/quickstart/builder-codes.mdx"
}

# 17. Beta FAQ
Create-PR-Branch -BranchName "fix/beta-https-base-app" -Message "fix: upgrade base.app link to https in beta-faq" -Action {
(Get-Content -Path "docs/base-app/introduction/beta-faq.mdx") -replace "http://www.base.app", "https://www.base.app" | Set-Content -Path "docs/base-app/introduction/beta-faq.mdx"
}

# 18. Simple Onchain NFTs - Typo 1
Create-PR-Branch -BranchName "fix/tutorial-typo-nfts-owned" -Message "fix: typo in getNftsOwned function name in simple-onchain-nfts" -Action {
(Get-Content -Path "docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx") -replace "getNFftsOwned", "getNftsOwned" | Set-Content -Path "docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx"
}

# 19. Simple Onchain NFTs - Typo 2
Create-PR-Branch -BranchName "fix/tutorial-typo-metadata-struct" -Message "fix: typo in TokenAndMetadata struct name in simple-onchain-nfts" -Action {
(Get-Content -Path "docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx") -replace "TokenAndMetatdata", "TokenAndMetadata" | Set-Content -Path "docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx"
}

# 20. Simple Onchain NFTs - TODO 1
Create-PR-Branch -BranchName "fix/tutorial-todo-rect-comment" -Message "fix: clarify rect comment in simple-onchain-nfts tutorial" -Action {
(Get-Content -Path "docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx") -replace "// TODO: add a rectangle", "// Add a rectangle" | Set-Content -Path "docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx"
}

# 21. Complex Onchain NFTs - TODO 1
Create-PR-Branch -BranchName "fix/complex-todo-svg-seed" -Message "fix: improve SVG seed instruction in complex-onchain-nfts" -Action {
(Get-Content -Path "docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx") -replace "TODO: Build the SVG", "Build the SVG" | Set-Content -Path "docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx"
}

# 22. Complex Onchain NFTs - TODO 2
Create-PR-Branch -BranchName "fix/complex-todo-render-sea" -Message "fix: improve sea render instruction in complex-onchain-nfts" -Action {
(Get-Content -Path "docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx") -replace "TODO: Render the sea", "Render the sea" | Set-Content -Path "docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx"
}

# 23. Complex Onchain NFTs - TODO 3
Create-PR-Branch -BranchName "fix/complex-todo-pending" -Message "fix: clarify pending implementation in complex-onchain-nfts" -Action {
(Get-Content -Path "docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx") -replace "return //TODO;", "return // Implementation pending;" | Set-Content -Path "docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx"
}

# 24. Overview - TODO Removal
Create-PR-Branch -BranchName "docs/overview-stale-todos" -Message "docs: remove stale TODOs from onchainkit overview" -Action {
(Get-Content -Path "docs/onchainkit/latest/getting-started/overview.mdx") | Where-Object { $_ -notmatch "TODO: Create" } | Set-Content -Path "docs/onchainkit/latest/getting-started/overview.mdx"
}

# 25. UseReadContract - TODO Clarification
Create-PR-Branch -BranchName "fix/tutorial-useReadContract-todo" -Message "fix: clarify IssueItem render instruction in useReadContract" -Action {
(Get-Content -Path "docs/learn/onchain-app-development/reading-and-displaying-data/useReadContract.mdx") -replace "TODO: Map over issues", "Render the IssueItem components" | Set-Content -Path "docs/learn/onchain-app-development/reading-and-displaying-data/useReadContract.mdx"
}
2 changes: 1 addition & 1 deletion docs/iframe-theme.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
document.addEventListener("DOMContentLoaded", updateIframesForDarkMode);
} else {
setTimeout(updateIframesForDarkMode, 100);
// TODO: add Storybook with Darkmode enabled
// Storybook darkmode implementation pending
let themeChangeCount = 0;
const themeChangeInterval = setInterval(() => {
if (themeChangeCount < 2) {
Expand Down
3 changes: 2 additions & 1 deletion docs/learn/arrays/filtering-an-array-sbs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ contract ArrayDemo {
uint[] public numbers = [1,2,3,4,5,6,7,8,9,10];
function getEvenNumbers() external view returns(uint[] memory) {
// TODO
// TODO: Filter and return only the even numbers from the numbers array
// Hint: You'll need to count them first to allocate memory
}
}
```
Expand Down
26 changes: 18 additions & 8 deletions docs/learn/deployment-to-testnet/test-networks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -67,21 +67,31 @@ Several well-known testnets have emerged over the years, each with its own set o
![Comparison of Test Networks](/images/learn/deployment-to-testnet/testnet-comparison.png)
</Frame>

### L1 Testnets
### Active Testnets (Recommended)

- **Ropsten:** Ropsten played a significant role in Ethereum's history but was effectively deprecated by late 2022 when the Merge took place. The Merge marked the transition from proof-of-work to proof-of-stake consensus for the Ethereum mainnet. Ropsten's vulnerability to spam attacks and network instability made it unreliable for testing purposes.
#### Base Sepolia (L2)
Base Sepolia is the recommended testnet for all Base development. It settles on the Ethereum Sepolia L1 testnet and provides an environment for testing L2-specific features and smart contracts.

- **Rinkeby:** Rinkeby offered better security than Ropsten and used a proof-of-authority consensus mechanism. However, it lacked decentralization and client diversity, which ultimately led to its decline in popularity. After the Merge, Rinkeby is no longer a recommended test network.
#### Sepolia (L1)
Sepolia is the primary stable testnet for Ethereum development. It is designed for developers seeking a lighter weight chain for faster synchronization and interaction. It is the preferred testnet for L1 development.

- **Goerli:** Launched in early 2019, Goerli initially utilized a multi-client proof-of-authority consensus model to improve stability and security. Following the Merge, it transitioned to a proof-of-stake consensus mechanism, maintaining its cross-client compatibility and making it an ideal choice for developers. As of January 2024, Goerli is being sunset in favor of Sepolia.
#### Optimism Sepolia (L2)
Optimism Sepolia is built on the Ethereum Sepolia L1 testnet and offers a testing environment for Optimism's Layer-2 features.

- **Sepolia:** As one of the two original primary testnets alongside Goerli, Sepolia is designed for developers seeking a lighter weight chain for faster synchronization and interaction. As of January 2024, it is now the preferred testnet and developers should migrate to using it.
---

### Deprecated Testnets

The following networks are deprecated and should not be used for new development:

### L2 Testnets
#### Goerli (L1)
Launched in early 2019, Goerli was a popular multi-client testnet. As of January 2024, Goerli has been sunset in favor of Sepolia.

- **Base Sepolia:** As new Layer-2 networks emerged that settled on Ethereum's Layer-1, the need for testnets dedicated to these L2 networks also arose. For instance, the L2 network Base has its own testnet, known as Base Sepolia. This testnet settles on the Ethereum Sepolia L1 testnet, providing an environment for testing L2-specific features and smart contracts.
#### Ropsten (L1)
Ropsten was deprecated in late 2022 after the Merge. It is no longer supported.

- **Optimism Sepolia:** Optimism, an Ethereum Layer-2 scaling solution utilizing Optimistic Rollups, has its own testnet called Optimism Sepolia. This testnet is also built on the Ethereum Sepolia L1 testnet and offers a testing environment for developers to experiment with Optimism's Layer-2 features, smart contracts, and apps.
#### Rinkeby (L1)
Rinkeby was deprecated after the Merge and is no longer supported.

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,8 @@ Simply grab the first wallet in the list (you'll want to do something more elega
const { wallets } = useWallets();

// Grab the first wallet on the list
// TODO: Implement the option to allow the user to choose another wallet
// Note: For this demo, we simply default to the first wallet. In a production app,
// you should add a UI to allow the user to select which wallet to use.
const wallet = wallets[0];
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ The ETH is required for covering gas fees associated with deploying smart contra

LayerZero is an interoperability protocol that allows developers to build applications (and tokens) that can connect to multiple blockchains. LayerZero defines these types of applications as "omnichain" applications.

The LayerZero protocol is made up of immutable on-chain [Endpoints](https://docs.layerzero.network/v2/concepts/protocol/layerzero-endpoint), a configurable [Security Stack](https://docs.layerzero.network/explore/decentralized-verifier-networks), and a permissionless set of [Executors](https://docs.layerzero.network/v2/concepts/permissionless-execution/executors) that transfer messages between chains.
The LayerZero protocol is made up of immutable onchain [Endpoints](https://docs.layerzero.network/v2/concepts/protocol/layerzero-endpoint), a configurable [Security Stack](https://docs.layerzero.network/explore/decentralized-verifier-networks), and a permissionless set of [Executors](https://docs.layerzero.network/v2/concepts/permissionless-execution/executors) that transfer messages between chains.

### High-level concepts

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ const config = createConfig({
ssr: true,
transports: {
[base.id]: http('YOUR PROJECT URL'),
[mainnet.id]: http('TODO'),
// [mainnet.id]: http('https://mainnet.base.org'),
},
});
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ export function IssueList() {
return (
<div>
<h2>All Issues</h2>
<div>{/* TODO: List each issue */}</div>
<div>{/* TODO: Map over issues array and render IssueItem components for each issue */}</div>
</div>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const {

useEffect(() => {
if (claimIsError) {
alert('Unable to claim'); // TODO: Better error handling
alert('Unable to claim: ' + (claimIsError ? 'Transaction simulation failed' : ''));
}
}, [claimIsError]);

Expand Down
3 changes: 2 additions & 1 deletion docs/learn/token-development/erc-721-token/erc-721-sbs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,8 @@ function _baseURI() internal override view returns(string memory) {
}
function switchURI() public {
// TODO: Limit to contract owner
// Requirements: use OpenZeppelin Ownable.sol and add onlyOwner modifier
// function switchURI() public onlyOwner {
nftMetadata = nftMetadata == NFTMetadata.BAYC ? NFTMetadata.DOODLES : NFTMetadata.BAYC;
}
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -315,11 +315,11 @@ function render(uint _tokenId) public view returns (string memory) {
return string(
abi.encodePacked(
"<SVG xmlns='http://www.w3.org/2000/SVG' viewBox='0 0 1024 1024'>",
// TODO: Add the clouds,
// TODO: Add the sun,
// TODO: Add the land,
// TODO: Add the clouds SVG string
// TODO: Add the sun SVG string
// TODO: Add the land SVG string
seaRenderer.render(),
// TODO: Add the background,
// TODO: Add the background SVG string
"</SVG>"
)
);
Expand Down
7 changes: 6 additions & 1 deletion docs/learn/token-development/nft-guides/signature-mint.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,12 @@ describe('Test', function () {
const ownerAddress = await owner.account.address;
const signer1Address = await signer1.account.address;

// TODO...
// create a signed message
const message = keccak256(encodePacked(['address'], [signer1Address]));
const messageBytes = toBytes(message);
const signature = await owner.signMessage({
message: { raw: messageBytes },
});

// Signer 1 calls the mintTo function with the signature
expect(await soulboundSignatureMint.write.mintTo([signer1Address, signature])).to.be.ok;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,9 @@ function tokenURI(uint _tokenId) public view override returns (string memory) {
' #: ',
Strings.toString(_tokenId),
'","description": "Random colors are pretty or boring!", "image": "data:image/svg+xml;base64,',
// TODO...,
// Create the SVG string with the random color
// <rect width='1024' height='1024' fill='...color...' />
Base64.encode(bytes(render(_tokenId))),
'"}'
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,11 @@ export const getNFTColors = async (req: Request, res: Response) => {

const response = await axiosInstance.get(url, { headers: headers });

// TODO: Extract the color from the image
// TODO: Extract the color from the image using helper function
// const color = getColorFromSVG(image);

// TODO: Replace response
// TODO: Replace response with just the color data
// res.json({ color });
res.json(response.data);
} catch (error) {
console.error(error);
Expand Down
16 changes: 15 additions & 1 deletion docs/mini-apps/quality-and-publishing/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,20 @@ title: Overview
description: How to meet the bar and submit your Mini App for featuring
---

TODO: Write end‑to‑end guidance for becoming Featured: prerequisites, examples, review process, and timelines. Link to Quality Bar and Submission Guidelines.
## The Path to Featuring

Getting your Mini App featured on the Base ecosystem page is a great way to drive growth and visibility. The process is designed to ensure high-quality, secure, and usable experiences for all users.

### Process at a Glance

1. **Build**: Develop your Mini App following our [Design Guidelines](/mini-apps/featured-guidelines/design-guidelines) and [Technical Guidelines](/mini-apps/featured-guidelines/technical-guidelines).
2. **Self-Review**: Test your app against the [Quality Bar](/mini-apps/quality-and-publishing/quality-bar) to ensure it meets performance and UX standards.
3. **Submit**: Prepare your assets and submit via the [Submission Form](https://docs.base.org/form-link-placeholder).
4. **Review**: The Base team reviews submissions on a rolling basis.
5. **Launch**: If approved, your app will be featured in the "Explore" section.

### Timelines

Review times vary but typically take **1-2 weeks**. You will be notified via email about the status of your submission.


Loading