# Deeper Dive

Smoke is built on a cross-chain lending protocol underneath. To make it feasible, it has the following characteristics:

### **1. Off-Chain Tracking**

_To Prevent Double Spending_&#x20;

In order **to offer instant cross-chain loans**, we facilitate borrowing from an off-chain issuer. An off-chain issuer will have a birds-eye view of a user's position across chains and is incentivised to not approve loans exceeding a user's credit as it would be their own capital.

<figure><img src="https://1503881232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLvnV17kmFqCozhUNKTbn%2Fuploads%2FeTsPq5QROC1JzgXpE6om%2FPasted%20image%2020240927080324.png?alt=media&#x26;token=e0fa99a6-3544-413a-9999-c569f08a3ebe" alt=""><figcaption></figcaption></figure>

### **2. Passive Lending**

_To Maximize Returns_&#x20;

Issuers are required to manage their cross-chain inventory but are not required to lock unused capital into Smoke contracts at all times. For example, if there is low demand to borrow on a chain, they can park their capital on AAVE to keep earning yield, but should do it on the same chain for instant lending.&#x20;

### **3. Locked Collateral with Forced Withdrawal**

_To Prevent Users from Rugging with Debt_

A user shouldn't be allowed to withdraw their collateral while having debt on other chains. So the user needs the issuer's approval to withdraw their collateral or they can withdraw by proving that they haven't borrowed above limits on other chains via cross-chain messaging.

<figure><img src="https://1503881232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLvnV17kmFqCozhUNKTbn%2Fuploads%2FnWJUGRcD9Ik9jiFHDAnt%2FPasted%20image%2020240927115313.png?alt=media&#x26;token=6a26c704-6572-41be-a768-f5d3f1658f71" alt=""><figcaption></figcaption></figure>

### **4. No Messaging While Borrowing**

_To Offer Low Latency_

One of the reasons why Smoke is instant and cheap is because there's no need for cross-chain messaging when users are spending. Cross-chain messaging is only required during forced withdrawals or during liquidations.&#x20;

### **5. Accounts Managed on One Chain**

_To Manage Spenders & Limits_

Base acts as a place where users can manage credit limits on different chains with an account ID that is used to borrow on different chains.&#x20;

### **6. Repay From Any Chain**

_Because Otherwise Smoke Doesn’t Make Sense_

A user must repay on the chain they borrowed by using solutions like [Socket](https://socket.tech) that allow batched repayments in a chain abstracted manner. Or a CEX can make repayments really easy if they're the issuers.&#x20;

<figure><img src="https://1503881232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLvnV17kmFqCozhUNKTbn%2Fuploads%2F8fuuHpmfw1EF6uKsyiFs%2Fimage.png?alt=media&#x26;token=097eaaee-d0a0-404d-bab7-da6f921ccabe" alt=""><figcaption></figcaption></figure>
