- Integrator API keys identify the tenant. They let your backend create strategies, enroll users, read portfolios, and request user-authorized actions within the scopes granted to that key.
- Users remain the root authority for their wallets and portfolios. Enrollment and withdrawal flows require user signatures. An API key alone does not replace a user’s wallet signature.
- Glider manages automation within scoped permissions. Glider operates portfolios through smart-account session keys or delegated agent authority so scheduled and manual rebalances can execute without asking the user to sign every routine rebalance.
- Assets live onchain. Portfolio assets are held in user-specific smart accounts or chain-native managed-account structures, not in an omnibus offchain ledger controlled by an integrator API key.
Mental Model
Think of Glider as three layers:| Layer | Controlled by | What it authorizes |
|---|---|---|
| Integrator tenant | Your backend API key | Access to Glider API resources allowed by your scopes |
| User root authority | The end-user wallet, smart wallet, or passkey root where supported | Enrollment, ownership, and user-approved withdrawals |
| Glider automation | Glider-managed agents and scoped session keys | Rebalance execution inside the permissions the user authorized |
What Glider Manages Centrally
Glider centrally operates the offchain systems needed to make portfolio automation reliable:- API-key authentication, tenant identity, and scope enforcement.
- Strategy and portfolio metadata.
- Scheduling, orchestration, indexing, and operation status.
- Market data, balance reads, policy checks, and route construction.
- Managed automation agents backed by Glider key-management infrastructure.
- Session-key records and delegated permission material needed for automation.
- Idempotency records for write flows such as enrollment and withdrawal submission.
What Is Not Centrally Managed
Glider does not centrally manage:- Your end-user authentication or account recovery.
- Your custody of your own API keys.
- The user’s root wallet, passkey, smart-wallet owner, or recovery policy.
- A shared omnibus balance for your users.
- Arbitrary withdrawals initiated only by an integrator API key.
What Is Onchain
The onchain layer is where asset custody and settlement occur:- Portfolio accounts are chain-specific smart accounts or managed account structures.
- Deposits, balances, swaps, rebalances, and withdrawals settle onchain.
- User signatures are verified against the expected owner for sensitive authorization flows.
- Withdrawal authorizations are bound to the portfolio, recipient, assets, nonce, expiry, chain, and verifying contract.
- For supported Solana/SVM flows, Glider uses a managed-account graph: the user’s root authority bootstraps the managed account, and Glider receives scoped subordinate authority for automation.
Flow Example: Enrollment
Enrollment is a two-stage authorization flow:- Your backend calls
POST /v2/enroll/signaturewith the user’s owner account, target strategy, and chains. - Glider verifies the strategy belongs to your tenant, resolves a managed automation agent, computes the smart-account session-key message, and returns the message plus round-trip fields.
- The user signs the returned message in their wallet.
- Your backend submits
POST /v2/enrollwith the original round-trip fields and the user’s signature. - Glider verifies the signature, creates the portfolio and per-chain smart accounts, stores scoped session-key material, and schedules automation.
- The API key proves the request came from your tenant.
- The user signature proves the owner wallet authorized enrollment.
flowIdbinds retries and prevents duplicate enrollment side effects.- Glider receives scoped automation authority, not the user’s root key.
Flow Example: Withdrawal
Withdrawals are also two-stage:- Your backend calls
POST /v2/portfolios/{portfolioId}/withdraw/signature. - Glider validates tenant ownership, recipient shape, chain match, duplicate assets, live balances, and portfolio smart-account availability.
- Glider returns EIP-712 typed data with a short expiry and a random nonce.
- The user signs the typed data.
- Your backend submits the signed message to
POST /v2/portfolios/{portfolioId}/withdraw. - Glider re-checks ownership, expiry, balances, recipient rules, and the signature before dispatching onchain execution.
- The signed message includes the portfolio, recipient, assets, nonce, expiry, chain, and verifying contract.
- The nonce is the idempotency anchor for safe retries.
- Expired or tampered authorizations are rejected.
- The request is accepted asynchronously, then tracked through an operation id.
Integrator Responsibilities
Integrators are responsible for:- Keeping API keys server-side and limiting internal access.
- Calling
GET /v2/whoamiduring integration to confirm tenant identity and granted scopes. - Showing users exactly what they are signing and preserving returned signable payloads byte-for-byte between stages.
- Mapping your user identity to the correct wallet or smart wallet.
- Respecting idempotency anchors instead of generating new values on retry.
- Handling
401,403,409,429, and5xxresponses according to the documented retry model. - Sending Glider the
X-Correlation-Idfrom failing responses when asking for support.