WITH
wallets AS (
SELECT
tx_from[0] AS wallet,
MIN(block_timestamp)::date AS min_date
FROM terra.transactions
GROUP BY wallet
HAVING min_date >= CURRENT_DATE-90
),
tx_ids AS (
SELECT DISTINCT tx_id
FROM terra.transactions
WHERE tx_from[0] IN (SELECT wallet FROM wallets)
)
SELECT
COUNT(DISTINCT msg_value:sender) AS users_total
FROM terra.msgs
WHERE
tx_status = 'SUCCEEDED'
AND msg_value:contract::string = 'terra1dh9478k2qvqhqeajhn75a2a7dsnf74y5ukregw' --Prism
AND msg_value:execute_msg:send:amount IS NOT NULL
AND msg_value:execute_msg:send:amount/1e6 > 0
AND tx_id IN (SELECT tx_id FROM tx_ids)