picasoUser Behavior Segmentation
    Updated 2025-04-05
    with vault_map as (
    select column1 as contract_address, column2 as symbol
    from values
    ('0x3c12aa52b014acf7957308808362909b5757cca8', 'wsteth'),
    ('0x10d0d11a8b693f4e3e33d09bbab7d4afc3c03ef3', 'weeth'),
    ('0x4a5c95a0e3fca4148f91ceb637fba0e1080be40e', 'ezeth'),
    ('0x46e3c018798d6de4517a3c98358e4bd8d334b79c', 'rseth'),
    ('0xf34253ec3dd0cb39c29cf5eeb62161fb350a9d14', 'sweth'),
    ('0x1773002742a2bcc7666e38454f761ce8fe613de5', 'rsweth'),
    ('0x29c85c752e854b0cf2372e6b6c56f260755f5120', 'pzeth'),
    ('0x49c077b74292aa8f589d39034bf9c1ed1825a608', 'weth')
    ),

    base as (
    select
    lower(event_name) as event_name,
    origin_from_address
    from swell.core.ez_decoded_event_logs l
    join vault_map v
    on lower(l.contract_address) = lower(v.contract_address)
    where
    l.origin_to_address = '0x08739cbede6e28e387685ba20e6409bd16969cde'
    and lower(event_name) in ('deposit', 'borrow', 'repay', 'withdraw')
    and l.tx_succeeded = true
    group by event_name, origin_from_address
    ),

    labeled as (
    select
    origin_from_address,
    max(case when event_name = 'deposit' then 1 else 0 end) as is_depositor,
    max(case when event_name = 'borrow' then 1 else 0 end) as is_borrower,
    max(case when event_name = 'repay' then 1 else 0 end) as is_repayer,
    max(case when event_name = 'withdraw' then 1 else 0 end) as is_withdrawer
    from base
    group by origin_from_address
    Last run: 20 days ago
    USER_TYPE
    USER_COUNT
    1
    Full-cycle84
    2
    Deposit-only67
    3
    Mixed/Other52
    4
    Borrow w/o Repay30
    4
    82B
    1s