Sign in to manage your organization.
Swivy dashboard access starts with an operator identity. After sign-in, create or join an organization, then configure projects, environments, API keys, chains, gas sponsorship, users, and wallets under that organization.
Enter your work email, then request a six-digit code.
Get started
Create your app, choose wallet rules, test a user, then copy the SDK snippets into your product.
Connect Swivy to your app.
Create a Swivy environment, choose the wallets and chains your app supports, test sign-in as an end user, then copy the generated keys and SDK snippets into your frontend and backend.
Your integration path
Swivy has two surfaces: this dashboard for your team, and the API/SDK your app calls for your users. Follow these three steps before touching the advanced controls.
What you copy into your app
Once setup is complete, use the Integrations section as your handoff checklist.
- FrontendApp ID and publishable key for Swivy Web SDK login and embedded wallet creation.
- BackendSecret key for server-side API calls, webhooks, and controlled admin operations.
- Users and walletsThe Users page shows user email, identity ID, linked wallets, managed wallets, and custody status.
createSwivyClient({ appId, publishableKey })
Overview
Recommended next steps
Create your Swivy app
This is the app record your product uses for login, wallets, policies, users, and API keys.
What this setup gives you
Use the generated credentials in your own frontend and backend. Your app users sign in through your UI, then Swivy creates and manages their wallets under this environment.
- 1Click Create my app. Keep the default development names unless you already know your production naming.
- 2Open Integrations and copy the frontend and backend snippets into your app.
- 3Open Test user flow, sign in as a test user, create wallets, then confirm that user and wallet appear in Users.
Step 2: Choose Wallet Features
Turn on the chains and runtime features your app should expose, then save them to the environment.
Wallet feature controls
Gas sponsorship
Choose whether Swivy can pay network fees for users and which networks are eligible.
Webhooks
Register backend endpoints that receive signed Swivy auth, wallet, and intent events.
Webhooks registered for this environment
Email delivery
Send dashboard and end-user login codes to a real inbox instead of Render or Docker logs.
Recommended: HTTP provider
Use this when you have an email service webhook, worker, or transactional email endpoint. Render stores the token as a secret env var.
SMTP provider
Use this for SendGrid, Postmark, Resend SMTP, Mailgun, or any hosted SMTP mailbox provider.
- 1Open Render, choose swivy-api, then open Environment.
- 2Set either the HTTP env vars or the SMTP env vars below, then keep SWIVY_LOG_CODES=false.
- 3Redeploy swivy-api, refresh this page, and request a new email code.
Chain routes
Configure the RPC routes Swivy will use for the enabled EVM and Solana networks.
Offline signing
Let users sign prepared blockchain transactions over Bluetooth mesh or another local transport when their signing device has no internet.
RPC Infra
Use Swivy's first-party RPC gateway by default, with Alchemy, QuickNode, Helius, or custom providers available as fallbacks.
| Provide | Network | Family | Chain ID | RPC URL override |
|---|---|---|---|---|
| ethereum-mainnet | evm | |||
| base-mainnet | evm | |||
| arbitrum-mainnet | evm | |||
| optimism-mainnet | evm | |||
| polygon-mainnet | evm | |||
| base-sepolia | evm | |||
| ethereum-sepolia | evm | |||
| tempo-testnet | evm | |||
| solana-mainnet | solana | |||
| solana-devnet | solana |
Blockchain data sources
Choose where Swivy reads portfolio, token, NFT, price, search, and explorer data.
API keys
Create and manage credentials: a publishable key for your frontend and a secret key for your backend.
- 1Rotate keypair creates a publishable key for your frontend and a secret key for your backend.
- 2The secret is shown once in Admin Output and the Integration Bundle, then the credential ID is used for revoke/rotation.
- 3Use Revoke keypair when a key is leaked or an app environment should stop accepting that key.
Advanced policy JSON
Swivy operator admin
This is the internal management surface for Swivy support and platform operations. Customer developers should use Get started, Users, Wallets, API keys, and Docs.
- 1Inspect a customer organization, project, or environment without asking the developer to copy internal IDs repeatedly.
- 2Use organization access controls for support, invites, and scoped admin credentials.
- 3Keep emergency credentials separate from the customer dashboard and scoped to the smallest needed operation.
- 1swivy-console is where customers get API keys, manage users, inspect wallets, and read docs.
- 2swivy-api is what customer apps and SDKs call.
- 3An internal admin deployment should use SWIVY_CONSOLE_SURFACE=internal_admin and stronger access controls.
Advanced tenant and organization controls
Organization Access
Manage enterprise operators, org-scoped admin keys, and invite flows from the same environment context.
Organization Context
Organization Workspace
Browse projects and environments without manually chasing IDs through separate API calls.
Workspace Stats
Projects and Environments
Organization Members
Organization Invites
Organization Admin Keys
Environment Snapshot
Step 4: Deploy Handoff
Once the Test Wallets checklist is green, copy these into your app and deploy your own frontend/backend.
Integrations
Connect the Swivy environment to your app, backend, auth surfaces, and chain providers.
Integration Bundle
Wallet Deploy Smoke
End-to-end proof for a Swivy ID: email login, agent EVM wallet, agent Solana wallet, split-custody browser requirement, tool guardrails, and a mock EVM execution intent.
Terminal Smoke Command
Passkey Split-Custody Smoke
Acceptance proof for personal self-custody wallets: passkey approval unlocks wallet reconstruction, then EVM and Solana messages are signed locally from browser/device shares.
Staging Smoke Commands
Docs and integration guide
Use this page as the product-facing handoff: where users get keys, how your app calls Swivy, and how to verify wallets after launch.
- 1API keys are where a developer copies browser and server credentials for their app.
- 2Users is where they inspect their app users, emails, linked wallets, managed wallets, and recent intents.
- 3Wallets is where they test the same embedded wallet flow their app will run.
- 1Developer dashboard is the public customer surface. It should never expose break-glass credentials.
- 2Internal admin is a separate console surface for support, customer org inspection, platform health, and emergency scoped access.
- 3Render deploys the API and console as separate URLs. Customers use the console URL; apps call the API URL.
- 1Console URL: give this to customer developers so they can create keys, inspect users, read docs, and test wallets.
- 2API URL: use this in SDK config and backend requests. Current proxied API is https://api.swivy.dev.
- 3Docs URL: share /docs for the OpenAPI-backed reference and this tab for the shortest integration checklist.
- 1Email-code login creates a Swivy identity in this environment.
- 2Wallet bootstrap can auto-create EVM and Solana embedded wallets under that identity.
- 3The dashboard user directory shows email, external user ID, managed wallets, linked wallets, custody mode, sessions, and intents.
Frontend quickstart
Backend quickstart
- Start code delivery
POST /v1/auth/email/start - Verify the six-digit code
POST /v1/auth/email/verify - Review identities in the dashboard
Users -> Email identities
- Add the app origin before launching passkeys or hosted auth.
- Configure real email delivery instead of local log codes.
- Use environment secret keys only from your backend.
- Create or resolve the Swivy user identity.
- Bootstrap EVM and Solana wallets for that user.
- Require passkey or challenge approval for sensitive signing actions.
- Users shows email, external user ID, auth factors, and linked wallets.
- Wallets shows managed wallet addresses and custody posture.
- Recent intents help debug transaction and signing attempts.
- Enable Offline signing in App Settings before clients create envelopes.
- Install the Expo SDK and native Bluetooth adapter package.
npm install @swivy/expo @swivy/expo-bluetooth-mesh react-native-ble-plx - Run the native build/prebuild flow so Bluetooth permissions and platform radio capabilities are available.
- Pair request envelopes with an HMAC secret so nearby peers cannot inject unsigned transactions.
- Keep split custody and passkey approval required for offline signing.
- Use short envelope TTLs because nonce, fee, and blockhash freshness still depend on a connected coordinator.
- Moves signed Swivy envelopes between nearby devices without internet on the signing device.
- Does not broadcast to a blockchain by itself; a connected relay imports the response and sends the signed payload.
- Does not create a new custody mode; it is a transport for existing split-custody wallets.
- Share the console URL with developers who need keys and user management.
- Share the API URL with backend implementers and SDK config.
- Keep internal Swivy admin access separate from customer organizations.
- Run a real email-code sign-in from the customer app.
- Create one embedded wallet and confirm it appears under Users.
- Rotate test keys before giving production credentials to customers.
Quickstart Env Vars
Web SDK Snippet
Node SDK Snippet
Launch Readiness
Computed from the loaded environment policy, chain routes, runtime keys, webhook state, OIDC clients, and signer trust.
OIDC / Sign in with Swop
Create issuer clients on this environment so another app can use Swop as its login provider and then exchange that identity into its own runtime session.
OIDC Integration
Session Grants
Users
Inspect users, auth methods, and wallet records created through this Swivy environment.
Customer user directory
User Detail
Credentials
Chain Targets
Recent Intents
Webhooks
OIDC Clients
Audit Log
Admin Output
Step 3: Test the Wallet Flow
Use this as the acceptance pass before deploying: sign in as a user, create both embedded wallets, add a passkey, then prove the browser can sign with the local share.
- 1Copy the App ID and publishable key from Integrations into your frontend.
- 2Run the same sequence here that your app will run: request email code, verify user, create EVM wallet, create Solana wallet.
- 3Refresh the admin dashboard. The user and both wallets should appear under Users, proving Swivy issued real runtime wallet records for the app.
3A: App Config
These are the publishable credentials your frontend will use. The local setup wizard fills them automatically.
3B: Privy-style signup readiness
Check whether this environment is configured for email login, passkey step-up, and split-wallet auto-provisioning.
User authentication
Configure the auth posture and run a live email sign-in test.
Passkey enrollment
After a test user signs in, enroll a passkey here to prove Swivy can gate wallet signing and self-custody unlocks with WebAuthn.
Sign in a test user
Wallets
Create and inspect embedded EVM and Solana wallets for the signed-in test user.
Authorization
Manage the signing keys and user factors that authorize wallet operations.
Signing keys
3E: Prepare Self-Custody
Optional: Backend Session Grant
TOTP Enrollment
SMS Enrollment
Passkey Enrollment
Open User authentication to enable and enroll passkeys for the signed-in test user.