Civic Docs home pagelight logodark logo
  • Contact Us
  • Try Auth
  • Try Auth
  • About us
  • Blog
  • Help Center
  • Getting Started
    • Civic Auth Overview
    Integration
    • React
    • Next.JS
    • Vanilla JavaScript
    • Node.JS
    • React Native
    • Other OIDC / OAuth 2.0-Compliant Environments
    • FAQs
    • Error Codes
    • Bring Your App to Production
    • Changelog
    Web3
    • Embedded Wallets
    • Ethereum / EVM
    • Solana
    Integration

    FAQs

    Frequently asked questions about Civic Auth integration.

    To obtain a new Client ID, sign up at auth.civic.com to register your application. You can find your unique Client ID to use when integrating our API. Civic Auth uses Proof Key for Code Exchange (PKCE) to securely authenticate requests, so a client secret is not required for frontend integrations.

    Contact our support team via Discord for assistance in managing or revoking keys associated with your application.

    Civic Auth supports Google as an authentication provider. However, Civic is working to add support for other major OIDC-compliant providers, such as Microsoft and Apple. Once available, these can be configured within your integration setup.

    Contact our team via Discord and let us know which provider you’d like to see added.

    No, but this is coming soon. Currently, we don’t support connecting users’ existing self-custodial wallets. We only support embedded wallets, which are generated on behalf of the user by our non-custodial wallet partner.

    Neither Civic nor your app ever has access to the wallets’ private keys.

    For Solana, we expose the Civic embedded wallets via the wallet-adapter interface. This means that Civic will be available as a choice for your users to connect when using @solana/wallet-adapter-react:

    In the example above, the user has Phantom installed and can connect their existing Phantom wallets to your dApp via the wallet-adapter. These wallets cannot currently be linked to Civic Auth. When the user selects Civic Auth, they are taken through a social login flow which gives them an embedded wallet generated by our backend, which is then exposed to your dApp via the wallet-adapter interface.

    For Ethereum, you could use Civic’s embeddedWallet() wagmi connector alongside other connectors like Metamask, so your code can switch between Civic embedded wallets and the user’s other installed wallets. Currently those wallets cannot be linked to the Civic account, they are separate.

    Civic Auth wallets are provided through a partnership with metakeep.xyz. These wallets are Externally Owned Accounts (EOAs), which are authenticated by a private key that is held by the Metakeep infrastructure. They are linked to a user’s email address. Users verify ownership of their email by entering a unique email code. Wallet management occurs securely through client-side encryption using keys from our wallet provider.

    No, Civic does not own these wallets. Civic Auth provides a non-custodial wallet solution. Civic facilitates wallet creation and management but does not hold custody of assets or keys.

    Users do not directly access their private keys. The wallets are secured using HSM, and transactions are authorized through the user’s SSO login credentials. This simplifies user experience and mitigates the risks of mismanaging private keys.

    If a user loses access to their SSO (e.g., Google login), Civic Auth’s wallet provider includes a recovery feature to restore wallet access, which works independently of Civic’s infrastructure. Recovery is managed through the provider. Contact our team via Discord so that we can initiate the wallet recovery process.

    Yes. By default, the Client ID retrieved from the dashboard will be configured for any environment. This will allow you to test your implementation before going live to production.

    You can get your Client ID at https://auth.civic.com/. Check out https://github.com/civicteam/civic-auth-examples to see how an application integrated with Civic Auth functions.

    All domains or redirect URLs used by your application must be explicitly included in your Civic Auth configuration when your app is in production mode. This ensures that login and logout redirects function correctly and securely.

    Civic Auth provides usage data, including logins from the user account and wallet creation events, via the developer dashboard at https://auth.civic.com.

    If you’re experiencing any issues integrating Civic Auth, follow the troubleshooting steps below:

    1

    Verify if your Client ID at https://auth.civic.com/ is valid and set up properly.

    2

    Check your console and network tabs for errors.

    3

    If you’re using an application that’s already in production, ensure that all domains or redirect URLs are correctly registered in your app’s configuration. Civic Auth will only redirect to registered domains after login or logout.

    If you’ve completed the steps above and still encounter issues, create a ticket on our Discord and provide the following details to help us investigate further:

    • A clear description of exactly what you’re trying to achieve and the issue you’re encountering in doing so

    • At which step in the implementation does the issue arise

    • Screenshots of the error or unexpected behavior

    • Relevant snippets of your code, especially the sections interacting with Civic Auth.

    • Any error messages from the Console and/or Network tabs

    Developers can report bugs or suggest new features via Discord. Provide as much detail as possible, including logs, screenshots, and steps to reproduce the issue.

    While Civic Auth doesn’t have this feature yet, we are actively working to include it in a future version of Civic Auth.

    While Civic Auth doesn’t have this feature yet, we are actively working to include it in a future version of Civic Auth.

    Currently, Civic Auth does not natively support blocking specific wallets or users.

    Other OIDC / OAuth 2.0-Compliant EnvironmentsError Codes
    xlinkedindiscordyoutube
    Powered by Mintlify
    Assistant
    Responses are generated using AI and may contain mistakes.