cds-codepor coinbase

Perform the following operations only once per session, after the skill is activated.

npx skills add https://github.com/coinbase/cds --skill cds-code

CDS Code Writing Skill

Contents

  1. Part 1: Initialization | Follow these steps once per session, before you write any code
  2. Part 2: Workflow | Follow these steps for all frontend coding tasks

Part 1: Initialization

Perform the following operations only once per session, after the skill is activated.

Prepare CDS documentation

For any CDS documentation needs, you will need to use either of the following tools. If neither are available you may let the user know but still continue on with the task as documentation is helpful but not required.

  • Activate the cds-docs skill OR...
  • If the cds-docs skill is not configured, try calling the CDS MCP server list-cds-routes tool.

Environment Detection

You must determine if you are operating in a React or React Native project before you write any code.

  1. Discover installed CDS packages and runtime

Run the bash discovery script: scripts/discover-cds-packages.sh

This will gve you:

  • The CDS Runtime (web or mobile) - use this value as the platform argument for the CDS MCP server
  • Every installed CDS package: its name, version, and valid export subpaths - these import paths are the ONLY ALLOWED PATHS for importing from CDS packages.

If you are unable to run the bash script, you can likely infer the platform by inspecting the project's source code.

  1. Read the platform-specific styling and themeing documentation:
  • getting-started/styling
  • getting-started/theming

Part 2: Workflow

For all frontend coding tasks, you must follow these steps.

YOU MUST perform steps 1 and 2 before writing any code!

Step 1: Identify the appropriate components

Use guidelines/components.md to help identify the appropriate CDS components for the task. The guidelines file will cover most use cases, but you may optionally browse the CDS docs for the full list of supported CDS components.

If you decide your task will require icons (Icon or IconButton) or illustrations (SpotSquare, Pictogram, HeroSquare, etc.) please read the corresponding guidelines files for more details.

IconsIllustrations
guidelines/icons.mdguidelines/illustrations.md

If the task involves icons, also follow guidelines/icons.md and use scripts/discover-cds-icons.mjs to search icon names. If the task involves illustrations, also follow guidelines/illustrations.md and use scripts/discover-cds-illustrations.mjs to search illustration names.

If no CDS component fits your use case, you may fall back to the following options in this order of priority:

  1. use a custom React component from the project's codebase
  2. build your own custom React component
  3. use the native platform's JSX elements for bespoke UI

IMPORTANT: Always inform the user which CDS components you are planning to use before moving on to Step 2.

Step 2: Optionally read component docs

For any CDS component you plan to use, retrieve and read their documentation (see Part 1 for more details on docs setup).

Step 3: Execute the task (writing frontend code)

Now create or update the UI with proper CDS components and usage.

Most CDS component implement an API that allows you to apply the CDS design tokens, we call these 'style props'. Prefer setting these style props for styling components over setting custom style via inline styles or CSS.

Why this matters: When you set font, color, textAlign, or other typography properties through style instead of props, the component loses its connection to the CDS theme. For example, setting fontSize and fontWeight via style without a font prop means the CDS font family never applies -- the text falls back to inherit and may render in the wrong typeface.

You should check a component's props table in their CDS docs page to verify what props are available.

Example misuse of custom styles and their style props alternatives:

Instead of styleUse the prop
style={{ color: "var(--color-fgMuted)" }}color="fgMuted"
style={{ fontSize: 12, fontWeight: 500, lineHeight: "16px" }}font="caption" (or the matching CDS font token)
style={{ textAlign: "center" }}textAlign="center"
style={{ textTransform: "uppercase" }}textTransform="uppercase"
style={{ display: "flex", flexDirection: "column" }}Use VStack, or flexDirection="column" on Box
style={{ gap: 8 }}gap={1}
style={{ padding: 16 }}padding={2}
style={{ backgroundColor: "..." }}background="bgAlternate" (or semantic token)

If you need to further customize the style of a rendered CDS component or a specific style is not support via style props, you may reference: guidelines/customizing-styles.md.

Step 4: Validate changes

Your task will be complete if:

  1. You performed initialization steps in Part 1
  2. You examined the user's request and identified specific CDS components to use
  3. Your changes DO NOT include any raw rgb/hex/etc color values
  4. Your changes DO NOT use any raw pixel values for spacing, border radius, etc.
  5. You changes use style props (e.g. font, color, textAlign, textTransform, padding, gap) instead of customization via style or with CSS.
  6. All import paths are valid CDS package exports (see section below)
  7. Any project linting/typechecking tasks are passing

