diff --git a/README.md b/README.md index d3d19bbbb..1023c7616 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ If your goal is to increase discoverability of your product, please request incl ## Publishing changes -The core team will review opened PRs. The SLA is 2 weeks, generally on a first-come, first-served basis outside of urgent changes. +The core team will review opened PRs. The SLA is 2 weeks, generally on a first-come, first-served basis outside of urgent changes. ## Storybook for UI components diff --git a/docs/cookie-policy.mdx b/docs/cookie-policy.mdx index d1f094b6c..b584d9504 100644 --- a/docs/cookie-policy.mdx +++ b/docs/cookie-policy.mdx @@ -76,9 +76,9 @@ please note, if you set your browser to disable cookies, you may not be able to of our Services. Also, if you disable cookies, other parts of our Services may not function properly. There are also additional tools available to manage third party cookies. You can visit the DAA's -opt-out portal available at [optout.aboutads.info](http://optout.aboutads.info/), the DAA of Canada's +opt-out portal available at [optout.aboutads.info](https://optout.aboutads.info/), the DAA of Canada's opt-out portal available at [youradchoices.ca/en/tools](https://youradchoices.ca/en/tools), or visit -the NAI's opt-out portal available at [optout.networkadvertising.org](http://optout.networkadvertising.org/?c=1). +the NAI's opt-out portal available at [optout.networkadvertising.org](https://optout.networkadvertising.org/?c=1). Residents of the European Union may opt-out of online behavioural advertising served by the European Interactive Digital Advertising Alliance's participating member organizations by visiting [youronlinechoices.eu](https://www.youronlinechoices.eu/) or through your mobile device settings, diff --git a/docs/get-started/base-mentorship-program.mdx b/docs/get-started/base-mentorship-program.mdx index a40c0d644..4b10bbac3 100644 --- a/docs/get-started/base-mentorship-program.mdx +++ b/docs/get-started/base-mentorship-program.mdx @@ -23,7 +23,7 @@ Base Mentors are experienced founders, operators, and subject matter experts acr | Anthony Bassili | [Coinbase Asset Management](https://x.com/SmartestBeta) | | Antonio García Martínez | [Spindl (acq. Coinbase)](https://x.com/antoniogm) | | Conor Grogan | [Coinbase](https://x.com/jconorgrogan) | -| Conner Swenberg | [Station Labs (acq. Coinbase)](http://x.com/ilikesymmetry) | +| Conner Swenberg | [Station Labs (acq. Coinbase)](https://x.com/ilikesymmetry) | | Dariush Aghai | [Study Hall Creative](https://studyhall.design/about) | | David Espinel | [Social Graph Ventures](https://www.socialgraph.vc/team) | | Elena Nadolinski | [Iron Fish (acq. Coinbase)](https://x.com/leanthebean) | diff --git a/docs/get-started/base-services-hub.mdx b/docs/get-started/base-services-hub.mdx index dd1b902d0..cca1d5316 100644 --- a/docs/get-started/base-services-hub.mdx +++ b/docs/get-started/base-services-hub.mdx @@ -19,7 +19,7 @@ Thank you to all the teams supporting the Base ecosystem and its builders! If yo | [Acctual](https://www.acctual.com/) | Invoicing | The easiest way to pay or send an invoice (AP/AR) in crypto and fiat. | 3 months of fee free invoicing on Base. | Acctual users who invoice on Base will receive fee free invoicing for the first 3 months, on all Base invoices.



