
(二狗子)Dogquant 小狗量化
2.4K posts

(二狗子)Dogquant 小狗量化
@Dogquant0
二狗TG小社群吹水用:https://t.co/X7HvoiaabS 我们自己做的免费🆓交易机器人🤖:https://t.co/ssNbiw8yhM
















As someone who has built in DeFi for 5 years, I'm particularly proud of our bridge tech on RISEx. It's really something. TLDR; - DeFi bridging sucks for CEX users - RISE devs nerded out and built a great onboarding experience - RISEx Users can deposit from any CEX by simply sending USDC to their RISEx deposit address on Ethereum, Base or Arbitrum Those in DeFi are totally fine with using MM or Rabby for everything. We know the typical bridge UX is clunky, but we know it's worth it so the friction is gone. For CEX users? Sending USDC to a browser wallet is confusing and frightening. So I made a point: on RISEx, CEX users must be able to deposit into RISEx by just sending their funds to an address. This is what CEX users are familiar with. The easiest way to do this in practice is using custodial EOAs. Users send their tokens to our EOA, and we prep and submit a bridge-and-deposit transaction for them. The problem is, we don't want to take custody of user assets! Even if many users are comfortable with it, I am not. That's not the product we are building. So we cooked up a solution. The requirements: - Users can deposit directly to a "Deposit Address" and their RISEx account balance will be credited - The solution must be non-custodial - The only external interaction can be keepers, which have no access to funds - Minimal friction. The user pays no gas and no fee on deposits. The solution is pretty complicated, but works a charm. Here's the rundown: Every user gets their own unique deposit address, and that address is a smart contract whose only job is to forward funds to one specific RISEx account. The address exists before the contract does. We use EIP-1167 minimal proxies, tiny ~50-byte clones of a single RISEx implementation, deployed via CREATE2 with a known salt. Because CREATE2 addresses are deterministic, we can compute a user's deposit address before any contract is deployed. The contract is born with its destination hardcoded. When a deposit lands and a keeper triggers processDeposits, the clone is deployed and initialised in the same transaction. Its initialiser permanently writes two things into storage: the source address (where the funds came from) and the destination address (the user's RISEx account). After init, those fields are immutable for the life of that contract. Keepers can press "go" but can't change "where". The bridge() function on each deposit contract is callable only by the factory, and the factory only knows how to do one thing: take whatever balance is held and push it through the bridge to the destination address. It's complex, but the end result is users can move money from any CEX to RISEx by simply withdrawing to their RISEx deposit address on Ethereum, Arbitrum or Base. Clean. No fuss. Oh, and they can withdraw to any address on Ethereum, Base or Arbitrum too! No browser wallet needed




Come on @Revolut, do the right thing for your users. Integrate @HyperliquidX for the deepest liquidity on-chain.


Congratulations to the winners of the first 01 trading competition, an impressive showing from all involved. (pictured, left to right: PNL, Volume, ROI) Registration for the next competition is now live. Lock in.








