Skip to Content

User wallet

Alongside the wallet you connect with, every user has a Keyring user wallet: a small on-chain contract that moves funds between you, the issuer, and your position during winding and unwinding. On a wind it forwards your deposit to the issuer and receives the minted tokenised asset; on an unwind it returns the asset to the issuer and receives the redemption proceeds. Your position is never held there: the collateral and debt sit in a lending market account owned by your own wallet, and the user wallet only carries funds in transit between the issuer and that position. Your own wallet cannot play this role: issuance and redemption settle over hours or days, so the system must move funds at exactly the right moment without asking you to sign each step, and it can only do that safely from a contract with fixed on-chain rules, never from your personal wallet, which would require open-ended permissions over your funds. The user wallet is that contract: every issuer interaction runs from an address dedicated to you, your funds never mix with other users’ funds, and the issuer deals with one stable address per user. You have exactly one: its address differs from your own wallet address but is derived from it, so the two are permanently linked and your user wallet address can be computed from your own, even before the wallet exists. It is created before your first wind: the app asks you to sign a one-time wallet creation transaction, and the wallet exists from then on.

From creation to use, the wallet’s life looks like this:

Who controls it

You never operate the user wallet directly. In normal operation, only the wind and unwind manager contracts Keyring has activated can move funds through it, which they do to execute the wind and unwind flows; no other party, you included, can run transactions through the wallet. The one action you take directly is the small verification transfer described below.

Whitelisting with the issuer

Some tokenised assets are permissioned: every transfer requires both sender and recipient to be whitelisted by the issuer. In markets that use a Keyring user wallet, your own wallet never holds the token: the user wallet is the address that holds and moves it, so it is your user wallet that the issuer must whitelist. Being whitelisted yourself, for example from onboarding with the issuer, is not enough. If a wind or unwind fails even though you are onboarded, ask the issuer to also whitelist your user wallet address.

Small transfers for verification

Some services, exchanges in particular, verify ownership of a wallet by asking for a small transfer sent from its address. Because you never operate the user wallet directly, it has one narrow feature for exactly this case: a small transfer that originates from the user wallet’s address, triggered by a transaction you sign with your own wallet, naming the token, the recipient, and the amount.

For a token, the amount is pulled from your own wallet and forwarded to the recipient in the same transaction; this needs a standard token approval from your wallet to the user wallet first. The transfer arrives from the user wallet address, but it spends your own balance, never the funds the wallet handles for your positions. For ETH, the wallet sends from its own balance, so you first send the ETH to the user wallet address.

Only tokens Keyring has approved for this feature can be sent, each capped by a daily limit; usage counts per calendar day (UTC), and a transfer that would exceed the day’s limit is rejected. The approved-token list and the limits are maintained by Keyring and are unrelated to any issuer whitelist.

Last verified on