This package contains ready-made, customizable React UI components that wrap the CDP frontend SDK.
SignInModal
- a button that triggers a modal with the sign-in flowSignIn
- the forms for the sign in flow, a logo, heading, and description textSignOutButton
- a sign out buttonAuthButton
- the SignOutButton
when logged in, and the SignInModal
when logged outThis guide will help you get started with @coinbase/cdp-react
. You'll learn how to install the package, set up the provider, and render your first component.
First, add the package to your project using your preferred package manager.
# With pnpm
pnpm add @coinbase/cdp-react @coinbase/cdp-core @coinbase/cdp-hooks
# With yarn
yarn add @coinbase/cdp-react @coinbase/cdp-core @coinbase/cdp-hooks
# With npm
npm install @coinbase/cdp-react @coinbase/cdp-core @coinbase/cdp-hooks
http://localhost:3000
Next, you need to wrap your application with the CDPReactProvider
.
CDPReactProvider
provides the necessary context for hooks and components to work correctly. It also provides access to config data and theming.
Update your main application file (e.g., main.tsx
or App.tsx
) to include the provider:
import React from 'react';
import ReactDOM from 'react-dom/client';
import { App } from './App'; // Your main App component
import { CDPReactProvider, type Theme } from '@coinbase/cdp-react';
// Your CDP config
const cdpConfig = {
projectId: "your-project-id", // Copy your Project ID here.
}
// Global config for your dapp
const appConfig = {
name: "My app", // the name of your application
logoUrl: "https://picsum.photos/64", // logo will be displayed in select components
}
// You can customize the theme by overriding theme variables
const themeOverrides: Partial<Theme> = {
"colors-bg-default": "black",
"colors-bg-alternate": "#121212",
"colors-fg-default": "white",
"colors-fg-muted": "#999999",
}
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<CDPReactProvider config={cdpConfig} app={appConfig} theme={themeOverrides}>
<App />
</CDPReactProvider>
</React.StrictMode>,
);
Now you can use the components from the library. Let's add the AuthButton
component to your application. This component handles both sign-in and sign-out functionality.
// In your App.tsx or any other component
import { AuthButton } from '@coinbase/cdp-react/components/AuthButton';
function App() {
return (
<div>
<h1>Welcome</h1>
<AuthButton />
</div>
);
}
export default App;
That's it! You've successfully installed @coinbase/cdp-react
, set up the provider, and rendered your first component.