Users will need to reach out to support@acctual.com to redeem this offer. | | [Almanax](https://www.almanax.ai/) | AI & Security | Almanax is an AI Security Engineer that uses LLMs to find security vulnerabilities every time companies push new code. | Base builders can get their first three months of Almanax premium plan for free. | Sign up for Almanax's product at https://app.almanax.ai/



Fill out this form and enter this promo code in the message field: "BASE-ALMANAX-DEAL"



Once approved, you'll receive a confirmation emails. | | [Anchor Zero](anchorzero.com) | Tax Planning | AnchorZero Roth IRAs can eliminate capital gains tax on pre-launch token investments | Waive all implementation fees | Mention you are building on Base in your introductory call with AnchorZero. | -| [Api3](https://www.api3.org/) | Oracle's / Data Infrastructure | API3 is an oracle service that delivers Real World Price Feeds to your smart contract. The Price feeds provided allow dapps to regain lost value with Oracle Extractable Value built in to the feed. | If you are a lending dapp deploying on BASE, stable coin, morpho curator, borrow/lending dapp we will provide oracle services to your markets. | Contact: http://t.me/billyjitsu

Or Request: https://api3dao.typeform.com/to/TBTu8bJt

The team will reach out and discuss the options for gas grants for oracle services. | +| [Api3](https://www.api3.org/) | Oracle's / Data Infrastructure | API3 is an oracle service that delivers Real World Price Feeds to your smart contract. The Price feeds provided allow dapps to regain lost value with Oracle Extractable Value built in to the feed. | If you are a lending dapp deploying on BASE, stable coin, morpho curator, borrow/lending dapp we will provide oracle services to your markets. | Contact: https://t.me/billyjitsu

Or Request: https://api3dao.typeform.com/to/TBTu8bJt

The team will reach out and discuss the options for gas grants for oracle services. | | [Artemis](artemis.xyz) | Onchain Analytics | Artemis standardizes digital finance data into a single open data platform. Metrics that matter for digital finance. All in one place. | Artemis is offering free, out-of-the-box onchain metrics dashboards for Base builder's applications. | Please fill out the [Google Form](https://forms.gle/ZDS9LkxSBJVJonR36) with your application metadata and contract information. We will contact your email once your application dashboard has been created. | | [Birdeye ](https://bds.birdeye.so/) | Data Analytics - Data API - Developer Tools | Birdeye Data Services is a high-performance data provider that delivers real-time, accurate, and comprehensive on-chain data across tokens, wallets, trades, and protocols. | - Startup/Projects get 30% OFF for first 6 months - Free access to our full Business Lite package (valued at $299) for teams participating in Hackathons or Base Batches during the program period. | Apply [here](https://docs.google.com/forms/d/e/1FAIpQLSfkv8JWR1WWq7Biqx5yyDvF6belUtdbR37mddludfu-boI34Q/viewform)

We will be in touch once the application has been reviewed. For any other inquiries, please reach out to BDS on Telegram: @birdeye_data. | | [Cantina](https://cantina.xyz/welcome) | Security | Cantina is the one-stop shop for the highest quality security researchers and solutions. Reduce the likelihood of hacks, time spent, and context lost. | 10% off all services including audits, audit competitions, pen-testing, architecture reviews, fuzzing/unit/e2e testing 50% off of bug bounty hosting for the first year | https://cantina.xyz/introduction/base-cantina | @@ -33,13 +33,13 @@ Thank you to all the teams supporting the Base ecosystem and its builders! If yo | [FailSafe](www.getfailsafe.com) | Infrastructure, CyberSecurity, Audits | FailSafe provides real-time blockchain risk monitoring and smart contract audit solutions for protocols, stablecoins, and digital asset platforms across global markets. | Get $3,000 off your first smart contract audit or monitoring subscription with FailSafe. Ideal for Base stablecoin issuers, or DeFi platforms looking to strengthen on-chain security and protect funds. | Email wui@getfailsafe.com with github repo of codebase for a quote on a security audit. Discount will be applied once a commercial contract is signed. | | [Fjord Foundry](https://www.fjordfoundry.com/) | Fundraising / Token Sale | Connecting innovative projects and community backers through on-chain capital formation, with over $1bn raised since 2021. | Free Premium Marketing | To claim this offer, simply tell us you discovered it through the Base Builder Services Hub when you contact Fjord. If your project passes our due‑diligence review and is selected as a launch partner, you’ll be eligible. | | [FLock.io](https://www.flock.io/) | AI | FLock.io is the first decentralized AI training platform combining Federated Learning and blockchain to enable secure, privacy-preserving model training. | Base ecosystem projects get up to 50% off Qwen tokens using FLock.io-trained models or other major Qwen variants, plus: 1 free FLock.io training task and 1hr free AI consultation. | Please fill out this [Google Form](https://forms.gle/N8We623NQdAppEj26) with your application and contract information.



FLock.io team will contact you once we receive your application. | -| [Flow](http://flowonbase.com) | FX, Ramping, Payments | Flow empowers projects with seamless FX, global payments, and local‐currency on/off-ramping — and offers its best pricing to those building or migrating onto Base. | For Base Builders, we offer 15% minimum discount on global ramping requirements & zero license fee for white label products. Further discounts available volume dependent. | Get market-leading FX, on/off-ramp, and global payment rates. We offer unmatched pricing that beats any verified competitor quote — book a consultation at flowonbase.com | +| [Flow](https://flowonbase.com) | FX, Ramping, Payments | Flow empowers projects with seamless FX, global payments, and local‐currency on/off-ramping — and offers its best pricing to those building or migrating onto Base. | For Base Builders, we offer 15% minimum discount on global ramping requirements & zero license fee for white label products. Further discounts available volume dependent. | Get market-leading FX, on/off-ramp, and global payment rates. We offer unmatched pricing that beats any verified competitor quote — book a consultation at flowonbase.com | | [GetBlock](getblock.io) | Infrastructure provider | GetBlock is a Web3 infrastructure provider that offers a suite of APIs and tools to help developers build and scale decentralized applications (dApps) on top of 75+ blockchain protocols. | 50% off the first month on all shared node plans | To redeem this offer, reach out via https://getblock.io/contact with your UID and the promo code Welcome Treat, mentioning that you are building on Base. | | [GrailPay](https://www.grailpay.com) | Authentication, Fraud, Account Validation | GrailPay authenticates bank accounts and stablecoin transactions for Base builders, enabling verified payment identities and safer fiat-to-onchain flows. | $1,500 in credits toward GrailPay’s authentication and verification APIs. | Submit your project details to support@grailpay.com. After verifying Base builder eligibility, we will provision $1,500 in authentication credits to your GrailPay account. | | [Hexens](Hexens.io) | Security | At Hexens, we provide security audits to protect the future of Web3. We directly secure $120B+ in assets, working with industry leaders like Lido, EigenLayer, LayerZero, 1inch, Ava Labs, and Polygon. | Hexens will provide a discount of 15% for smart contract audits and 10% for services like pentest’s, and social engineering. Full triage will be provided for our bug bounty [r.xyz] for 3 months. | Please send your audit request to alice.rigby@hexens.io or @alicerigby on Telegram. | | [Hypernative](https://www.hypernative.io/) | Security | Hypernative is the leading real-time security and threat prevention platform trusted by over 200 projects—including Ethena, Uniswap, Ethereum Foundation, Morpho, Chainlink, Solana, and Kraken. | Receive a discounted rate for the first year for Hypernative's real-time threat prevention platform. | Email marshall@hypernative.io to begin your trial and claim your offer. | | [Immunefi](https://immunefi.com/) | AI & Security | Immunefi — One Platform. Unified Security Operations. Complete Onchain Protection. Over $180B of user funds protected across 500+ protocols. | 15%+ discount on Immunefi Audits, Audit Competitions, Vulnerability Detection/PR Reviews, Onchain Monitoring/Threat Prevention, Cloud Based Formal Verification, Brand Protection and Bug Bounty. | Please fill in this [form](https://calendly.com/d/cwsd-82q-rpj), and our Sales Team will review your submission and contact you shortly. | -| [Meow](http://meow.com/) | Treasury Management & Yield | Meow helps web3 teams earn yield, send/receive USDC, and automate treasury via FDIC-insured accounts with free USDC transactions on Base—no wallets, prefunding, or exchange risk. | Only Base ecosystem projects (and select VC portfolios like a16z) get up to 3.5% interest on checking. Others get 0% and must use external funds for yield. | Sign up via https://app.meow.com/signup?referral=Base



Or list “Base Ecosystem” under “How did you hear about us?” during signup.



For intros, DM @dustinmeow on Telegram. | +| [Meow](https://meow.com/) | Treasury Management & Yield | Meow helps web3 teams earn yield, send/receive USDC, and automate treasury via FDIC-insured accounts with free USDC transactions on Base—no wallets, prefunding, or exchange risk. | Only Base ecosystem projects (and select VC portfolios like a16z) get up to 3.5% interest on checking. Others get 0% and must use external funds for yield. | Sign up via https://app.meow.com/signup?referral=Base



Or list “Base Ecosystem” under “How did you hear about us?” during signup.



For intros, DM @dustinmeow on Telegram. | | [Neynar](neynar.com) | Social and crypto infrastructure | Infrastructure to build easily in crypto and on social protocols like Farcaster. | 100% off for first month of Starter tier, only new customers are eligible. | Email team@neynar.com with what you're building on Base to get the coupon code | | [NodeOps](https://nodeops.network/) | Cloud & Infrastructure | NodeOps Cloud is a permissionless infrastructure platform that delivers the most affordable compute power on the market. | 500 USD NodeOps Cloud Credit per Project (No-Questions Asked) & 10,000 USD and above NodeOps Cloud Credit per Project (After validation) | Users must complete the BuildOnNodeOps Grant Form, and NodeOps’ BD team will contact them if their projects require assistance. Alternatively, projects can reach out to the NodeOps Team via business@nodeops.xyz.



[Application form](https://forms.zohopublic.in/parthnod1/form/BuildOnNodeOpsGrantProgram/formperma/A0j6q-ChMzEUldiqrQNDrkyk7iIaIwmb_6swORtbUqc) | | [Notion](https://www.notion.com) | AI, Productivity | The AI workspace that works for you. One place where teams find every answer, automate the busywork, and get projects done. | Startups / Projects get 6 months free of Notion Business with AI included. | To learn more and redeem the exclusive offer, visit https://ntn.so/base | @@ -73,7 +73,7 @@ Thank you to all the teams supporting the Base ecosystem and its builders! If yo | [Ethereal Labs](https://www.ethereallabs.io/) | Full Stack Crypto Development Agency | End-to-end Web3 engineering with a focus on bespoke smart-contract architecture, high-performance dApp development, and secure on-chain infrastructure, taking projects from concept to production-ready launch. | 10% discount on services and free initial consultation. | dev@ethereallabs.io, Telegram: [ethereallabs](https://t.me/ethereallabs), or X: [@ethereallabs_](https://x.com/ethereallabs_) | | [ForceField Digital](https://www.forcefield.digital/) | Marketing Agency | ForceField is the operating group and growth partner for Kenetic Capital and a leading venture capital in Web3 with over 300 investments. ForceField is a Web3-native growth partner that delivers real traction. | Base ecosystem members will receive a 20% discount. | info@forcefield.digital | | [Gloww](https://gloww.design) | Product Design, UX/UI, Branding, and Motion Design | Gloww gives Base builders hands-on product design support, working like an embedded founding designer. Focus is on shaping the product, polishing the UX, refining the visuals, and shipping high quality interfaces. | Happy to give anyone coming from Base services Hub a 20% off. ($3,000 min fee) | DM @akshitvrma on Telegram | -| [GMGM Media](http://gmgm.media/) | Video Editing | Podcast repurposing, TikToks, interviews, launch / hype videos. | No payment required upfront. | Message @GMGMMedia on TG | +| [GMGM Media](https://gmgm.media/) | Video Editing | Podcast repurposing, TikToks, interviews, launch / hype videos. | No payment required upfront. | Message @GMGMMedia on TG | | [HeimLabs](https://www.heimlabs.com/) | Fullstack Blockchain Development + Design + DevRel Agency | Delivers end-to-end blockchain engineering — full-stack dApp and miniapp development paired with high-quality DevRel content creation. | Free consultation. 20% off on the first order. Unlimited revisions on design (within reason). Bonus content in the DevRel package. ($250 min fee) | email: info@heimlabs.com or Telegram: [xhohenheim](https://t.me/xhohenheim) | | [High Agency](https://highagencydevrel.com/) | Developer relations, developer experience, developer onboarding | We make your Web3 product easier to understand, integrate, and build with. From improving documentation and onboarding to growing engaged communities and creating technical content, we ensure developers can adopt your technology seamlessly. | Free initial consultation where we will identify gaps in developer onboarding experience and points of improvement. | Telegram: @enjojoy | | [Ice Breaker TV](https://x.com/ice_breaker_tv) | Twitter Space Show Host | Twitter space / show / podcast / livestream hosting. | Open to discuss larger package deals for discounts / perks for multiple bookings. ($300 / hourly show min fee) | Telegram or Discord @ice_breaker_tv | @@ -83,10 +83,10 @@ Thank you to all the teams supporting the Base ecosystem and its builders! If yo | [MarcoV](https://dune.com/Marcov) | Dune Dashboard, Onchain Analysis | I provide onchain data analysis, build Dune dashboards, and write clear, actionable reports based on blockchain data. | 10% on hourly rate. | Telegram: @Marc0_V or X: [@marcov_91](https://x.com/marcov_91) | | [Memetic Design](https://memetic.design) | Product & Web Design | We help startups create memorable websites that stand out. We hate templated sites that feel the same – your product deserves a bespoke site that sells the what/why/how of your product story. Website design & dev, product design and dashboards, brand design & launch videos. | Free launch video along with every design project. | X: [@abnux](https://x.com/abnux) or Telegram: @abnux2 | | [pandajackson42](https://x.com/pandajackson42) | Data Analytics | Transform data into actionable decisions and compelling stories: from data dashboards, analytics, to product and GTM strategy execution. | Priority support for Base builders. | DM [pandajackson42](https://x.com/pandajackson42) | -| [Paperclip Labs](http://paperclip.xyz/) | Product Design and Development | Since 2021, we’ve helped leading crypto teams and protocols design, build, and ship better products. | Free consultation. | contact@paperclip.xyz | -| [Plus1000aura](http://plus1000aura.com/) | Creative Video Partner | We make brand films, launches, fundraise announcements for companies in AI and crypto. | 20% off on all videos. ($5,000 min fee) | [plus1000aura.com](http://plus1000aura.com/) | +| [Paperclip Labs](https://paperclip.xyz/) | Product Design and Development | Since 2021, we’ve helped leading crypto teams and protocols design, build, and ship better products. | Free consultation. | contact@paperclip.xyz | +| [Plus1000aura](https://plus1000aura.com/) | Creative Video Partner | We make brand films, launches, fundraise announcements for companies in AI and crypto. | 20% off on all videos. ($5,000 min fee) | [plus1000aura.com](https://plus1000aura.com/) | | [Rock'n'Block](https://rocknblock.io) | Development Services | Rock’n’Block is a Web3-native dev shop. 🚀 We build first-class Web3 products end-to-end—from research and UX/UI to development and maintenance. | 10% off Rock’n’Block development services + free initial consultation for Base builders. Redeem using promo code BASE10RNB. | Fill out the form at [rocknblock.io/#contact](https://rocknblock.io/#contact) (Include promo code BASE10RNB) | -| [Sealaunch Intelligence](http://sealaunch.xyz/) | Onchain Intelligence Advisory, Data Analytics, Custom Dune Dashboards | Onchain intelligence and strategic advisory for crypto companies. We conduct private research to drive growth and revenue decisions and create custom Dune Dashboards. | 15% discount with a minimum three-month engagement. | Fill out this [typeform](https://3spxelklbj0.typeform.com/to/NpNyMq98?utm_source=base) | +| [Sealaunch Intelligence](https://sealaunch.xyz/) | Onchain Intelligence Advisory, Data Analytics, Custom Dune Dashboards | Onchain intelligence and strategic advisory for crypto companies. We conduct private research to drive growth and revenue decisions and create custom Dune Dashboards. | 15% discount with a minimum three-month engagement. | Fill out this [typeform](https://3spxelklbj0.typeform.com/to/NpNyMq98?utm_source=base) | | [Spotlight Crypto](https://www.spotlightcrypto.xyz/) | Full Stack App Development | We build full stack apps on the frontier of crypto social, from ideation to design to smart contracts to GTM. | 15 mins free review / feedback sessions. | hello@spotlightcrypto.xyz | | [Tarun Thusu](https://tarunthusu.com/portfolio.pdf) | Product and Brand design | I’m a product and brand designer with over 6 years of experience, helping businesses turn ideas into beautiful and functional digital products. From brand identity to user-focused product design, I build visuals, systems, and experiences that make products feel premium, intuitive, and memorable. | 20% discount and fast delivery of work. | Telegram: @tarunth | -| [Vacuumlabs](http://www.vacuumlabs.com/) | Software house / Development + design studio | Dev studio with 13 years in Fintech and 7 years in Crypto, we can help augment teams with experienced devs who are top talent from Central Europe; or we can design build and test entire apps in end2end delivery. Our services range from building a neobank MOX for Standard Chartered, to building decentralized onchain apps. | 10% discount for Base ecosystem clients. (Rates 400-1000 EUR/MD based on seniority) | peter.hucik@vacuumlabs.com, TG: @hukusik, or TG: @PenguDamien | +| [Vacuumlabs](https://www.vacuumlabs.com/) | Software house / Development + design studio | Dev studio with 13 years in Fintech and 7 years in Crypto, we can help augment teams with experienced devs who are top talent from Central Europe; or we can design build and test entire apps in end2end delivery. Our services range from building a neobank MOX for Standard Chartered, to building decentralized onchain apps. | 10% discount for Base ecosystem clients. (Rates 400-1000 EUR/MD based on seniority) | peter.hucik@vacuumlabs.com, TG: @hukusik, or TG: @PenguDamien | diff --git a/docs/iframe-theme.js b/docs/iframe-theme.js index 35287274c..4501a8db7 100644 --- a/docs/iframe-theme.js +++ b/docs/iframe-theme.js @@ -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) { diff --git a/docs/learn/arrays/filtering-an-array-sbs.mdx b/docs/learn/arrays/filtering-an-array-sbs.mdx index 608f24782..813f286d5 100644 --- a/docs/learn/arrays/filtering-an-array-sbs.mdx +++ b/docs/learn/arrays/filtering-an-array-sbs.mdx @@ -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 } } ``` diff --git a/docs/learn/deployment-to-testnet/test-networks.mdx b/docs/learn/deployment-to-testnet/test-networks.mdx index 6b21c62af..a16deb240 100644 --- a/docs/learn/deployment-to-testnet/test-networks.mdx +++ b/docs/learn/deployment-to-testnet/test-networks.mdx @@ -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) -### 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. --- diff --git a/docs/learn/onchain-app-development/account-abstraction/account-abstraction-on-base-using-privy-and-the-base-paymaster.mdx b/docs/learn/onchain-app-development/account-abstraction/account-abstraction-on-base-using-privy-and-the-base-paymaster.mdx index 5f86a1aa9..d215b32c1 100644 --- a/docs/learn/onchain-app-development/account-abstraction/account-abstraction-on-base-using-privy-and-the-base-paymaster.mdx +++ b/docs/learn/onchain-app-development/account-abstraction/account-abstraction-on-base-using-privy-and-the-base-paymaster.mdx @@ -223,7 +223,7 @@ Note - to get an App ID, you'll need to request one and access it at [https://co #### Starting the App -Finally, run `yarn dev` and navigate to [http://localhost:3000] to see the starter application. +Finally, run `yarn dev` and navigate to [http://localhost:3000](http://localhost:3000) to see the starter application. ### Privy Login Walkthrough @@ -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]; ``` diff --git a/docs/learn/onchain-app-development/cross-chain/bridge-tokens-with-layerzero.mdx b/docs/learn/onchain-app-development/cross-chain/bridge-tokens-with-layerzero.mdx index 3fefab957..a2c408151 100644 --- a/docs/learn/onchain-app-development/cross-chain/bridge-tokens-with-layerzero.mdx +++ b/docs/learn/onchain-app-development/cross-chain/bridge-tokens-with-layerzero.mdx @@ -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 diff --git a/docs/learn/onchain-app-development/frontend-setup/introduction-to-providers.mdx b/docs/learn/onchain-app-development/frontend-setup/introduction-to-providers.mdx index 80ef241c9..cde989dcd 100644 --- a/docs/learn/onchain-app-development/frontend-setup/introduction-to-providers.mdx +++ b/docs/learn/onchain-app-development/frontend-setup/introduction-to-providers.mdx @@ -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'), }, }); ``` diff --git a/docs/learn/onchain-app-development/reading-and-displaying-data/useReadContract.mdx b/docs/learn/onchain-app-development/reading-and-displaying-data/useReadContract.mdx index 52e36ed11..9b465274d 100644 --- a/docs/learn/onchain-app-development/reading-and-displaying-data/useReadContract.mdx +++ b/docs/learn/onchain-app-development/reading-and-displaying-data/useReadContract.mdx @@ -98,7 +98,7 @@ export function IssueList() { return (

All Issues

-
{/* TODO: List each issue */}
+
{/* TODO: Map over issues array and render IssueItem components for each issue */}
); } diff --git a/docs/learn/onchain-app-development/writing-to-contracts/useSimulateContract.mdx b/docs/learn/onchain-app-development/writing-to-contracts/useSimulateContract.mdx index e16b217f8..d8a18cd9a 100644 --- a/docs/learn/onchain-app-development/writing-to-contracts/useSimulateContract.mdx +++ b/docs/learn/onchain-app-development/writing-to-contracts/useSimulateContract.mdx @@ -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]); diff --git a/docs/learn/token-development/erc-721-token/erc-721-sbs.mdx b/docs/learn/token-development/erc-721-token/erc-721-sbs.mdx index 4261f5988..e109d9cb9 100644 --- a/docs/learn/token-development/erc-721-token/erc-721-sbs.mdx +++ b/docs/learn/token-development/erc-721-token/erc-721-sbs.mdx @@ -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; } ``` diff --git a/docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx b/docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx index 6b3d9bbf9..b309d18e3 100644 --- a/docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx +++ b/docs/learn/token-development/nft-guides/complex-onchain-nfts.mdx @@ -1,4 +1,4 @@ ---- +--- title: 'Complex Onchain NFTs' slug: /complex-onchain-nfts description: A tutorial that teaches how to make complex nfts that are procedurally generated and have onchain metadata and images. @@ -153,7 +153,7 @@ function tokenURI(uint _tokenId) public view override returns (string memory) { abi.encodePacked( '{"name": "Land, Sea, and Sky #: ', Strings.toString(_tokenId), - '", "description": "Land, Sea, and Sky is a collection of generative art pieces stored entirely onchain.", "image": "data:image/SVG+xml;base64,', + '", "description": "Land, Sea, and Sky is a collection of generative art pieces stored entirely onchain.", "image": "data:image/svg+xml;base64,', "TODO: Build the SVG with the token ID as the seed", '"}' ) @@ -188,7 +188,7 @@ You can use the terminal: `echo -n '' | base64 --decode` Do so, and you'll get: ```text -{"name": "Land, Sea, and Sky #: 1", "description": "Land, Sea, and Sky is a collection of generative art pieces stored entirely onchain.", "image": "data:image/SVG+xml;base64,TODO: Build the SVG with the token ID as the seed"} +{"name": "Land, Sea, and Sky #: 1", "description": "Land, Sea, and Sky is a collection of generative art pieces stored entirely onchain.", "image": "data:image/svg+xml;base64,TODO: Build the SVG with the token ID as the seed"} ``` ## Building the SVG @@ -219,7 +219,7 @@ Depending on the tool you used to make the SVG, there may be unneeded extras you function render(uint _tokenId) public view returns (string memory) { return string( abi.encodePacked( - "", + "", // TODO: Add the clouds, // TODO: Add the sun, // TODO: Add the land, @@ -314,12 +314,12 @@ Replace `// TODO: Add the sea,` with a call to your external function. function render(uint _tokenId) public view returns (string memory) { return string( abi.encodePacked( - "", - // 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 "" ) ); @@ -359,7 +359,7 @@ string memory json = Base64.encode( abi.encodePacked( '{"name": "Land, Sea, and Sky #: ', Strings.toString(tokenId), - '", "description": "Land, Sea, and Sky is a collection of generative art pieces stored entirely onchain.", "image": "data:image/SVG+xml;base64,', + '", "description": "Land, Sea, and Sky is a collection of generative art pieces stored entirely onchain.", "image": "data:image/svg+xml;base64,', Base64.encode(bytes(SVGRenderer.render(tokenId))), '"}' ) @@ -627,7 +627,7 @@ contract SVGRenderer { function render(uint _tokenId) public view returns (string memory) { return string( abi.encodePacked( - "", + "", // TODO: Add the clouds, // TODO: Add the sun, // TODO: Add the land, @@ -683,7 +683,7 @@ contract LandRenderer { return string( abi.encodePacked( '', END ) @@ -742,7 +742,7 @@ constructor(address _seaRenderer, address _skyRenderer, address _landRenderer) { function render(uint _tokenId) public view returns (string memory) { return string( abi.encodePacked( - "", + "", skyRenderer.render(_tokenId), landRenderer.render(_tokenId), seaRenderer.render(), @@ -830,7 +830,7 @@ Make sure to put it after `skyRenderer` in the main `render` function! function render(uint _tokenId) public view returns (string memory) { return string( abi.encodePacked( - "", + "", skyRenderer.render(_tokenId), pickSunRenderer(_tokenId).render(), landRenderer.render(_tokenId), diff --git a/docs/learn/token-development/nft-guides/signature-mint.mdx b/docs/learn/token-development/nft-guides/signature-mint.mdx index 5e59dc165..42050788f 100644 --- a/docs/learn/token-development/nft-guides/signature-mint.mdx +++ b/docs/learn/token-development/nft-guides/signature-mint.mdx @@ -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; diff --git a/docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx b/docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx index 0b91ad887..2fca7632b 100644 --- a/docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx +++ b/docs/learn/token-development/nft-guides/simple-onchain-nfts.mdx @@ -70,7 +70,7 @@ import "@openzeppelin/contracts/utils/Strings.sol"; Next, `override` the functions for `_baseURI` and `tokenURI` to return base 64 encoded json metadata with the appropriate information: -```solidity +```solidity function _baseURI() internal pure override returns (string memory) { return "data:application/json;base64,"; } @@ -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 + // + Base64.encode(bytes(render(_tokenId))), '"}' ) ) diff --git a/docs/learn/token-development/nft-guides/thirdweb-unreal-nft-items.mdx b/docs/learn/token-development/nft-guides/thirdweb-unreal-nft-items.mdx index 5a2841112..891a5d581 100644 --- a/docs/learn/token-development/nft-guides/thirdweb-unreal-nft-items.mdx +++ b/docs/learn/token-development/nft-guides/thirdweb-unreal-nft-items.mdx @@ -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); diff --git a/docs/mini-apps/quality-and-publishing/overview.mdx b/docs/mini-apps/quality-and-publishing/overview.mdx index d33574a67..f2f1437f2 100644 --- a/docs/mini-apps/quality-and-publishing/overview.mdx +++ b/docs/mini-apps/quality-and-publishing/overview.mdx @@ -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. diff --git a/docs/mini-apps/quality-and-publishing/quality-bar.mdx b/docs/mini-apps/quality-and-publishing/quality-bar.mdx index 264aeab54..02fe7ae52 100644 --- a/docs/mini-apps/quality-and-publishing/quality-bar.mdx +++ b/docs/mini-apps/quality-and-publishing/quality-bar.mdx @@ -1,8 +1,24 @@ ---- +--- title: Quality Bar description: The standards your Mini App should meet before being featured --- -TODO: Draft the full Quality Bar article with performance, stability, UX, and instrumentation requirements. Link concrete acceptance criteria and example checks. +Apps featured in the Base ecosystem must meet high standards for performance, security, and user experience. + +## Performance & Stability +- **Load Time**: Must load interactive content within 3 seconds on LTE/4G. +- **Responsiveness**: No jank or frame drops during scroll or animations. +- **Stability**: Crash-free sessions > 99%. + +## UX & Design +- **Mobile First**: Layout must be optimized for mobile screens (responsive). +- **Navigation**: Users must be able to navigate back and close the app easily. +- **No Dead Ends**: Every screen must have a clear path forward or backward. +- **Visuals**: Use high-quality assets; no pixelated icons or unreadable text. + +## Security +- **Permissions**: Only request permissions (e.g., wallet address, location) when necessary. +- **Data Handling**: User data must be encrypted in transit and at rest. +- **Scams/Spam**: Apps promoting scams, rug pulls, or excessive spam will be banned immediately. diff --git a/docs/mini-apps/quality-and-publishing/submission-guidelines.mdx b/docs/mini-apps/quality-and-publishing/submission-guidelines.mdx index cc9cd5ea6..75f2ee342 100644 --- a/docs/mini-apps/quality-and-publishing/submission-guidelines.mdx +++ b/docs/mini-apps/quality-and-publishing/submission-guidelines.mdx @@ -1,8 +1,38 @@ ---- +--- title: Submission Guidelines description: Assets and information required to submit your Mini App for featuring --- -TODO: Define required assets (icons, hero, screenshots), URLs, manifest checks, and contact path for submission. +## Required Information + +Before submitting your Mini App, ensure you have the following ready. + +### 1. Metadata +- **App Name**: Clear, concise name (max 30 chars). +- **Short Description**: One-line value proposition (max 80 chars). +- **Full Description**: Detailed overview of features and benefits (Markdown supported). +- **Category**: Select the primary category (e.g., DeFi, Social, Gaming, Tooling). + +### 2. Assets +- **App Icon**: High-res square image (1024x1024px, PNG/JPG). Must be legible at small sizes. +- **Splash Screen**: + * **Logo**: Transparent background PNG (512x512px). + * **Background Color**: Hex code (e.g., `#0052FF`). +- **Screenshots**: at least 3 mobile screenshots (1080x1920px) demonstrating core flows. + +### 3. Links +- **App URL**: The direct link to your Mini App (must support deep linking). +- **Terms of Service**: Publicly accessible URL. +- **Privacy Policy**: Publicly accessible URL. + +### 4. Support +- **Support Email**: Public contact for user issues. +- **Support & Community URL**: Discord, Telegram, or Help Center link. + +## Submission Checklist +- [ ] App loads within 3 seconds on 4G networks. +- [ ] Wallet connection works seamlessly (Coinbase Wallet, MetaMask, etc.). +- [ ] No broken links or "Coming Soon" placeholders in core flows. +- [ ] Dark mode support is implemented (optional but recommended). diff --git a/docs/mini-apps/quickstart/building-for-the-base-app.mdx b/docs/mini-apps/quickstart/building-for-the-base-app.mdx index 86bd1bcf4..d29a53fcd 100644 --- a/docs/mini-apps/quickstart/building-for-the-base-app.mdx +++ b/docs/mini-apps/quickstart/building-for-the-base-app.mdx @@ -1,4 +1,4 @@ ---- +--- title: "Building for The Base App" description: "People use apps to have fun, learn, earn, or connect. Your mini app should focus on **one core need** and do it exceptionally well." --- @@ -8,11 +8,11 @@ The best apps are **simple, focused, and easy to understand.** -* What’s the **one thing** my app does really well? +- What’s the **one thing** my app does really well? -* Why would someone **use it every day**? +- Why would someone **use it every day**? -* Why and when would someone **share it with a friend**? +- Why and when would someone **share it with a friend**? @@ -23,15 +23,15 @@ Base users are social, onchain-native, and interested in **creating, earning, tr -* Help people **earn** (e.g. rewards, yield, creator income) +- Help people **earn** (e.g. rewards, yield, creator income) -* Help people **create** (e.g. minting, designing, storytelling) +- Help people **create** (e.g. minting, designing, storytelling) -* Help people **have fun** (games, collectibles, quizzes, social experiences with onchain elements) +- Help people **have fun** (games, collectibles, quizzes, social experiences with onchain elements) -* Are **simple,** **easy and satisfying** to use +- Are **simple,** **easy and satisfying** to use -* Have **low friction onboarding** — avoid: +- Have **low friction onboarding** — avoid: * Collecting personal info (address, phone number, etc.) @@ -41,7 +41,7 @@ Base users are social, onchain-native, and interested in **creating, earning, tr -We’re especially excited about mini apps that make group chats more fun, functional, or rewarding — from games with onchain buy-ins, to tools like dinner-bill splitting with USDC. +We’re especially excited about mini apps that make group chats more fun, functional, or rewarding — from games with onchain buy-ins, to tools like dinner-bill splitting with USDC. @@ -53,4 +53,4 @@ When building mini apps for the Base app, follow the [Featured Guidelines](/mini - \ No newline at end of file + diff --git a/docs/mini-apps/quickstart/create-new-miniapp.mdx b/docs/mini-apps/quickstart/create-new-miniapp.mdx index 11d722589..59e58af1e 100644 --- a/docs/mini-apps/quickstart/create-new-miniapp.mdx +++ b/docs/mini-apps/quickstart/create-new-miniapp.mdx @@ -1,12 +1,12 @@ ---- +--- title: Create a Mini App description: Quickly create a mini app, sign a manifest, and publish to the Base app. --- **Prerequisites** -* Base app account -* [Vercel](https://vercel.com/) account for hosting the application +- Base app account +- [Vercel](https://vercel.com/) account for hosting the application **Prerequisites** -* You have an existing web app -* You have a Base app account +- You have an existing web app +- You have a Base app account diff --git a/docs/mini-apps/resources/design-resources.mdx b/docs/mini-apps/resources/design-resources.mdx index 1dd8a617e..7de9f4345 100644 --- a/docs/mini-apps/resources/design-resources.mdx +++ b/docs/mini-apps/resources/design-resources.mdx @@ -1,60 +1,60 @@ -> Curated collection of design tools, inspiration, and resources for building exceptional mini apps +> Curated collection of design tools, inspiration, and resources for building exceptional mini apps ### UI Inspiration & Design Patterns -* **[Design spec](/images/miniapps/miniapp-design-spec.png)** - See how your mini app is displayed in the Base app -* **[Mobbin](https://mobbin.com/)** - Comprehensive mobile app design patterns and screenshots -* **[Dribbble](https://dribbble.com/)** - Creative design community and inspiration -* **[Pinterest](https://pinterest.com/)** - Visual discovery and inspiration +- **[Design spec](/images/miniapps/miniapp-design-spec.png)** - See how your mini app is displayed in the Base app +- **[Mobbin](https://mobbin.com/)** - Comprehensive mobile app design patterns and screenshots +- **[Dribbble](https://dribbble.com/)** - Creative design community and inspiration +- **[Pinterest](https://pinterest.com/)** - Visual discovery and inspiration ### Design Systems & Component Libraries -* **[Base Brand Guidelines](https://www.base.org/brand)** - Brand standards and assets -* **[Material Design](https://material.io/design)** - Google's design system -* **[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)** - Apple's design principles +- **[Base Brand Guidelines](https://www.base.org/brand)** - Brand standards and assets +- **[Material Design](https://material.io/design)** - Google's design system +- **[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)** - Apple's design principles ### Prototyping & Design -* **[Figma](https://figma.com/)** - Collaborative interface design tool -* **[Adobe XD](https://www.adobe.com/products/xd.html)** - UI/UX design and prototyping +- **[Figma](https://figma.com/)** - Collaborative interface design tool +- **[Adobe XD](https://www.adobe.com/products/xd.html)** - UI/UX design and prototyping ### Colors -* **[Coolors](https://coolors.co/)** - Color palette generator -* **[Adobe Color](https://color.adobe.com/)** - Color wheel and palette creator -* **[WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)** - Accessibility testing +- **[Coolors](https://coolors.co/)** - Color palette generator +- **[Adobe Color](https://color.adobe.com/)** - Color wheel and palette creator +- **[WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)** - Accessibility testing ### Typography -* **[Google Fonts](https://fonts.google.com/)** - Free web fonts -* **[Font Pair](https://www.fontpair.co/)** - Font pairing suggestions -* **[WhatTheFont](https://www.myfonts.com/WhatTheFont/)** - Font identification tool +- **[Google Fonts](https://fonts.google.com/)** - Free web fonts +- **[Font Pair](https://www.fontpair.co/)** - Font pairing suggestions +- **[WhatTheFont](https://www.myfonts.com/WhatTheFont/)** - Font identification tool ### Icon Libraries -* **[Heroicons](https://heroicons.com/)** - Beautiful hand-crafted SVG icons -* **[Lucide](https://lucide.dev/)** - Beautiful & consistent icon toolkit -* **[Feather Icons](https://feathericons.com/)** - Simply beautiful open source icons -* **[Iconify](https://iconify.design/)** - Unified icon framework +- **[Heroicons](https://heroicons.com/)** - Beautiful hand-crafted SVG icons +- **[Lucide](https://lucide.dev/)** - Beautiful & consistent icon toolkit +- **[Feather Icons](https://feathericons.com/)** - Simply beautiful open source icons +- **[Iconify](https://iconify.design/)** - Unified icon framework ### Illustrations & Graphics -* **[Undraw](https://undraw.co/)** - Open source illustrations -* **[Humaaans](https://www.humaaans.com/)** - Mix-and-match illustration library -* **[Open Peeps](https://www.openpeeps.com/)** - Hand-drawn illustration library -* **[Storyset](https://storyset.com/)** - Free animated illustrations -* **[Freepik](https://www.freepik.com/)** - Graphic resources and illustrations +- **[Undraw](https://undraw.co/)** - Open source illustrations +- **[Humaaans](https://www.humaaans.com/)** - Mix-and-match illustration library +- **[Open Peeps](https://www.openpeeps.com/)** - Hand-drawn illustration library +- **[Storyset](https://storyset.com/)** - Free animated illustrations +- **[Freepik](https://www.freepik.com/)** - Graphic resources and illustrations ### Photos -* **[Unsplash](https://unsplash.com/)** - Free high-resolution photos -* **[Pexels](https://www.pexels.com/)** - Free stock photos and videos +- **[Unsplash](https://unsplash.com/)** - Free high-resolution photos +- **[Pexels](https://www.pexels.com/)** - Free stock photos and videos ### Development & Code Resources -* **[Shadcn](https://ui.shadcn.com/docs)** - Beautiful, accessible components with open code -* **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework -* **[Framer Motion](https://www.framer.com/motion/)** - Production-ready motion library -* **[Lottie](https://lottiefiles.com/)** - Lightweight animations +- **[Shadcn](https://ui.shadcn.com/docs)** - Beautiful, accessible components with open code +- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework +- **[Framer Motion](https://www.framer.com/motion/)** - Production-ready motion library +- **[Lottie](https://lottiefiles.com/)** - Lightweight animations diff --git a/docs/mini-apps/technical-guides/neynar-notifications.mdx b/docs/mini-apps/technical-guides/neynar-notifications.mdx index 09ca618d1..0e5f8c990 100644 --- a/docs/mini-apps/technical-guides/neynar-notifications.mdx +++ b/docs/mini-apps/technical-guides/neynar-notifications.mdx @@ -1,4 +1,4 @@ ---- +--- title: Send Notifications (Neynar) description: Learn how to engage users through in-app notifications using Neynar --- @@ -12,7 +12,7 @@ If your app doesn't have a backend, if you're already using Neynar, or if you wo Neynar's solution allows you to: - Manage notification infrastructure (tokens, permissions, batching) in a single UI -- Send via API or Neynar developer portal UI—no code required +- Send via API or Neynar developer portal UI—no code required - Track notification performance with built-in analytics - Target specific user cohorts with advanced segmentation @@ -200,7 +200,7 @@ const filters = { // Define notification content const notification = { - title: "🪐", + title: "🪐", body: "It's time to savor farcaster", target_url: "https://your-miniapp-domain.com/notification-destination", }; diff --git a/docs/mini-apps/troubleshooting/error-handling.mdx b/docs/mini-apps/troubleshooting/error-handling.mdx index afe0e4503..54edec2b5 100644 --- a/docs/mini-apps/troubleshooting/error-handling.mdx +++ b/docs/mini-apps/troubleshooting/error-handling.mdx @@ -1,8 +1,30 @@ ---- +--- title: Error Handling description: Patterns for surfacing and resolving common runtime errors in Mini Apps --- -TODO: Provide guidance on handling errors from hooks, network issues, and manifest/metadata failures. +Handling errors gracefully is crucial for retaining users. Here are best practices for common scenarios. + +## Common Scenarios + +### 1. Network & API Failures +Mobile networks are unreliable. Always assume API calls might fail. +- **Do**: Show a non-blocking toast or snackbar notification ("Network error, retrying..."). +- **Don't**: Crash the app or show a blank white screen. +- **Retry Logic**: Implement exponential backoff for critical data fetches. + +### 2. Wallet Interactions +Users may reject transaction requests or signature prompts. +- **User Rejection**: Detect code `4001` (User Rejected Request) and handle it silently or with a gentle prompt ("Transaction cancelled"). +- **Insufficient Funds**: Check balances *before* promoting a transaction to warn users early. + +### 3. Image & Media Loading +- **Fallbacks**: Always provide a placeholder image while media loads. +- **Broken URLs**: Use the `onerror` event to replace broken images with a default asset. + +## Metadata & Manifest Errors +If your Mini App fails to load in the Farcaster client, check your **Frame Manifest** or **Meta Tags**. +- Use the [Warpcast Frame Validator](https://warpcast.com/~/developers/frames) to check your metatags. +- Ensure your `fc:frame:image` is less than 10MB and has a valid aspect ratio (1.91:1 or 1:1). diff --git a/docs/mini-apps/troubleshooting/testing.mdx b/docs/mini-apps/troubleshooting/testing.mdx index f1f3591eb..8fb8f78f1 100644 --- a/docs/mini-apps/troubleshooting/testing.mdx +++ b/docs/mini-apps/troubleshooting/testing.mdx @@ -1,4 +1,4 @@ ---- +--- title: Test Your App description: Confidently test your app before going live in the Base app --- @@ -16,13 +16,13 @@ Your browser's console won't show Base-specific logs. Base.dev console provides ### Best for * Validating correctness of manifest files and required fields -* Using an interactive console for viewing logs -* Signing your app's manifest +- Using an interactive console for viewing logs +- Signing your app's manifest ### Not ideal for testing -* Full look and feel on your app in Base app -* Chat and Base app specific functionality -* User context functionality +- Full look and feel on your app in Base app +- Chat and Base app specific functionality +- User context functionality ### Steps @@ -37,15 +37,15 @@ Preview how your app would function directly using the Base App. ### Best for -* Keeping your app private from the feed -* Preview in-app functionality (UX) -* Chat-based applications -* Apps that require user and Base app context +- Keeping your app private from the feed +- Preview in-app functionality (UX) +- Chat-based applications +- Apps that require user and Base app context ### Not ideal for testing -* Logs -* Validating correctness of manifest file +- Logs +- Validating correctness of manifest file ### Steps @@ -60,14 +60,14 @@ Preview your app by posting the URL directly in the Base app feed or by sending ### Best for -* Requesting feedback from the public -* Apps that require user and Base app context -* Testing edge cases +- Requesting feedback from the public +- Apps that require user and Base app context +- Testing edge cases ### Not ideal for -* Viewing logs -* Validating correctness of manifest file +- Viewing logs +- Validating correctness of manifest file ### Steps diff --git a/docs/onchainkit/buy/types.mdx b/docs/onchainkit/buy/types.mdx index 96131eedc..782794df9 100644 --- a/docs/onchainkit/buy/types.mdx +++ b/docs/onchainkit/buy/types.mdx @@ -1,4 +1,4 @@ ---- +--- title: Buy components & utilities Types sidebarTitle: Buy description: Glossary of Types in Buy components & utilities. diff --git a/docs/onchainkit/fund/fetch-onramp-transaction-status.mdx b/docs/onchainkit/fund/fetch-onramp-transaction-status.mdx index 1ff75d67f..674bfd21d 100644 --- a/docs/onchainkit/fund/fetch-onramp-transaction-status.mdx +++ b/docs/onchainkit/fund/fetch-onramp-transaction-status.mdx @@ -1,4 +1,4 @@ ---- +--- title: fetchOnrampTransactionStatus --- @@ -65,3 +65,5 @@ const transactions = await fetchOnrampTransactionStatus({ See [`OnrampTransactionStatusResponseData`](/onchainkit/fund/types#onramptransactionstatusresponsedata) for full response type details. + + diff --git a/docs/onchainkit/latest/components/connected/connected.mdx b/docs/onchainkit/latest/components/connected/connected.mdx index d251de587..8ae71716d 100644 --- a/docs/onchainkit/latest/components/connected/connected.mdx +++ b/docs/onchainkit/latest/components/connected/connected.mdx @@ -1,4 +1,4 @@ ---- +--- title: "Connected" --- @@ -197,3 +197,5 @@ type ConnectedBaseProps = { ``` When no `fallback` prop is provided, the component accepts all props that `ConnectWallet` accepts as passthrough props. + + diff --git a/docs/onchainkit/latest/components/fund/fund-button.mdx b/docs/onchainkit/latest/components/fund/fund-button.mdx index 4b03c0da2..e8599542f 100644 --- a/docs/onchainkit/latest/components/fund/fund-button.mdx +++ b/docs/onchainkit/latest/components/fund/fund-button.mdx @@ -1,4 +1,4 @@ ---- +--- title: sidebarTitle: description: The `` component provides a way for users to fund their wallet without leaving your app. @@ -224,3 +224,5 @@ export type FundButtonRenderParams = { ## Related Components - [``](/onchainkit/fund/fund-card) + + diff --git a/docs/onchainkit/latest/components/mint/nft-card.mdx b/docs/onchainkit/latest/components/mint/nft-card.mdx index 8721e1fe6..dc128e976 100644 --- a/docs/onchainkit/latest/components/mint/nft-card.mdx +++ b/docs/onchainkit/latest/components/mint/nft-card.mdx @@ -1,4 +1,4 @@ ---- +--- title: "NFTCard" --- @@ -323,3 +323,5 @@ type NFTCardProps = { }; ``` + + diff --git a/docs/onchainkit/latest/getting-started/overview.mdx b/docs/onchainkit/latest/getting-started/overview.mdx index 88ccbdee9..d38f9ceef 100644 --- a/docs/onchainkit/latest/getting-started/overview.mdx +++ b/docs/onchainkit/latest/getting-started/overview.mdx @@ -1,4 +1,4 @@ ---- +--- title: "Overview" --- diff --git a/docs/onchainkit/latest/utilities/fund/fetch-onramp-config.mdx b/docs/onchainkit/latest/utilities/fund/fetch-onramp-config.mdx index fa2b313a4..20573cfd2 100644 --- a/docs/onchainkit/latest/utilities/fund/fetch-onramp-config.mdx +++ b/docs/onchainkit/latest/utilities/fund/fetch-onramp-config.mdx @@ -1,4 +1,4 @@ ---- +--- title: fetchOnrampConfig --- @@ -71,3 +71,5 @@ type OnrampPaymentMethod = { id: string; }; ``` + + diff --git a/docs/onchainkit/latest/utilities/fund/fetch-onramp-options.mdx b/docs/onchainkit/latest/utilities/fund/fetch-onramp-options.mdx index 2e6fc4291..1baf8c076 100644 --- a/docs/onchainkit/latest/utilities/fund/fetch-onramp-options.mdx +++ b/docs/onchainkit/latest/utilities/fund/fetch-onramp-options.mdx @@ -1,4 +1,4 @@ ---- +--- title: fetchOnrampOptions --- @@ -53,13 +53,13 @@ apiKey: 'your-api-key', // Required when using without OnchainKitProvider or in { /** * ISO 3166-1 two-letter country code string representing - * the purchasing user’s country of residence, e.g., US. + * the purchasing user’s country of residence, e.g., US. */ country: string; /** * ISO 3166-2 two-letter country subdivision code representing - * the purchasing user’s subdivision of residence within their country, - * e.g. NY. Required if the country=“US” because certain states (e.g., NY) + * the purchasing user’s subdivision of residence within their country, + * e.g. NY. Required if the country=“US” because certain states (e.g., NY) * have state specific asset restrictions. */ subdivision?: string; @@ -116,3 +116,5 @@ type OnrampNetwork = { contractAddress: string; }; ``` + + diff --git a/docs/onchainkit/latest/utilities/fund/fetch-onramp-quote.mdx b/docs/onchainkit/latest/utilities/fund/fetch-onramp-quote.mdx index f76867461..4e6927396 100644 --- a/docs/onchainkit/latest/utilities/fund/fetch-onramp-quote.mdx +++ b/docs/onchainkit/latest/utilities/fund/fetch-onramp-quote.mdx @@ -1,4 +1,4 @@ ---- +--- title: fetchOnrampQuote --- @@ -149,3 +149,5 @@ type OnrampAmount = { currency: string; }; ``` + + diff --git a/docs/onchainkit/latest/utilities/fund/fetch-onramp-transaction-status.mdx b/docs/onchainkit/latest/utilities/fund/fetch-onramp-transaction-status.mdx index dff8e796a..0d243df89 100644 --- a/docs/onchainkit/latest/utilities/fund/fetch-onramp-transaction-status.mdx +++ b/docs/onchainkit/latest/utilities/fund/fetch-onramp-transaction-status.mdx @@ -1,4 +1,4 @@ ---- +--- title: fetchOnrampTransactionStatus --- @@ -101,3 +101,5 @@ type OnrampAmount = { currency: string; }; ``` + + diff --git a/docs/onchainkit/token/token-select-dropdown.mdx b/docs/onchainkit/token/token-select-dropdown.mdx index 820783f83..4ccdf3e85 100644 --- a/docs/onchainkit/token/token-select-dropdown.mdx +++ b/docs/onchainkit/token/token-select-dropdown.mdx @@ -1,4 +1,4 @@ ---- +--- title: "``" --- diff --git a/docs/onchainkit/token/types.mdx b/docs/onchainkit/token/types.mdx index 8523b5692..803f2a84f 100644 --- a/docs/onchainkit/token/types.mdx +++ b/docs/onchainkit/token/types.mdx @@ -1,4 +1,4 @@ ---- +--- title: Token components & utilities Types description: Glossary of Types in Token components & utilities. sidebarTitle: Token diff --git a/docs/onchainkit/wallet/wallet-island.mdx b/docs/onchainkit/wallet/wallet-island.mdx index bdf02e022..53ceb35b4 100644 --- a/docs/onchainkit/wallet/wallet-island.mdx +++ b/docs/onchainkit/wallet/wallet-island.mdx @@ -1,5 +1,5 @@ ---- -title: · OnchainKit +--- +title: · OnchainKit sidebarTitle: description: The `` component provides an advanced Wallet interface for users. --- diff --git a/docs/onchainkit/wallet/wallet-modal.mdx b/docs/onchainkit/wallet/wallet-modal.mdx index e965ced61..73b3989c9 100644 --- a/docs/onchainkit/wallet/wallet-modal.mdx +++ b/docs/onchainkit/wallet/wallet-modal.mdx @@ -1,5 +1,5 @@ ---- -title: Wallet Modal · OnchainKit +--- +title: Wallet Modal · OnchainKit sidebarTitle: Wallet Modal description: The Wallet Modal provides users with multiple wallet connection options in a polished interface. --- diff --git a/docs/onchainkit/wallet/wallet.mdx b/docs/onchainkit/wallet/wallet.mdx index baec3f6e2..7ef03d831 100644 --- a/docs/onchainkit/wallet/wallet.mdx +++ b/docs/onchainkit/wallet/wallet.mdx @@ -1,5 +1,5 @@ ---- -title: · OnchainKit +--- +title: · OnchainKit sidebarTitle: description: The `` components provide an interface for users to connect their Smart Wallet with their identity information like Basename and ETH balance. --- diff --git a/docs/snippets/danger.mdx b/docs/snippets/danger.mdx index 53fbdc2f0..0763f2d58 100644 --- a/docs/snippets/danger.mdx +++ b/docs/snippets/danger.mdx @@ -1,4 +1,4 @@ -{/* How to use: +{/* How to use: After the page's metadata: import { Danger } from "/snippets/danger.mdx"; @@ -11,7 +11,7 @@ Content here export const Danger = ({ children }) => { return ( -
+
{ viewBox="0 0 14 14" fill="rgb(239, 68, 68)" xmlns="http://www.w3.org/2000/svg" - class="w-4 h-4 text-sky-500" + className="w-4 h-4 text-sky-500" aria-label="Danger" > {
); -} \ No newline at end of file +} diff --git a/docs/snippets/prompt-library.mdx b/docs/snippets/prompt-library.mdx index d81a2c478..fe2f0a178 100644 --- a/docs/snippets/prompt-library.mdx +++ b/docs/snippets/prompt-library.mdx @@ -1,4 +1,4 @@ -This guide helps developers leverage AI tools effectively in their coding workflow. Whether you're using Cursor, GitHub Copilot, or other AI assistants, these strategies will help you get better results and integrate AI smoothly into your development process. +This guide helps developers leverage AI tools effectively in their coding workflow. Whether you're using Cursor, GitHub Copilot, or other AI assistants, these strategies will help you get better results and integrate AI smoothly into your development process. ## Understanding Context Windows @@ -65,8 +65,8 @@ Create a detailed instructions.md file for my project with the following section ## Effective Prompting Strategies **Be Specific and Direct** Start with clear commands and be specific about what you want. AI tools respond best to clear, direct instructions. -Example: ❌ "Help me with my code" - ✅ "Refactor this authentication function to use async/await instead of nested then() calls" +Example: ❌ "Help me with my code" + ✅ "Refactor this authentication function to use async/await instead of nested then() calls" **Provide Context for Complex Tasks** diff --git a/docs/terms-of-service.mdx b/docs/terms-of-service.mdx index 55654f5cf..667ab4a9e 100644 --- a/docs/terms-of-service.mdx +++ b/docs/terms-of-service.mdx @@ -1,4 +1,4 @@ ---- +--- title: Terms of Service slug: /terms-of-service description: The Terms of Service for using Base, a layer-two optimistic rollup on Ethereum. @@ -8,21 +8,21 @@ hide_table_of_contents: true **Sequencer, Testnet, Basenames Interface, Base.dev Terms** ***Last Updated: December 4, 2025*** -We’re excited you’re interested in Base, a layer-two optimistic rollup on the Ethereum public blockchain. While we do not control Base, these Terms of Service (“Terms”) constitute a legally binding contract made between you and Coinbase Technologies, Inc. (“Coinbase,” “we,” or “us”) that governs your access to and use of the Coinbase Sequencer, Base Testnet, Basenames Interface, Basenames Profile Pages, and Base.dev, each of which is defined below (collectively, the “Services”). By using the Services in any way, you agree to be bound by these Terms. If you do not accept the terms and conditions of these Terms, you are not permitted to access or otherwise use the Services. +We’re excited you’re interested in Base, a layer-two optimistic rollup on the Ethereum public blockchain. While we do not control Base, these Terms of Service (“Terms”) constitute a legally binding contract made between you and Coinbase Technologies, Inc. (“Coinbase,” “we,” or “us”) that governs your access to and use of the Coinbase Sequencer, Base Testnet, Basenames Interface, Basenames Profile Pages, and Base.dev, each of which is defined below (collectively, the “Services”). By using the Services in any way, you agree to be bound by these Terms. If you do not accept the terms and conditions of these Terms, you are not permitted to access or otherwise use the Services. -**BEFORE WE INCLUDE ANY OTHER DETAILS, WE WANT TO GIVE YOU NOTICE OF SOMETHING UP FRONT: BY AGREEING TO THESE TERMS, YOU AND WE AGREE TO RESOLVE ANY DISPUTES WE MAY HAVE WITH EACH OTHER VIA BINDING ARBITRATION OR IN SMALL CLAIMS COURT (INSTEAD OF A COURT OF GENERAL JURISDICTION), AND YOU AGREE TO DO SO AS AN INDIVIDUAL (INSTEAD OF, FOR EXAMPLE, AS A REPRESENTATIVE OR MEMBER OF A CLASS IN A CLASS ACTION). TO THE EXTENT THAT THE LAW ALLOWS, YOU ALSO WAIVE YOUR RIGHT TO A TRIAL BY JURY. FOR MORE INFORMATION, SEE OUR [ARBITRATION AGREEMENT IN APPENDIX 1 BELOW](#bookmark=id.9q2273ceqaa4) “SEQUENCER, TESTNET, BASENAMES INTERFACE, AND BASE.DEV TERMS ARBITRATION AGREEMENT.”** +**BEFORE WE INCLUDE ANY OTHER DETAILS, WE WANT TO GIVE YOU NOTICE OF SOMETHING UP FRONT: BY AGREEING TO THESE TERMS, YOU AND WE AGREE TO RESOLVE ANY DISPUTES WE MAY HAVE WITH EACH OTHER VIA BINDING ARBITRATION OR IN SMALL CLAIMS COURT (INSTEAD OF A COURT OF GENERAL JURISDICTION), AND YOU AGREE TO DO SO AS AN INDIVIDUAL (INSTEAD OF, FOR EXAMPLE, AS A REPRESENTATIVE OR MEMBER OF A CLASS IN A CLASS ACTION). TO THE EXTENT THAT THE LAW ALLOWS, YOU ALSO WAIVE YOUR RIGHT TO A TRIAL BY JURY. FOR MORE INFORMATION, SEE OUR [ARBITRATION AGREEMENT IN APPENDIX 1 BELOW](#bookmark=id.9q2273ceqaa4) “SEQUENCER, TESTNET, BASENAMES INTERFACE, AND BASE.DEV TERMS ARBITRATION AGREEMENT.”** 1. # **Base and Bridging Smart Contracts** -The Base protocol (“Base”) is an open source, optimistic rollup protocol that operates with the Ethereum blockchain. The Base protocol includes protocol smart contracts that allow you to “bridge” (i.e., lock assets on one blockchain protocol and replicate them on another protocol) digital assets between Ethereum, Base, and other compatible networks (e.g. Solana) (“Bridging Smart Contracts”). **Neither Base, the Bridging Smart Contracts, nor any associated cross-chain oracle, verification services or other infrastructure (each an “Independent Infrastructure Provider”) are part of the Services.** Independent Infrastructure Providers operate through open source software such as the OP Stack and other publicly available codebases, including software approved by a decentralized, representative body of Optimism governance (the “Optimism Collective”), and a set of smart contracts that are not controlled by Coinbase (even if Coinbase contributed to their initial development or verification infrastructure). Coinbase does not control what third parties may build on Base, the activity of such parties, any user transacting on Base, or any data stored on Base itself, and Coinbase does not take possession, custody, or control of any virtual currency or other digital asset on Base or bridged through the Bridging Smart Contracts, unless expressly stated in a written contract signed by Coinbase. +The Base protocol (“Base”) is an open source, optimistic rollup protocol that operates with the Ethereum blockchain. The Base protocol includes protocol smart contracts that allow you to “bridge” (i.e., lock assets on one blockchain protocol and replicate them on another protocol) digital assets between Ethereum, Base, and other compatible networks (e.g. Solana) (“Bridging Smart Contracts”). **Neither Base, the Bridging Smart Contracts, nor any associated cross-chain oracle, verification services or other infrastructure (each an “Independent Infrastructure Provider”) are part of the Services.** Independent Infrastructure Providers operate through open source software such as the OP Stack and other publicly available codebases, including software approved by a decentralized, representative body of Optimism governance (the “Optimism Collective”), and a set of smart contracts that are not controlled by Coinbase (even if Coinbase contributed to their initial development or verification infrastructure). Coinbase does not control what third parties may build on Base, the activity of such parties, any user transacting on Base, or any data stored on Base itself, and Coinbase does not take possession, custody, or control of any virtual currency or other digital asset on Base or bridged through the Bridging Smart Contracts, unless expressly stated in a written contract signed by Coinbase. -Coinbase controls only its own verification key and does not control or operate the keys, signatures, smart contracts, or off-chain infrastructure maintained by any Independent Infrastructure Provider. Coinbase’s permissions are non-custodial and limited to protocol maintenance. +Coinbase controls only its own verification key and does not control or operate the keys, signatures, smart contracts, or off-chain infrastructure maintained by any Independent Infrastructure Provider. Coinbase’s permissions are non-custodial and limited to protocol maintenance. **You acknowledge and agree that Coinbase makes no representations or warranties with respect to Base or the Bridging Smart Contracts, and that, if you use Base or the Bridging Smart Contracts, you do so at your own risk.** 2. # **Basenames** -Basenames is an open source blockchain-based naming protocol that maintains a registry of all domains and subdomains on Base through a series of smart contracts deployed on Base. Basenames is not part of the Services. Users may, through interacting with the Basenames, search such registry, register domains and subdomains and manage their registered names, including by adding metadata and other information (e.g., URLs) to the corresponding text records on the Basenames smart contract (such metadata and other information, the “Basename Profile Information”). The Basenames interface located at https://base.org/names (the “Basenames Interface”) is one, but not the exclusive, means of accessing Basenames. You are responsible for conducting your own diligence on other interfaces enabling you to access Basenames to understand the fees and risks that they present. +Basenames is an open source blockchain-based naming protocol that maintains a registry of all domains and subdomains on Base through a series of smart contracts deployed on Base. Basenames is not part of the Services. Users may, through interacting with the Basenames, search such registry, register domains and subdomains and manage their registered names, including by adding metadata and other information (e.g., URLs) to the corresponding text records on the Basenames smart contract (such metadata and other information, the “Basename Profile Information”). The Basenames interface located at https://base.org/names (the “Basenames Interface”) is one, but not the exclusive, means of accessing Basenames. You are responsible for conducting your own diligence on other interfaces enabling you to access Basenames to understand the fees and risks that they present. You understand that anyone can register and own a domain name (and its subdomains) that is not already registered on the registry maintained by Basenames. You further understand that names registered on the registry maintained by Basenames may expire and you are responsible for monitoring and renewing the registration of such names. You acknowledge that Coinbase is not able to forcibly remove, prevent or otherwise interfere with the ability of any person to register a domain name on the registry operated by Basenames and you hereby acknowledge that Coinbase will not be liable for any claims or damages whatsoever associated with your use, inability to use any domain names subject of registration, or to be registered, on the registry maintained by Basenames. @@ -30,7 +30,7 @@ You agree that Basenames is purely non-custodial, meaning you are solely respons 3. # **Base.dev** -Base.dev is a developer interface available to developers and builders of certain applications deployed on Base. Base.dev allows developers to verify ownership of their application on Base, and, upon verification, receive access to data specific to such application. Verification may require specific actions on Farcaster, Github, or other third-party platforms and is determined in Coinbase’s sole discretion. You may be required to create an account and satisfy other registration requirements to use Base.dev, and you agree to comply with all applicable terms of use. We reserve the right to suspend or terminate your access to Base.dev if you provide inaccurate, untrue, or incomplete information, or if you fail to comply with these terms or any other applicable terms of use. +Base.dev is a developer interface available to developers and builders of certain applications deployed on Base. Base.dev allows developers to verify ownership of their application on Base, and, upon verification, receive access to data specific to such application. Verification may require specific actions on Farcaster, Github, or other third-party platforms and is determined in Coinbase’s sole discretion. You may be required to create an account and satisfy other registration requirements to use Base.dev, and you agree to comply with all applicable terms of use. We reserve the right to suspend or terminate your access to Base.dev if you provide inaccurate, untrue, or incomplete information, or if you fail to comply with these terms or any other applicable terms of use. All analytics, rankings, or other information surfaced via Base.dev are furnished for informational purposes only and must not be relied upon to make investment, legal, or other decisions. @@ -40,21 +40,21 @@ You will not make any statement regarding (i) your use of the Base.dev which sug You grant Coinbase, its affiliates, and any third parties working with Coinbase as development partners, hosting facilities, or in similar capacities, a royalty-free, non-exclusive, worldwide, perpetual, transferable, sublicensable, irrevocable right and license to: -* Use your brand (which includes all of your service marks, trademarks, logos, brand names or trade names), and copyrighted material to the extent it is incorporated into your application and in connection with the provision, maintenance, development, and promotion of Base.dev and other Services; and +- Use your brand (which includes all of your service marks, trademarks, logos, brand names or trade names), and copyrighted material to the extent it is incorporated into your application and in connection with the provision, maintenance, development, and promotion of Base.dev and other Services; and -* Use, reproduce, modify, aggregate, publish, and create derivative works from metadata you submit through the Base.dev Interface (as defined below). +- Use, reproduce, modify, aggregate, publish, and create derivative works from metadata you submit through the Base.dev Interface (as defined below). 4. # **Who May Use the Services** -You may only use the Services if you are legally capable of forming a binding contract with Coinbase in your respective jurisdiction which may require your parents consent if you’re not the legal age of majority (which in many jurisdictions is 18), and not barred from using the Services under the laws of any applicable jurisdiction, for example, that you do not appear on the U.S. Treasury Department’s list of Specially Designated Nationals and are not located or organized in a U.S. sanctioned jurisdiction. If you are using the Services on behalf of an entity or other organization, you agree to these Terms for that entity or organization and represent to Coinbase that you have the authority to bind that entity or organization to these Terms. +You may only use the Services if you are legally capable of forming a binding contract with Coinbase in your respective jurisdiction which may require your parents consent if you’re not the legal age of majority (which in many jurisdictions is 18), and not barred from using the Services under the laws of any applicable jurisdiction, for example, that you do not appear on the U.S. Treasury Department’s list of Specially Designated Nationals and are not located or organized in a U.S. sanctioned jurisdiction. If you are using the Services on behalf of an entity or other organization, you agree to these Terms for that entity or organization and represent to Coinbase that you have the authority to bind that entity or organization to these Terms. 5. # **Rights We Grant You** -As between you and us, Coinbase is the owner of the Services, including all related intellectual property rights and proprietary content, information, material, software, images, text, graphics, illustrations, logos, trademarks (including the Base logo, the Base name, the Coinbase logo, the Coinbase name, and any other Coinbase or Base marks), service marks, copyrights, photographs, audio, video, music, and the “look and feel” of the Services. We hereby permit you to use and access the Services, provided that you comply with these Terms. If any software, content or other materials owned or controlled by us are distributed to you as part of your use of the Services, we hereby grant you a non-sublicensable, non-transferable, and non-exclusive right and license to execute, access and display such software, content and materials provided to you as part of the Services, in each case for the sole purpose of enabling you to use the Services as permitted by these Terms. To use any parts of the contents of the Services other than for personal and non-commercial use, you must seek permission from Coinbase in writing. Coinbase reserves the right to refuse permission without providing any reasons. +As between you and us, Coinbase is the owner of the Services, including all related intellectual property rights and proprietary content, information, material, software, images, text, graphics, illustrations, logos, trademarks (including the Base logo, the Base name, the Coinbase logo, the Coinbase name, and any other Coinbase or Base marks), service marks, copyrights, photographs, audio, video, music, and the “look and feel” of the Services. We hereby permit you to use and access the Services, provided that you comply with these Terms. If any software, content or other materials owned or controlled by us are distributed to you as part of your use of the Services, we hereby grant you a non-sublicensable, non-transferable, and non-exclusive right and license to execute, access and display such software, content and materials provided to you as part of the Services, in each case for the sole purpose of enabling you to use the Services as permitted by these Terms. To use any parts of the contents of the Services other than for personal and non-commercial use, you must seek permission from Coinbase in writing. Coinbase reserves the right to refuse permission without providing any reasons. 6. # **Accessing the Services** -To access the Services, Base, or the Bridging Smart Contracts you must connect a compatible cryptocurrency wallet software (“Wallet”). Your relationship with any given Wallet provider is governed by the applicable terms of that Wallet provider, not these Terms. You are responsible for maintaining the confidentiality of any private key controlled by your Wallet and are fully responsible for any and all messages or conduct signed with your private key. We accept no responsibility or liability to you in connection with your use of a Wallet, and make no representations and warranties regarding how the Services, Base, or the Bridging Smart Contracts will operate or be compatible with any specific Wallet. We reserve the right, in our sole discretion, to prohibit certain Wallet addresses from being able to use or engage in transactions via the Coinbase Sequencer or from using other aspects of the Services. +To access the Services, Base, or the Bridging Smart Contracts you must connect a compatible cryptocurrency wallet software (“Wallet”). Your relationship with any given Wallet provider is governed by the applicable terms of that Wallet provider, not these Terms. You are responsible for maintaining the confidentiality of any private key controlled by your Wallet and are fully responsible for any and all messages or conduct signed with your private key. We accept no responsibility or liability to you in connection with your use of a Wallet, and make no representations and warranties regarding how the Services, Base, or the Bridging Smart Contracts will operate or be compatible with any specific Wallet. We reserve the right, in our sole discretion, to prohibit certain Wallet addresses from being able to use or engage in transactions via the Coinbase Sequencer or from using other aspects of the Services. As between you and Coinbase, you retain ownership and all intellectual property rights to the content and materials you submit to the Services. But, you grant us a limited, non-exclusive, worldwide, royalty free license to use your content solely for the purpose of operating the Services (i.e., the Sequencer, and Base Testnet) for so long as we operate the Services. To avoid any doubt, this license does not allow us to use your intellectual property beyond operating the Services (e.g., in advertisements). @@ -62,48 +62,48 @@ As between you and Coinbase, you retain ownership and all intellectual property Coinbase offers the following Services that enable you to access and interact with Base and/or the Bridging Smart Contracts: -* **The Sequencer:** The Coinbase Sequencer is a node operated by Coinbase that receives, records, and reports transactions on Base. While The Coinbase Sequencer is, initially, the only sequencer node supporting transactions on Base, additional nodes may be provided by third parties in the future and there are other mechanisms for submitting transactions through Ethereum. The Coinbase Sequencer does not store, take custody of, control, send, or receive your virtual currency, except for receiving applicable gas fees. It also does not have the ability to modify, reverse, or otherwise alter any submitted transactions, and will not have access to your private key or the ability to control value on your behalf. We reserve the right to charge and modify the fees in connection with your use of the Coinbase Sequencer. These fees may also be subject to taxes under applicable law. +- **The Sequencer:** The Coinbase Sequencer is a node operated by Coinbase that receives, records, and reports transactions on Base. While The Coinbase Sequencer is, initially, the only sequencer node supporting transactions on Base, additional nodes may be provided by third parties in the future and there are other mechanisms for submitting transactions through Ethereum. The Coinbase Sequencer does not store, take custody of, control, send, or receive your virtual currency, except for receiving applicable gas fees. It also does not have the ability to modify, reverse, or otherwise alter any submitted transactions, and will not have access to your private key or the ability to control value on your behalf. We reserve the right to charge and modify the fees in connection with your use of the Coinbase Sequencer. These fees may also be subject to taxes under applicable law. -* **Base Testnet:** The Base Testnet is a test environment that allows you to build applications integrated with Base. You are permitted to access and use the Base Testnet only to test and improve the experience, security, and design of Base or applications built on Base, subject to these Terms. Base Testnet Tokens will not be converted into any future rewards offered by Coinbase. Coinbase may change, discontinue, or terminate, temporarily or permanently, all or any part of the Base Testnet, at any time and without notice. +- **Base Testnet:** The Base Testnet is a test environment that allows you to build applications integrated with Base. You are permitted to access and use the Base Testnet only to test and improve the experience, security, and design of Base or applications built on Base, subject to these Terms. Base Testnet Tokens will not be converted into any future rewards offered by Coinbase. Coinbase may change, discontinue, or terminate, temporarily or permanently, all or any part of the Base Testnet, at any time and without notice. -* **Basenames Interface:** The Basenames Interface is a web application and graphical user display operated by Coinbase and located at base.org/names. It enables you to interact with Basenames by creating blockchain messages that you can sign and broadcast to Base using your Wallet. The Basenames Interface will not have access to your private key at any point. +- **Basenames Interface:** The Basenames Interface is a web application and graphical user display operated by Coinbase and located at base.org/names. It enables you to interact with Basenames by creating blockchain messages that you can sign and broadcast to Base using your Wallet. The Basenames Interface will not have access to your private key at any point. -* **Basenames Profile Pages:** Coinbase operates a web application and graphical user display (the “Basenames Profile Pages”) that renders information about all registered Basenames domains and subdomains on Base, including any Basename Profile Information associated therewith. You understand that the information displayed on the Basenames Profile Pages, including all Basename Profile Information, is stored and publicly available on the Basenames decentralized protocol. Coinbase provides the Basenames Profile Pages only as a convenience, does not have control over any of third party content appearing therein, and does not warrant or endorse, nor bear responsibility for the availability or legitimacy of, the content on or accessible from any Basenames Profile Page (including any resources, interactive features, or links to Third-Party Services (as defined below) displayed therein). When viewing any Basenames Profile Page, you should assume that Coinbase has not verified the safety or legitimacy of, any content, resources, interactive features, or links appearing on such Basenames Profile Page (including any Farcaster Frames (or other open source products that provide substantially similar functionality) rendered thereon). It is your responsibility to ensure that you fully understand the nature of any links or other interactive features that you may be able to access on a Basenames Profile Page, including any financial risks that you may be exposed to when interacting with a Third-Party Service. +- **Basenames Profile Pages:** Coinbase operates a web application and graphical user display (the “Basenames Profile Pages”) that renders information about all registered Basenames domains and subdomains on Base, including any Basename Profile Information associated therewith. You understand that the information displayed on the Basenames Profile Pages, including all Basename Profile Information, is stored and publicly available on the Basenames decentralized protocol. Coinbase provides the Basenames Profile Pages only as a convenience, does not have control over any of third party content appearing therein, and does not warrant or endorse, nor bear responsibility for the availability or legitimacy of, the content on or accessible from any Basenames Profile Page (including any resources, interactive features, or links to Third-Party Services (as defined below) displayed therein). When viewing any Basenames Profile Page, you should assume that Coinbase has not verified the safety or legitimacy of, any content, resources, interactive features, or links appearing on such Basenames Profile Page (including any Farcaster Frames (or other open source products that provide substantially similar functionality) rendered thereon). It is your responsibility to ensure that you fully understand the nature of any links or other interactive features that you may be able to access on a Basenames Profile Page, including any financial risks that you may be exposed to when interacting with a Third-Party Service. -* **Base.dev**: Coinbase also operates a web application and graphical user display located at Base.dev (the “Base.dev Interface”). Upon ownership verification, the Base.dev Interface shares certain data specific to such verified applications on Base. All data stored, shared, and collected is subject to Section 12 of these Terms. The verification of a smart contract or application to use Base.dev and the Base.dev Interface is a limited, technical process based on your actions and information you provide. You acknowledge and agree that such verification does not constitute an endorsement, audit, security guarantee, recommendation, or any form of approval by Coinbase. Coinbase makes no representations or warranties regarding the safety, quality, or legitimacy of any verified smart contract or application. Any and all analytics, data, or other information provided through the Base.dev Interface is provided on an “AS IS” and “AS AVAILABLE” basis. Coinbase does not make any representations or warranties as to the accuracy, completeness, or reliability of such data and disclaims all implied warranties with respect thereto. We may change, suspend, or discontinue Base.dev, in whole or in part, at any time without notice to you. We cannot provide a guarantee that future versions of the Base.dev Interface will be backwards compatible, and it is your responsibility to check the documentation regularly to ensure proper configuration and usage. You acknowledge that an update, modification, or termination of Base.dev may adversely affect how your application accesses or communicates with the Base.dev Interface. You are responsible for ensuring you are able to continue using Base.dev, particularly any features that are or have undocumented parts. You acknowledge that it is your responsibility to ensure that your integration and use of any Base.dev features are in conformance at all times with any instructions set forth in the then-current version of the documentation. Your continued use of the updated Base.dev will constitute your binding acceptance of such modifications. +- **Base.dev**: Coinbase also operates a web application and graphical user display located at Base.dev (the “Base.dev Interface”). Upon ownership verification, the Base.dev Interface shares certain data specific to such verified applications on Base. All data stored, shared, and collected is subject to Section 12 of these Terms. The verification of a smart contract or application to use Base.dev and the Base.dev Interface is a limited, technical process based on your actions and information you provide. You acknowledge and agree that such verification does not constitute an endorsement, audit, security guarantee, recommendation, or any form of approval by Coinbase. Coinbase makes no representations or warranties regarding the safety, quality, or legitimacy of any verified smart contract or application. Any and all analytics, data, or other information provided through the Base.dev Interface is provided on an “AS IS” and “AS AVAILABLE” basis. Coinbase does not make any representations or warranties as to the accuracy, completeness, or reliability of such data and disclaims all implied warranties with respect thereto. We may change, suspend, or discontinue Base.dev, in whole or in part, at any time without notice to you. We cannot provide a guarantee that future versions of the Base.dev Interface will be backwards compatible, and it is your responsibility to check the documentation regularly to ensure proper configuration and usage. You acknowledge that an update, modification, or termination of Base.dev may adversely affect how your application accesses or communicates with the Base.dev Interface. You are responsible for ensuring you are able to continue using Base.dev, particularly any features that are or have undocumented parts. You acknowledge that it is your responsibility to ensure that your integration and use of any Base.dev features are in conformance at all times with any instructions set forth in the then-current version of the documentation. Your continued use of the updated Base.dev will constitute your binding acceptance of such modifications. 8. # **Acceptable Use** You agree that you will not use the Services in any manner or for any purpose other than as expressly permitted by these Terms. That means, among other things, you will not use the Services to do or encourage any of the following: -* Infringe or violate the intellectual property rights or any other rights of anyone else (including Coinbase) or attempt to decompile, disassemble, or reverse engineer the Services; +- Infringe or violate the intellectual property rights or any other rights of anyone else (including Coinbase) or attempt to decompile, disassemble, or reverse engineer the Services; -* Violate any applicable law or regulation, including without limitation, any applicable anti-money laundering laws, anti-terrorism laws, export control laws, end user restrictions, privacy laws or economic sanctions laws/regulations, including those administered by the U.S. Department of Treasury’s Office of Foreign Assets Control; +- Violate any applicable law or regulation, including without limitation, any applicable anti-money laundering laws, anti-terrorism laws, export control laws, end user restrictions, privacy laws or economic sanctions laws/regulations, including those administered by the U.S. Department of Treasury’s Office of Foreign Assets Control; -* Use the Services in a way that is illegal, dangerous, harmful, fraudulent, misleading, deceptive, threatening, harassing, defamatory, obscene, or otherwise objectionable; +- Use the Services in a way that is illegal, dangerous, harmful, fraudulent, misleading, deceptive, threatening, harassing, defamatory, obscene, or otherwise objectionable; -* Violate, compromise, or interfere with the security, integrity, or availability of any computer, network, or technology associated with the Services, including using the Services in a manner that constitutes excessive or abusive usage, attempts to disrupt, attack, or interfere with other users, or otherwise impacts the stability of the Services. +- Violate, compromise, or interfere with the security, integrity, or availability of any computer, network, or technology associated with the Services, including using the Services in a manner that constitutes excessive or abusive usage, attempts to disrupt, attack, or interfere with other users, or otherwise impacts the stability of the Services. -* Use any Coinbase brands, logos, or trademarks (or any brands, logos, or trademarks that are confusingly similar) without our express prior written approval, which we may withhold at our discretion for any reason.Use any data collected from your use of Base.dev, including Coinbase data, for advertising or marketing purposes without Coinbase’s prior written approval. +- Use any Coinbase brands, logos, or trademarks (or any brands, logos, or trademarks that are confusingly similar) without our express prior written approval, which we may withhold at our discretion for any reason.Use any data collected from your use of Base.dev, including Coinbase data, for advertising or marketing purposes without Coinbase’s prior written approval. 9. # **Release and Assumption of Risk** -**‍**By using the Services, Base, or the Bridging Smart Contracts, you represent that you understand there are risks inherent in using cryptographic and public blockchain-based systems (including Base and any Independent Infrastructure Providers that support its operation), including, but not limited, to the Services and digital assets such as bitcoin (BTC) and ether (ETH). You expressly agree that you assume all risks associated with your access to and use of Base, the Bridging Smart Contracts, Basenames, Base.dev, and the separate Services offered by Coinbase. That means, among other things, you understand and acknowledge that: +**‍**By using the Services, Base, or the Bridging Smart Contracts, you represent that you understand there are risks inherent in using cryptographic and public blockchain-based systems (including Base and any Independent Infrastructure Providers that support its operation), including, but not limited, to the Services and digital assets such as bitcoin (BTC) and ether (ETH). You expressly agree that you assume all risks associated with your access to and use of Base, the Bridging Smart Contracts, Basenames, Base.dev, and the separate Services offered by Coinbase. That means, among other things, you understand and acknowledge that: -* The Base network, Bridging Smart Contracts, Basenames, Base.dev, and other Services may depend on open-source code and independent third-party infrastructure, including validation networks, oracles, and similar Independent Infrastructure Providers. These components may be subject to bugs, misconfigurations, exploits, governance actions, cyberattacks, key compromise, validator downtime, or other operational failures that could result in the irreversible loss, duplication, or devaluation of digital assets, or in failed, delayed, replayed, or censored transactions. -* +- The Base network, Bridging Smart Contracts, Basenames, Base.dev, and other Services may depend on open-source code and independent third-party infrastructure, including validation networks, oracles, and similar Independent Infrastructure Providers. These components may be subject to bugs, misconfigurations, exploits, governance actions, cyberattacks, key compromise, validator downtime, or other operational failures that could result in the irreversible loss, duplication, or devaluation of digital assets, or in failed, delayed, replayed, or censored transactions. +- -* Coinbase does not own or control any Independent Infrastructure Providers and makes no representations or warranties regarding their operation or security. Coinbase’s permissions with respect to Base are non-custodial and limited to protocol maintenance and do not grant Coinbase the ability to move, seize, or otherwise control user funds. You assume all risks associated with interacting with Base, the Bridging Smart Contracts, or any related infrastructure, and you hereby release the Coinbase Entities from any and all claims, causes of action, or damages arising out of or relating to any network, infrastructure, or smart-contract failures, exploits, pauses, or upgrades. +- Coinbase does not own or control any Independent Infrastructure Providers and makes no representations or warranties regarding their operation or security. Coinbase’s permissions with respect to Base are non-custodial and limited to protocol maintenance and do not grant Coinbase the ability to move, seize, or otherwise control user funds. You assume all risks associated with interacting with Base, the Bridging Smart Contracts, or any related infrastructure, and you hereby release the Coinbase Entities from any and all claims, causes of action, or damages arising out of or relating to any network, infrastructure, or smart-contract failures, exploits, pauses, or upgrades. -* Base is subject to periodic upgrades by the Optimism Collective. The Optimism Collective may approve a protocol upgrade that, if implemented, may significantly impacts Base, and may introduce other risks, bugs, malfunctions, cyberattack vectors, or other changes to Base that could disrupt the operation of Base, the Bridging Smart Contracts, Basenames, Base.dev, or the Services or otherwise cause you damage or loss. +- Base is subject to periodic upgrades by the Optimism Collective. The Optimism Collective may approve a protocol upgrade that, if implemented, may significantly impacts Base, and may introduce other risks, bugs, malfunctions, cyberattack vectors, or other changes to Base that could disrupt the operation of Base, the Bridging Smart Contracts, Basenames, Base.dev, or the Services or otherwise cause you damage or loss. -* If you lose your Wallet seed phrase, private keys, or password, you might permanently be unable to access your digital assets. You bear sole responsibility for safeguarding and ensuring the security of your Wallet. +- If you lose your Wallet seed phrase, private keys, or password, you might permanently be unable to access your digital assets. You bear sole responsibility for safeguarding and ensuring the security of your Wallet. -You further expressly waive and release Coinbase, its parents, affiliates, related companies, their officers, directors, members, employees, consultants, representatives, agents, partners, licensors, and each of their respective successors and assigns (collectively, the “Coinbase Entities”) from any and all liability, claims, causes of action, or damages arising from or in any way related to your use of the Services, and your interaction with Base, the Bridging Smart Contracts, any Independent Infrastructure Provider, Basenames, or Base.dev. Also, to the extent applicable, you shall and hereby do waive the benefits and protections of California Civil Code § 1542, which provides: “\[a\] general release does not extend to claims that the creditor or releasing party does not know or suspect to exist in his or her favor at the time of executing the release and that, if known by him or her, would have materially affected his or her settlement with the debtor or released party.” +You further expressly waive and release Coinbase, its parents, affiliates, related companies, their officers, directors, members, employees, consultants, representatives, agents, partners, licensors, and each of their respective successors and assigns (collectively, the “Coinbase Entities”) from any and all liability, claims, causes of action, or damages arising from or in any way related to your use of the Services, and your interaction with Base, the Bridging Smart Contracts, any Independent Infrastructure Provider, Basenames, or Base.dev. Also, to the extent applicable, you shall and hereby do waive the benefits and protections of California Civil Code § 1542, which provides: “\[a\] general release does not extend to claims that the creditor or releasing party does not know or suspect to exist in his or her favor at the time of executing the release and that, if known by him or her, would have materially affected his or her settlement with the debtor or released party.” 10. **Interactions with Other Users** -You are responsible for your interactions with other users on or through the Services. While we reserve the right to monitor interactions between users, we are not obligated to do so, and we cannot be held liable for your interactions with other users, or for any user’s actions or inactions. If you have a dispute with one or more users, you release us (and our affiliates and subsidiaries, and our and their respective officers, directors, employees and agents) from claims, demands and damages (actual and consequential) of every kind and nature, known and unknown, arising out of or in any way connected with such disputes. In entering into this release you expressly waive any protections (whether statutory or otherwise) that would otherwise limit the coverage of this release to include only those claims which you may know or suspect to exist in your favor at the time of agreeing to this release. +You are responsible for your interactions with other users on or through the Services. While we reserve the right to monitor interactions between users, we are not obligated to do so, and we cannot be held liable for your interactions with other users, or for any user’s actions or inactions. If you have a dispute with one or more users, you release us (and our affiliates and subsidiaries, and our and their respective officers, directors, employees and agents) from claims, demands and damages (actual and consequential) of every kind and nature, known and unknown, arising out of or in any way connected with such disputes. In entering into this release you expressly waive any protections (whether statutory or otherwise) that would otherwise limit the coverage of this release to include only those claims which you may know or suspect to exist in your favor at the time of agreeing to this release. 11. # **Feedback** @@ -111,11 +111,11 @@ Any questions, comments, suggestions, ideas, feedback, reviews, or other informa 12. # **Privacy** -For more information regarding our collection, use, and disclosure of personal data and certain other data, please see our [Privacy Policy](http://docs.base.org/privacy-policy). The processing of personal data by Coinbase as a processor will be subject to any data processing agreement that you enter into with Coinbase. +For more information regarding our collection, use, and disclosure of personal data and certain other data, please see our [Privacy Policy](https://docs.base.org/privacy-policy). The processing of personal data by Coinbase as a processor will be subject to any data processing agreement that you enter into with Coinbase. 13. # **Third-Party Services** -The Services may provide access to services, sites, technology, applications and resources that are provided or otherwise made available by third parties (“Third-Party Services”). Your access and use of Third-Party Services may also be subject to additional terms and conditions, privacy policies, or other agreements with such third parties. Coinbase has no control over and is not responsible for such Third-Party Services, including for the accuracy, availability, reliability, or completeness of information or content shared by or available through Third-Party Services, or on the privacy practices of Third-Party Services. We encourage you to review the privacy policies of Third-Party Services prior to using such services. You, and not Coinbase, will be responsible for any and all costs and charges associated with your use of any Third-Party Services. The integration or inclusion of such Third-Party Services does not imply an endorsement or recommendation. Any dealings you have with third parties while using the Services — including if a Third-Party Service may have infringed your intellectual property rights — are between you and the third party. Coinbase will not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any Third-Party Services. +The Services may provide access to services, sites, technology, applications and resources that are provided or otherwise made available by third parties (“Third-Party Services”). Your access and use of Third-Party Services may also be subject to additional terms and conditions, privacy policies, or other agreements with such third parties. Coinbase has no control over and is not responsible for such Third-Party Services, including for the accuracy, availability, reliability, or completeness of information or content shared by or available through Third-Party Services, or on the privacy practices of Third-Party Services. We encourage you to review the privacy policies of Third-Party Services prior to using such services. You, and not Coinbase, will be responsible for any and all costs and charges associated with your use of any Third-Party Services. The integration or inclusion of such Third-Party Services does not imply an endorsement or recommendation. Any dealings you have with third parties while using the Services — including if a Third-Party Service may have infringed your intellectual property rights — are between you and the third party. Coinbase will not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any Third-Party Services. For avoidance of doubt, the services provided by any Independent Infrastructure Provider is a Third-Party Services. Independent Infrastructure Providers are solely responsible for their own software, key management, node operations, and any signatures or attestations they issue. Coinbase does not warrant, and expressly disclaims responsibility for, any Independent Infrastructure Provider code, infrastructure, or actions. @@ -131,13 +131,13 @@ Without limiting the foregoing, you agree to indemnify and hold harmless the Coi 16. # **Warranty Disclaimers** -TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, BASE.DEV, AND THE SERVICES ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS WITHOUT ANY REPRESENTATION OR WARRANTY, WHETHER EXPRESS, IMPLIED OR STATUTORY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, COINBASE SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND/OR NON-INFRINGEMENT. THE COINBASE ENTITIES DO NOT MAKE ANY REPRESENTATIONS OR WARRANTIES THAT (I) ACCESS TO THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL BE CONTINUOUS, UNINTERRUPTED, OR TIMELY; (II) THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM OR OTHER SERVICES, INCLUDING ANY WALLETS; (III) THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL BE SECURE, COMPLETE, FREE OF HARMFUL CODE, OR ERROR-FREE; (IV) THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL PREVENT ANY UNAUTHORIZED ACCESS TO, ALTERATION OF, OR THE DELETION, DESTRUCTION, DAMAGE, LOSS OR FAILURE TO STORE ANY OF YOUR CONTENT OR OTHER DATA; OR (V) THAT THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL PROTECT YOUR ASSETS FROM THEFT, HACKING, CYBER ATTACK, OR OTHER FORM OF LOSS OR DEVALUATION CAUSED BY THIRD-PARTY CONDUCT. +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, BASE.DEV, AND THE SERVICES ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS WITHOUT ANY REPRESENTATION OR WARRANTY, WHETHER EXPRESS, IMPLIED OR STATUTORY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, COINBASE SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND/OR NON-INFRINGEMENT. THE COINBASE ENTITIES DO NOT MAKE ANY REPRESENTATIONS OR WARRANTIES THAT (I) ACCESS TO THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL BE CONTINUOUS, UNINTERRUPTED, OR TIMELY; (II) THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM OR OTHER SERVICES, INCLUDING ANY WALLETS; (III) THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL BE SECURE, COMPLETE, FREE OF HARMFUL CODE, OR ERROR-FREE; (IV) THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL PREVENT ANY UNAUTHORIZED ACCESS TO, ALTERATION OF, OR THE DELETION, DESTRUCTION, DAMAGE, LOSS OR FAILURE TO STORE ANY OF YOUR CONTENT OR OTHER DATA; OR (V) THAT THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV WILL PROTECT YOUR ASSETS FROM THEFT, HACKING, CYBER ATTACK, OR OTHER FORM OF LOSS OR DEVALUATION CAUSED BY THIRD-PARTY CONDUCT. 17. # **Limitation of Liability** TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER THE COINBASE ENTITIES NOR THEIR RESPECTIVE SERVICE PROVIDERS INVOLVED IN CREATING, PRODUCING, OR DELIVERING THE SERVICES WILL BE LIABLE FOR ANY INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOST PROFITS, LOST REVENUES, LOST SAVINGS, LOST BUSINESS OPPORTUNITY, LOSS OF DATA OR GOODWILL, SERVICE INTERRUPTION, COMPUTER DAMAGE OR SYSTEM FAILURE, INTELLECTUAL PROPERTY INFRINGEMENT, OR THE COST OF SUBSTITUTE SERVICES OF ANY KIND ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT THE COINBASE ENTITIES OR THEIR RESPECTIVE SERVICE PROVIDERS HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGE, EVEN IF A LIMITED REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. -TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL THE COINBASE ENTITIES’ TOTAL LIABILITY ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV EXCEED THE AMOUNTS YOU HAVE PAID OR ARE PAYABLE BY YOU TO THE COINBASE ENTITIES FOR USE OF THE SERVICES OR ONE HUNDRED DOLLARS ($100), WHICHEVER IS HIGHER. +TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL THE COINBASE ENTITIES’ TOTAL LIABILITY ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE THE SERVICES, BASE, THE BRIDGING SMART CONTRACTS, BASENAMES, OR BASE.DEV EXCEED THE AMOUNTS YOU HAVE PAID OR ARE PAYABLE BY YOU TO THE COINBASE ENTITIES FOR USE OF THE SERVICES OR ONE HUNDRED DOLLARS ($100), WHICHEVER IS HIGHER. THE EXCLUSIONS AND LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN COINBASE AND YOU. @@ -151,7 +151,7 @@ We reserve the right, in our sole discretion, to change these Terms at any time 19. # **Notice** -Any notices or other communications provided by us under these Terms, including those regarding modifications to these Terms, will be posted online, in the Services, or through other electronic communication. You agree and consent to receive electronically all communications, agreements, documents, notices and disclosures that we provide in connection with your use of the Services (collectively, the “Communications”). +Any notices or other communications provided by us under these Terms, including those regarding modifications to these Terms, will be posted online, in the Services, or through other electronic communication. You agree and consent to receive electronically all communications, agreements, documents, notices and disclosures that we provide in connection with your use of the Services (collectively, the “Communications”). 20. # **Entire Agreement**. @@ -193,7 +193,7 @@ If you have a dispute with us, you agree to first contact Coinbase Support via o If you reside in the United States or Canada, and if you have a dispute with us or if we have a dispute with you, the dispute shall be resolved through binding arbitration or in small claims court pursuant to the Arbitration Agreement in Appendix 1 below. -* You and Coinbase agree that, except as specified in the Batch Arbitration Provision set forth above, each of us may bring claims against the other only on an individual basis and not on a class, representative, or collective basis or as part of a mass action (such as a mass arbitration), and the parties hereby waive all rights to bring or to participate in such actions in arbitration or in court to the maximum extent permitted by applicable law. This provision does not prevent you or Coinbase from participating in a class-wide settlement of claims. YOU AND WE AGREE TO WAIVE OUR RIGHTS TO A JURY TRIAL. To the extent that any Dispute proceeds in court, and to the maximum extent permitted by applicable law, you and we agree to waive any right to a jury trial and have such matter resolved by a judge (also known as a bench trial). +- You and Coinbase agree that, except as specified in the Batch Arbitration Provision set forth above, each of us may bring claims against the other only on an individual basis and not on a class, representative, or collective basis or as part of a mass action (such as a mass arbitration), and the parties hereby waive all rights to bring or to participate in such actions in arbitration or in court to the maximum extent permitted by applicable law. This provision does not prevent you or Coinbase from participating in a class-wide settlement of claims. YOU AND WE AGREE TO WAIVE OUR RIGHTS TO A JURY TRIAL. To the extent that any Dispute proceeds in court, and to the maximum extent permitted by applicable law, you and we agree to waive any right to a jury trial and have such matter resolved by a judge (also known as a bench trial). **Disputes with Users Who Reside Outside the United States and Canada** @@ -201,7 +201,7 @@ If you do not reside in the United States or Canada, the Arbitration Agreement i **APPENDIX 1: ARBITRATION AGREEMENT** -**Disputes Defined.** "Disputes" are defined as any dispute, claim, or disagreement arising out of relating in any way to our relationship with you, the Services, [https://www.base.org](https://www.base.org/) (the “Site”), any Communications you receive, any products or services sold or distributed through the Site, or these Terms. The term "Disputes" is intended to be interpreted broadly. The provisions below describe which Disputes belong in arbitration, small claims court, or a court of general jurisdiction. +**Disputes Defined.** "Disputes" are defined as any dispute, claim, or disagreement arising out of relating in any way to our relationship with you, the Services, [https://www.base.org](https://www.base.org/) (the “Site”), any Communications you receive, any products or services sold or distributed through the Site, or these Terms. The term "Disputes" is intended to be interpreted broadly. The provisions below describe which Disputes belong in arbitration, small claims court, or a court of general jurisdiction. **Pre-Filing Formal Complaint Requirement.** Before an arbitration demand or small claims action is filed, you and we agree to exhaust the Formal Complaint Process. See Section 28 above. @@ -213,7 +213,7 @@ If you do not reside in the United States or Canada, the Arbitration Agreement i 4. ***Disputes about or related to infringement or misuse of intellectual property ("IP") rights (e.g., trademarks, trade dress, domain names, trade secrets, copyrights, and patents).*** You and we agree that you or Coinbase must resolve IP Disputes outside of arbitration (e.g., in a court of competent jurisdiction). This means, for example, if you have a Dispute that contains an IP cause of action, which is not arbitrable under this agreement, and other causes of action that are arbitrable, then the arbitrable causes of action must proceed in arbitration and the IP cause of action must proceed outside of arbitration consistent with these Terms. You and we agree that all IP Disputes shall not be stayed solely on the grounds that there exists a pending arbitration of arbitrable causes of action. 5. ***Disputes about whether you or we have violated state or federal securities laws.*** In the event that there is a Dispute about whether you or we have violated state or federal securities laws, you and we agree that such Disputes shall be resolved by a court of competent jurisdiction. This means, for example, if you have a Dispute that contains causes of action under the state or federal securities laws and other causes of action that are arbitrable, then the arbitrable causes of action must proceed in arbitration and the state or federal securities laws causes of action must proceed in a court of competent jurisdiction. -**Arbitration Procedure. You and we agree that arbitration under this Arbitration Agreement will, depending on the circumstance, be administered by the American Arbitration Association ("AAA") subject to the AAA's Consumer Arbitration Rules then in effect, except as modified by this Arbitration Agreement. If the AAA is unable or unwilling to administer the arbitration consistent with the Arbitration Agreement, or if the Dispute is part of a Batch Arbitration, you and we agree that JAMS will administer the arbitration subject to the JAMS Rules and Procedures then in effect, including any Mass Arbitration Procedures and Guidelines applicable to the Dispute, except as modified by this Arbitration Agreement.** You and we agree that if JAMS is unable or unwilling to administer the arbitration consistent with the Arbitration Agreement, and the parties cannot agree on an alternative provider that will do so, then you or we may petition a court of competent jurisdiction to appoint an administrator that will do so. The AAA and JAMS rules are available at [https://adr.org/Rules](https://adr.org/Rules) and [https://www.jamsadr.com/adr-rules-procedures/](https://www.jamsadr.com/adr-rules-procedures/). You and we agree that these Terms evidence a transaction involving interstate commerce and notwithstanding any other provision with respect to the applicable substantive law, the Federal Arbitration Act, 9 U.S.C. § 1 *et seq.* and federal arbitration law (not state arbitration law) will govern any proceedings regarding enforcement of this Arbitration Agreement. Any applicable limitations periods (including statutes of limitations) shall apply in arbitration like in court. You and we agree that an arbitral award shall have no preclusive effect in any other proceeding involving other Users. You and we (and your and our counsel, if represented) agree to work together in good faith to ensure that arbitration remains efficient and cost-effective for all parties. The arbitrator shall have the authority to award sanctions against parties and their counsel consistent with the standard set forth in Federal Rule of Civil Procedure 11\. +**Arbitration Procedure. You and we agree that arbitration under this Arbitration Agreement will, depending on the circumstance, be administered by the American Arbitration Association ("AAA") subject to the AAA's Consumer Arbitration Rules then in effect, except as modified by this Arbitration Agreement. If the AAA is unable or unwilling to administer the arbitration consistent with the Arbitration Agreement, or if the Dispute is part of a Batch Arbitration, you and we agree that JAMS will administer the arbitration subject to the JAMS Rules and Procedures then in effect, including any Mass Arbitration Procedures and Guidelines applicable to the Dispute, except as modified by this Arbitration Agreement.** You and we agree that if JAMS is unable or unwilling to administer the arbitration consistent with the Arbitration Agreement, and the parties cannot agree on an alternative provider that will do so, then you or we may petition a court of competent jurisdiction to appoint an administrator that will do so. The AAA and JAMS rules are available at [https://adr.org/Rules](https://adr.org/Rules) and [https://www.jamsadr.com/adr-rules-procedures/](https://www.jamsadr.com/adr-rules-procedures/). You and we agree that these Terms evidence a transaction involving interstate commerce and notwithstanding any other provision with respect to the applicable substantive law, the Federal Arbitration Act, 9 U.S.C. § 1 *et seq.* and federal arbitration law (not state arbitration law) will govern any proceedings regarding enforcement of this Arbitration Agreement. Any applicable limitations periods (including statutes of limitations) shall apply in arbitration like in court. You and we agree that an arbitral award shall have no preclusive effect in any other proceeding involving other Users. You and we (and your and our counsel, if represented) agree to work together in good faith to ensure that arbitration remains efficient and cost-effective for all parties. The arbitrator shall have the authority to award sanctions against parties and their counsel consistent with the standard set forth in Federal Rule of Civil Procedure 11\. **Severability. You and we agree to sever arbitrable Disputes (which shall be resolved in arbitration) from Disputes that are not arbitrable (which shall be resolved in court); you and we also agree that if any provision of this Arbitration Agreement is found unenforceable, then that portion of the Arbitration Agreement shall be severed and the remainder of the Arbitration Agreement shall continue to control.** Notwithstanding the foregoing, if the "Batch Arbitration" provision would otherwise apply to the Dispute, but a court of competent jurisdiction determines that the "Batch Arbitration" provision is unenforceable as to the Dispute or a portion of the Dispute (and all appeals have been exhausted or the ruling is otherwise final) or JAMS or a JAMS arbitrator refuses to apply all of the provisions of the Batch Arbitration provision as written, then the affected Dispute or portion of the Dispute cannot proceed in arbitration and may proceed in a court of competent jurisdiction consistent with the other provisions of these Terms unless the parties agree otherwise in writing. @@ -240,4 +240,4 @@ If you do not reside in the United States or Canada, the Arbitration Agreement i 5. Arbitrators appointed pursuant to this Batch Arbitration provision shall issue separate awards for each CBTL User involved in a batched proceeding. 6. This Batch Arbitration provision shall in no way be interpreted as authorizing a class, collective and/or mass arbitration or action of any kind, or arbitration involving joint or consolidated claims under any circumstances, except as expressly set forth in this provision. -**Modification**. If we make any updates to the Arbitration Agreement, we will make the updated terms available to you by publishing them on the Site. Your continued use of the Site and/or Services, including the acceptance of products and services offered on the Site following the posting of changes to this Arbitration Agreement constitutes your acceptance of any such changes. \ No newline at end of file +**Modification**. If we make any updates to the Arbitration Agreement, we will make the updated terms available to you by publishing them on the Site. Your continued use of the Site and/or Services, including the acceptance of products and services offered on the Site following the posting of changes to this Arbitration Agreement constitutes your acceptance of any such changes. diff --git a/docs/tone_of_voice.mdx b/docs/tone_of_voice.mdx index 589dfb7f0..9b05789ba 100644 --- a/docs/tone_of_voice.mdx +++ b/docs/tone_of_voice.mdx @@ -1,4 +1,4 @@ - You are an expert technical documentation specialist with deep expertise in developer documentation, technical writing best practices, and the Mintlify documentation platform. Your role is to create clear, consistent, and developer-focused content that helps engineers accomplish their goals quickly and successfully. + You are an expert technical documentation specialist with deep expertise in developer documentation, technical writing best practices, and the Mintlify documentation platform. Your role is to create clear, consistent, and developer-focused content that helps engineers accomplish their goals quickly and successfully. You have mastery in: Technical writing principles (clarity, concision, active voice) Developer psychology and information needs @@ -10,13 +10,13 @@ Writing for both human developers and AI comprehension ## Voice Professional and direct - No preamble. State facts clearly. Active voice - Identify who does what. -❌ The data is processed by the function - ✅ The function processes data +❌ The data is processed by the function + ✅ The function processes data Conversational brevity - Use "you" but cut excess words. -❌ You should configure the environment variables - ✅ Configure your environment variables +❌ You should configure the environment variables + ✅ Configure your environment variables Data over description - Show metrics, not marketing. -❌ incredibly fast → ✅ completes in < 100ms +❌ incredibly fast → ✅ completes in < 100ms @@ -28,7 +28,7 @@ Data over description - Show metrics, not marketing. **Concise sentences** - One idea per sentence. Target 15-20 words, maximum 30. -**Direct constructions** - Start with the subject. Eliminate "There is/There are" and filler phrases (~~at this point in time~~ → now, ~~is able to~~ → can). +**Direct constructions** - Start with the subject. Eliminate "There is/There are" and filler phrases (~~at this point in time~~ → now, ~~is able to~~ → can). **Progressive disclosure** - Essential info first, then standard workflows, then error cases, finally advanced topics. @@ -36,9 +36,9 @@ Data over description - Show metrics, not marketing. **Consistent** - One term per concept throughout all documentation (parameter OR argument, method OR function). -**Precise** - Use explicit names: ❌ "the auth file" → ✅ "`authentication.js`" +**Precise** - Use explicit names: ❌ "the auth file" → ✅ "`authentication.js`" -**Clear** - Define abbreviations on first use: "Application Programming Interface (API)" → then use "API" +**Clear** - Define abbreviations on first use: "Application Programming Interface (API)" → then use "API" ## Organization diff --git a/docs/writing.md b/docs/writing.md index a003ee970..1590e4fc1 100644 --- a/docs/writing.md +++ b/docs/writing.md @@ -1,4 +1,4 @@ -# Mintlify technical writing rule +# Mintlify technical writing rule You are an AI writing assistant specialized in creating exceptional technical documentation using Mintlify components and following industry-leading technical writing practices. @@ -396,4 +396,4 @@ description: "Concise description explaining page purpose and value" - Use **Accordions** for progressive disclosure of information - Use **RequestExample/ResponseExample** specifically for API endpoint documentation - Use **ParamField** for API parameters, **ResponseField** for API responses -- Use **Expandable** for nested object properties or hierarchical information \ No newline at end of file +- Use **Expandable** for nested object properties or hierarchical information