Delegated Mode
API-driven integration where UR manages blockchain complexity on your behalf.
Will be deprecated soon. Delegated Mode is no longer available for new integrations. Existing partners on this mode continue to be supported. New partners should use Managed Custody Mode, which provides the same API-driven experience without the delegation ceremony.
In Delegated Mode, your platform interacts with UR through REST APIs. Users authenticate once via the UR Webview to complete KYC and grant delegation permissions. After that, your platform can operate their UR Account via API without requiring further user wallet signatures.
This mode is designed for partners who want a Web2-style integration with minimal blockchain exposure for their users.
User onboarding
You redirect the user to a secure UR Webview. Within this Webview, the user completes identity verification (KYC), creates their UR Account and URID, and signs an approval to delegate access to your platform. Once complete, UR redirects the user back to your app with an authorization code.
Unlike External Wallet Access Mode, the user does not sign every action with a personal wallet — they perform a one-time delegation setup here.
Authorization Flow Diagram
Flow Description:
Initialization: The user initiates the process on the Partner App. The Partner constructs a standard OAuth-style Authorization URL and redirects the user to UR.
Onboarding (UR Side): The user lands on the secure UR Webview and authenticates via social login (Google or Email OTP, managed by the UR account system). A UR account is automatically created along with a unique URID. The user completes the KYC process (Liveness/ID scan) directly within the UR Webview. The initial status of the URID is set to "Tourist".
Delegation (Critical Step): Upon submitting KYC data for review, UR prompts the user to grant permissions to the Delegated Contract that is dedicated to the Partner. This authorization enables the Partner to execute future actions (such as offramps) via API without requiring blockchain interaction for every transaction.
Account creation: UR redirects the user back to the Partner's
redirect_uriwith an Authorization Code. The Partner App to retrieve the user'sURID,ETH Address, and status, completing the binding process.Finalization: Once KYC has been approved, the URID status will become live. Follow up functions will be then unlocked for the user.
KYC retry: This step is an exception handling mechanism and is not part of the standard workflow. Following the initial KYC submission, UR may occasionally flag specific verification steps for retry (e.g., due to document quality issues). This status is updated dynamically via the profile API. Best Practice: We recommend performing a status check on this field before the user initiates any UR-related features. The user should be redirected to get.ur.app to complete the retry process if and only if the
kycRetryVerificationLevelfield returns a non-zero value.
Card
Once the user completes onboarding and their URID status becomes 'Live', they are eligible for card issuance. Critical operations — such as card activation, revealing card details (PAN/CVV), and managing card settings — are performed by redirecting the user to the UR Card Webview. Refer to this document for details of integrating the Card webview integration.
Profile
Some users may need to view their IBAN information, so we provide an integration for the Profile Webview. Partners can integrate this webview into their app as either a webview or a dialog. For detailed integration instructions, please refer to this document.
Bank transfer
For users who need to move funds between their UR account and external bank accounts, we provide an integration for the Bank Transfer Webview. Partners can integrate this webview into their app as either a webview or a dialog. For detailed integration instructions, please refer to this document.
Core banking functions
Crypto-to-fiat (off-ramp)
Core Mechanism
Quotation & Pricing: The Partner requests a real-time exchange rate and fee structure via the Offramp quote API. This ensures the user sees the exact estimated fiat output before confirming.
API-Driven Execution: Once the user confirms the trade on the Partner's UI, the Partner triggers the transaction by calling the Offramp API. Critically, this step does not require a user wallet signature. The Partner signs the API request using their own key.
On-Chain Settlement: UR's backend validates the request and triggers the Delegated Contract on the Mantle Network. The contract verifies the user's pre-authorized allowance, transfers the authorized crypto assets (e.g., USDC), and credits the user's UR account with the corresponding fiat balance (e.g., USD).
Asynchronous Notification: Upon successful on-chain settlement, UR notifies the Partner via a webhook, allowing the Partner to update the user's UI to reflect the completed transaction.
Fiat-to-crypto (on-ramp)
Available soon. On-ramp (fiat-to-crypto) is not yet available for integration and will be enabled in a future release. See External Wallet Access Mode for the on-ramp implementation reference.
Fiat-to-fiat (FX)
Coming soon. See the External Wallet Access Mode for the current FX implementation.
Cash pay-in
Coming soon. Users' bank account details can be retrieved via the Profile API. Currently, bank transfers are limited to same-name accounts in EUR and CHF only.
Cash pay-out (bank transfer)
Coming soon. See the External Wallet Access Mode for the current bank transfer implementation.
Last updated