Returns all the contracts for which the owner owns at least one token
Parameters
owner
(address as hex string, default: 0x00005fab4df6b1c4a3eb5cf7db357cd766c65991)- The owner for which we want to check their portfolio.
chain_id
(uint64, default: 0)- Optional. Can be used to view balances from a certain chain. If unset, defaults to
0
and returns results from all chains.
- Optional. Can be used to view balances from a certain chain. If unset, defaults to
block_number
(uint64, default: 0)- Optional. Can be used to view portfolios at a particular block. If unset, defaults to
0
and returns latest.
- Optional. Can be used to view portfolios at a particular block. If unset, defaults to
limit
(uint32, default: 100)- Number of records you want returned.
offset
(uint32, default: 0)- For pagination. If you're showing ten records per page, choose offset = 9 for the second page.
Returns
Array with the following fields:
owner
(address as hex string)- The owner for which we checked the portfolio.
chain_id
(int64)- The chain for the token
token_address
(address as hex string)- The token's address.
token_name
(string)- The token's name.
token_symbol
(string)- The symbol of the token.
The array is sorted in descending order of token_name
.
Query
WITH latest_block_number AS (
SELECT token_address_id_hash,
chain_id,
MAX(block_number) AS latest_block_number
FROM @sim.erc721_owner_changes_block
WHERE token_address_id_hash IN (
SELECT DISTINCT token_address_id_hash
FROM @sim.erc721_owner_changes_block
WHERE owner = lower($owner)
AND (
chain_id = $chain_id
OR $chain_id = 0
)
AND (
block_number <= $block_number
OR $block_number = 0
)
)
AND chain_id IN (
SELECT DISTINCT chain_id
FROM @sim.erc721_owner_changes_block
WHERE owner = lower($owner)
AND (
chain_id = $chain_id
OR $chain_id = 0
)
AND (
block_number <= $block_number
OR $block_number = 0
)
)
AND (
block_number <= $block_number
OR $block_number = 0
)
GROUP BY token_address_id_hash,
chain_id
)
SELECT DISTINCT b.owner,
b.chain_id,
b.token_address,
b.token_name,
b.token_symbol
FROM @sim.erc721_owner_changes_block b
INNER JOIN latest_block_number lbn ON b.token_address_id_hash = lbn.token_address_id_hash
AND b.chain_id = lbn.chain_id
AND b.block_number = lbn.latest_block_number
WHERE owner = lower($owner)
ORDER BY block_last_changed DESC
LIMIT $limit OFFSET $offset