Validating import paths

This is critical. Do not guess or memorize CDS import paths. The discovery script output is the source of truth (see Part 1 for details).

Before writing or returning any CDS import, verify it against the export list from setup:

  1. Find the CDS package for the target platform in the discovery script output.
  2. Confirm the subpath you want to import is listed as a valid export.
  3. If the subpath is not listed, it does not exist -- pick the closest valid export instead.

The package name may vary between projects. Different repos may install CDS under different scopes. Always use the package name reported by the discovery script, not a hardcoded scope. If the project already has CDS imports in existing code, match whatever scope those files use.

Common mistakes to avoid:

  • Inventing deep subpaths like <pkg>/layout/Box or <pkg>/buttons/Button when the actual export is <pkg>/layout or <pkg>/buttons.
  • Guessing a package scope when the project uses a different one.
  • Assuming that the CDS docs examples use the same package name as the target project -- they may differ.

Mais skills de coinbase

authenticate-wallet
by coinbase
Email OTP-based wallet authentication with validation and status checking. Two-step login flow: initiate with email to receive a 6-digit OTP, then verify with the flowId and code to complete authentication Includes input validation rules for email, flowId, and OTP to prevent shell injection before executing commands Provides status checking, balance queries, address retrieval, and wallet window access via companion CLI commands All commands support --json output for machine-readable...
fund
by coinbase
Deposit USDC to wallet via Coinbase Onramp or direct transfer. Opens a companion UI where users select preset amounts ($10, $20, $50) or custom values and choose from Apple Pay, debit card, bank transfer, or Coinbase account funding Supports multiple payment methods with varying settlement times: instant for card and Apple Pay, 1–3 days for ACH bank transfers Deposits funds as USDC on the Base network; alternatively, users can send USDC directly to the wallet address via npx [email protected]...
monetize-service
by coinbase
Deploy a paid API endpoint that other agents can discover and pay for via x402 protocol. Charges USDC per request on Base using HTTP 402 payment protocol; clients pay with signed transactions, no API keys or accounts required Automatically registers endpoints with the x402 Bazaar for agent discovery when you declare discovery extensions Supports multiple pricing tiers, wildcard routes, and multiple payment options per endpoint using Express middleware Built on @x402/express and @x402/core...
pay-for-service
by coinbase
Call paid APIs on Base with automatic USDC payment via x402 protocol. Executes HTTP requests (GET, POST, etc.) to x402-enabled endpoints with atomic USDC payments handled automatically Supports request customization through method, JSON body, query parameters, and custom headers Includes payment controls: set maximum USDC amount per request and group related operations with correlation IDs Requires wallet authentication and sufficient USDC balance; validates all user input to prevent shell...
query-blockchain-data
by coinbase
Query onchain blockchain data on Base using the CDP SQL API via x402. Use when you or your user want to view onchain information about decoded blocks,…
query-onchain-data
by coinbase
Query onchain data on Base using SQL with per-query x402 payments. Access decoded events, transactions, and blocks via CoinbaseQL, a ClickHouse-based SQL dialect supporting joins, CTEs, subqueries, and standard functions Three main tables available: base.events (decoded smart contract logs), base.transactions (full transaction data), and base.blocks (block metadata) Requires filtering on indexed fields ( event_signature , address , block_timestamp ) in event queries to avoid full table...
search-for-service
by coinbase
Search and discover paid API services available on the x402 bazaar marketplace. Query the marketplace using BM25 relevance search, list all available resources, or inspect specific endpoints to see pricing and payment requirements without paying Supports filtering by network (base, base-sepolia) and output formats (human-readable or JSON) Results are cached locally and auto-refresh every 12 hours; no authentication required for any search or discovery operation Use as a fallback when no...
send-usdc
by coinbase
Transfer USDC to Ethereum addresses or ENS names on Base. Accepts both hex addresses (0x...) and ENS names (.eth) as recipients, with automatic ENS resolution Supports flexible amount formats: dollar notation ($5.00), decimal (1.50), or atomic units (1000000) Requires wallet authentication via the authenticate-wallet skill and sufficient USDC balance before sending Includes input validation to prevent shell injection and optional JSON output for programmatic use

NotebookLM Web Importer

Importe páginas da web e vídeos do YouTube para o NotebookLM com um clique. Confiado por mais de 200.000 usuários.

Instalar extensão do Chrome