> ## Documentation Index
> Fetch the complete documentation index at: https://circle-devdocs-test-ai-codegen-component.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Started

export const GridItem = ({children, image, caption}) => {
  if (image) {
    return <div className="grid-item-image">
        <div className="image-wrapper">
          <img src={image} alt={caption || ""} />
        </div>
        {caption && <span className="image-caption">{caption}</span>}
      </div>;
  }
  return <div className="grid-item-text">
      <p>{children}</p>
    </div>;
};

export const Grid = ({children}) => {
  return <div className="custom-grid">
      {children}
    </div>;
};

export const FeatureItem = ({title, icon, iconColor = '#1061a6', children, iconSize = 20, iconType = 'regular', href}) => {
  const titleContent = href ? <a href={href} target="_blank" rel="noopener noreferrer">
      {title}
      <Icon icon="arrow-up-right-from-square" size={12} className="feature-link-icon" />
    </a> : title;
  return <div className="feature-item">
      <div className={`feature-icon`}>
        <Icon icon={icon} size={iconSize} color={iconColor} iconType={iconType} />
      </div>
      <div className="feature-content">
        <h3 className="feature-title">{titleContent}</h3>
        <div className="feature-description">
          {children}
        </div>
      </div>
    </div>;
};

export const FeatureGrid = ({children, cols = 2, backgroundColor}) => {
  const columns = cols === 1 ? 1 : 2;
  return <div className="feature-grid-container" style={backgroundColor ? {
    backgroundColor
  } : {}}>
      <div className="feature-grid" data-cols={columns} style={{
    gridTemplateColumns: `repeat(${columns}, 1fr)`
  }}>
        {children}
      </div>
    </div>;
};

## Create a Developer Services account

To access the Developer Services Console, sign up with your email address. Our
pay-as-you-grow pricing model eliminates upfront fees and contract negotiations,
starting at a low cost per wallet. The pricing scales as your user base expands.

To access **Set up your account** on Circle's Developer Services Console.

<Card title="Set up your account" href="/signup" arrow="true" cta="Sign Up">
  Create an account on Circle's Developer Services Console.
</Card>

## Understanding Testnet vs Mainnet environments

<Grid>
  <GridItem image="https://mintcdn.com/circle-devdocs-test-ai-codegen-component/zjwlouYM7ujBrWdY/interactive-quickstarts/get-started/images/testnet.png?fit=max&auto=format&n=zjwlouYM7ujBrWdY&q=85&s=18fdee650f12abaf7cf90cedbee400bf" caption="SANDBOX" width="474" height="120" data-path="interactive-quickstarts/get-started/images/testnet.png" />

  <GridItem>
    Testnet is akin to a training ground for developers. It's a simulated
    environment where you can develop, test, and polish your applications with
    confidence. In this space, you can execute transactions and test various
    scenarios without any financial implications, as Testnet does not involve
    real cryptocurrencies or assets.
  </GridItem>

  <GridItem image="https://mintcdn.com/circle-devdocs-test-ai-codegen-component/zjwlouYM7ujBrWdY/interactive-quickstarts/get-started/images/mainnet.png?fit=max&auto=format&n=zjwlouYM7ujBrWdY&q=85&s=703e39f83072a220239227825e118e55" caption="PRODUCTION" width="474" height="116" data-path="interactive-quickstarts/get-started/images/mainnet.png" />

  <GridItem>
    Mainnet is where everything goes live. This network handles actual
    transactions with genuine digital currencies. Operating on Mainnet means
    dealing with real-world consequences and genuine assets. The results of
    actions performed here are immediate and impactful.
  </GridItem>
</Grid>

Before jumping into Mainnet, it is crucial to rigorously test and validate your
applications within the Testnet environment first. This precaution ensures that
all systems and functionalities operate correctly before you transition to a
live environment. Once you have thoroughly vetted your application in Testnet,
you can migrate to Mainnet operations.

<Note>
  In our quickstarts, we use Testnet to guarantee a secure learning experience.
  Your Testnet API key serves as the gateway to this development.
</Note>

## Create your API key

Generate a standard API key:

<Steps>
  <Step title="Log in to the console">
    Use your login details to log in to the Circle Developer Services console.
  </Step>

  <Step title="Go to API Keys">
    On the left hand nav, select the [API Keys](/api-keys) page, and then select **CREATE A KEY**.

    <Frame>
      <img src="https://mintcdn.com/circle-devdocs-test-ai-codegen-component/zjwlouYM7ujBrWdY/interactive-quickstarts/get-started/images/api_keys.png?fit=max&auto=format&n=zjwlouYM7ujBrWdY&q=85&s=2941170ed69f4932d4105f117e273d05" alt="List of API keys" width="2880" height="1288" data-path="interactive-quickstarts/get-started/images/api_keys.png" />
    </Frame>
  </Step>

  <Step title="Set Up your API key">
    On the **Create an API Key** page, enter a name for your API key, and then select **Standard Key**.

    <Frame>
      <img src="https://mintcdn.com/circle-devdocs-test-ai-codegen-component/zjwlouYM7ujBrWdY/interactive-quickstarts/get-started/images/create_key.png?fit=max&auto=format&n=zjwlouYM7ujBrWdY&q=85&s=a5cd53372ae79fba463feff7ebe5370e" alt="Create new API key form" width="2880" height="1936" data-path="interactive-quickstarts/get-started/images/create_key.png" />
    </Frame>
  </Step>

  <Step title="Copy and Store your API key">
    The console displays your key only once after you create it. Make sure to copy the key value and store it in a secure location. You can't retrieve the key value after you close the dialog. If you lose it, you need to create another key. Never share your key with anyone.

    <Frame>
      <img src="https://mintcdn.com/circle-devdocs-test-ai-codegen-component/zjwlouYM7ujBrWdY/interactive-quickstarts/get-started/images/api_key_created.png?fit=max&auto=format&n=zjwlouYM7ujBrWdY&q=85&s=cf4cacf2706f596c48b73d5f4226aade" alt="API key successfully created" width="2880" height="1936" data-path="interactive-quickstarts/get-started/images/api_key_created.png" />
    </Frame>
  </Step>
</Steps>

## The power of Testnet

<FeatureGrid cols={1} backgroundColor="transparent">
  <FeatureItem title="Test With Assurance" icon="sparkles">
    Engage in robust testing of your applications, smart contracts, and other
    blockchain innovations within a safe environment that simulates real-world
    operations. This sandbox allows for trial and error without any financial
    stakes, so mistakes carry no monetary risk.
  </FeatureItem>

  <FeatureItem title="Achieve Broad Compatibility" icon="arrows-maximize">
    Testnet serves as a preparatory platform for launches on various
    blockchains. Whether your focus is on Ethereum, Polygon, or Avalanche,
    Testnet provides insights into how your applications will perform across
    different ecosystems.
  </FeatureItem>

  <FeatureItem title="Encourage Innovation" icon="lightbulb-on">
    The Testnet environment is the perfect place to brainstorm and develop new
    blockchain solutions. Here, you have the license to push boundaries and
    explore various possibilities without financial constraints.
  </FeatureItem>

  <FeatureItem title="Iterate Swiftly" icon="bolt">
    Benefit from the ability to quickly refine your projects based on
    immediate feedback and test insights. The adaptable nature of Testnet
    supports rapid prototyping and swift iteration, which can lead to faster
    advancements and better outcomes in your development cycle.
  </FeatureItem>
</FeatureGrid>

**Next: Explore our Quickstarts**

<Columns cols={3}>
  <Card title="Developer-Controlled Wallet" icon="code" href="/interactive-quickstarts/dev-controlled-wallets" arrow="true" cta="Start Tutorial">
    Will show you how to set up custodial wallets by establishing your entity secret and how to initiate a transaction.
  </Card>

  <Card title="User-Controlled Wallet" icon="code" href="/interactive-quickstarts/user-controlled-wallets" arrow="true" cta="Start Tutorial">
    Learn how to set up non-custodial wallets for your end-users and initiate a transfer for them.
  </Card>

  <Card title="Using CCTP with Circle Wallets" icon="code" href="/interactive-quickstarts/user-controlled-wallets" arrow="true" cta="Start Tutorial">
    Walkthrough of using the Cross-Chain Transfer Protocol (CCTP) with Circle Wallets, which allows you to bridge USDC across Blockchains.
  </Card>
</Columns>

[Developer Services](/): Bring any
web or mobile app on-chain. Integrate or create wallets with composable APIs and
SDKs.

[Stablecoin Protocols](/stablecoins/what-is-usdc): Move USDC securely across
blockchains for seamless user onboarding, on-demand treasury rebalancing, and
more. Live on 8 blockchains.
