NFT Collection Creator Wallet Address?

Does anyone know if there is a way to get the NFT collection creator address?

Hi @waterglobal

You can check first events of the NFT contract. There will be something like OwnerTransferShip transferred. Or just check the first transactions and you will find the creator address

So would the first step be getting the NFT and then looking up all the transactions for the NFT? Which API on Moralis allows me to get the transactions for the NFT? Thanks.

how can you identify now the creator of a collection, from etherscan/bscscan/polygonscan?

@cryptokid that’s what I’m trying to figure out…

if you can identify the transaction that created that collection, you could say that the address that made that transaction is the creator?

Any idea which would be the best Moralis API to use to get the transaction for the NFT?

1 Like

Any solutions on this?

No easy way for this. As Yomoo mentioned a definite way is to get the very first transaction where the creator’s address will be the from address.

Have you tried anything? Something that kinda works for one collection I tried is getting the first transfer event using getContractNFTTransfers and then looking up the transaction hash with `getTransaction for the from_address.

1 Like

I think that we plan to make an api endpoint for this in the future. You can try to get the first event for that address.

1 Like

Hi glad & cryptokid,
Thanks for your suggestions.

I actually tried the approach you suggested on Moralis console, using “/nft/{address}/{token_id}/transfers” API. (Screenshot below)

I used one of BAYT’s token address & token ID that I found on OpenSea, the link is below;
BAYT #529 on OpenSea

The API response is below;

{
  "total": 11,
  "page": 0,
  "page_size": 500,
  "cursor": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmRlciI6IkRFU0MiLCJvZmZzZXQiOjUwMCwibGltaXQiOjUwMCwidG9rZW5fYWRkcmVzcyI6IjB4YmM0Y2EwZWRhNzY0N2E4YWI3YzIwNjFjMmUxMThhMThhOTM2ZjEzZCIsInRva2VuX2lkIjoiNTI5IiwicGFnZSI6MSwid2hlcmUiOnt9LCJrZXkiOiIxMjM0NDUxMy4xMDguMTM2LjAiLCJpYXQiOjE2NTAzODE5Nzd9.ZwOts2c01Ztzf2ZqGxbHFWWjaByHXxuhIPzHDkANDwA",
  "result": [
    {
      "block_number": "14418056",
      "block_timestamp": "2022-03-19T16:57:39.000Z",
      "block_hash": "0xd443ad6251fa992735d4b5c7b1427d0ae7f19213847b569eee973abc5010e06c",
      "transaction_hash": "0x84c950ca7efea921cd19e541a146976c5e7818bc60f0750999ea840d8fff97b8",
      "transaction_index": 144,
      "log_index": 304,
      "value": "110000000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x74891cebd5fe49ad5043548cef92553fb897cfe7",
      "to_address": "0xf42da2860c700b2f419bbf1862ab3de6887677b4",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "14417611",
      "block_timestamp": "2022-03-19T15:20:38.000Z",
      "block_hash": "0x8bea08457e8be16abce28b96ac312549d646040bc7f84f726480ca87b4360910",
      "transaction_hash": "0xcce8585d63c395e8df97d4ae94161b70a91dc06450fe1de90476dc81c35d0a72",
      "transaction_index": 212,
      "log_index": 337,
      "value": "0",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x138b9057d61e893b72b33ab2d17f24ac87bd33cb",
      "to_address": "0x74891cebd5fe49ad5043548cef92553fb897cfe7",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "14417548",
      "block_timestamp": "2022-03-19T15:05:16.000Z",
      "block_hash": "0x37a1156f97d3711456a92474038523bd1301aa18e0d3aafc8990645e6905ee22",
      "transaction_hash": "0x39738ec5a0790d1c67dd246da72037944c1e1f6c91468fb4bb626770a5609bad",
      "transaction_index": 146,
      "log_index": 244,
      "value": "120000000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x8d0f3988d864757bb429b08df92b93c185bcc2ea",
      "to_address": "0x138b9057d61e893b72b33ab2d17f24ac87bd33cb",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "13145761",
      "block_timestamp": "2021-09-02T10:40:49.000Z",
      "block_hash": "0x8b9cc4ab0c832083da83e0b05ebd931014fc6c6b418aeaf1a31d003b412634d7",
      "transaction_hash": "0x5b6861d1b1503017aaccf677ea730bd27eec72b33d79b289b73a91eeb52bc13c",
      "transaction_index": 165,
      "log_index": 255,
      "value": "0",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x8d0f3988d864757bb429b08df92b93c185bcc2ea",
      "to_address": "0x8d0f3988d864757bb429b08df92b93c185bcc2ea",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "13145640",
      "block_timestamp": "2021-09-02T10:11:16.000Z",
      "block_hash": "0xdc0e0021f8b9c63c0b0217026eddb9ec9ad81156442fdfc8b6be90f38a131abb",
      "transaction_hash": "0x40e594eddac12eb6e573792b89281feffe292c2993cc289d9081e353639bfae1",
      "transaction_index": 115,
      "log_index": 138,
      "value": "55000000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0xadd4d1dd3d4142a9d3f88d145d3f5dca0eff925a",
      "to_address": "0x8d0f3988d864757bb429b08df92b93c185bcc2ea",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "13028622",
      "block_timestamp": "2021-08-15T08:19:46.000Z",
      "block_hash": "0x915c6dbd6b6cdf9fde6251d2306131eb7fede7574b3baa1450468c58db42ac5c",
      "transaction_hash": "0x2d5adfc6f1ade260b9f3a4581eb0e8babe52c82690d2c3498e6f6c5b6920aad9",
      "transaction_index": 89,
      "log_index": 144,
      "value": "18980000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x5ea00bc260417e58087a010c85703683bfa6419f",
      "to_address": "0xadd4d1dd3d4142a9d3f88d145d3f5dca0eff925a",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "12979254",
      "block_timestamp": "2021-08-07T17:15:10.000Z",
      "block_hash": "0xb3ce585c411b207a551873351379c5d62d1efc798b91a6142b338346aca75ee0",
      "transaction_hash": "0x51b022655de2b64240a18e62ee6893e2adb473f2921241b202cb5919c2fa1b6a",
      "transaction_index": 92,
      "log_index": 126,
      "value": "5000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x1a16c87927570239fecd343ad2654fd81682725e",
      "to_address": "0x5ea00bc260417e58087a010c85703683bfa6419f",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "12562352",
      "block_timestamp": "2021-06-03T15:29:38.000Z",
      "block_hash": "0xb3f116204751855d14ba2f125d92152de05711ae684e8e51ce0d2db0d8e404a6",
      "transaction_hash": "0x2293a0a844163ceb931e581ba71b5c01e4b8447b5fc2b60d219f80b0a0aad336",
      "transaction_index": 253,
      "log_index": 373,
      "value": "0",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0xe00dd9d317573f7b4868d8f2578c65544b153a27",
      "to_address": "0x1a16c87927570239fecd343ad2654fd81682725e",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "12460740",
      "block_timestamp": "2021-05-18T21:11:31.000Z",
      "block_hash": "0x9dab0254d1b8e55b853ec8e44756c1936a3938538b497735d83fd59248e50d14",
      "transaction_hash": "0x82042a258d3e8e885e78a29dfe96e5ab309fc4c14cea14dd99f281938661a299",
      "transaction_index": 157,
      "log_index": 347,
      "value": "990000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0xc8f8e2f59dd95ff67c3d39109eca2e2a017d4c8a",
      "to_address": "0xe00dd9d317573f7b4868d8f2578c65544b153a27",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "12350920",
      "block_timestamp": "2021-05-01T22:02:12.000Z",
      "block_hash": "0x1906999250b8eb54ed76040d5458cd051ee1ae971d3c2d7cc8d6db8f4cc1b222",
      "transaction_hash": "0x9a6de25261db2bb054edb5ab474014b7e189520cdeb5fbbfca56082251567565",
      "transaction_index": 92,
      "log_index": 173,
      "value": "888000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x5c48b927f2488e5b0b15bbac6721b1e6dc007d68",
      "to_address": "0xc8f8e2f59dd95ff67c3d39109eca2e2a017d4c8a",
      "amount": "1",
      "verified": 1,
      "operator": null
    },
    {
      "block_number": "12344513",
      "block_timestamp": "2021-04-30T22:27:23.000Z",
      "block_hash": "0x38ea9b7ef26234c89df5c1cf0d22d539801dafebc5416a4b5bb80bcde6a4b6b2",
      "transaction_hash": "0xd1a30f2a0ad67d608e32278a71986d627da8f038d777bdb12c191b3e374929fa",
      "transaction_index": 108,
      "log_index": 136,
      "value": "80000000000000000",
      "contract_type": "ERC721",
      "transaction_type": "Single",
      "token_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "token_id": "529",
      "from_address": "0x0000000000000000000000000000000000000000",
      "to_address": "0x5c48b927f2488e5b0b15bbac6721b1e6dc007d68",
      "amount": "1",
      "verified": 1,
      "operator": null
    }
  ],
  "block_exists": true
}

As you can see, the very first transaction made from the address of “0x0000000000000000000000000000000000000000” to “0x5c48b927f2488e5b0b15bbac6721b1e6dc007d68”.

Apparently, the “0x000000000000000000000000000000000000000” is sort of null address and that is not contract creator’s address. Also “0x5c48b927f2488e5b0b15bbac6721b1e6dc007d68” is first owner of NFT, not creator of the contract.

Actual BAYT’s contract creator’s address that I found on Etherscan is “0xaBA7161A7fb69c88e16ED9f455CE62B791EE4D03”. Link is below;
Etherscan link

I also tried “transaction/{transaction_hash}” API on Moralis console, using very first transaction hash that I found on the API response above, but it doesn’t return contract creator’s address.
The API response is below;

{
  "hash": "0xd1a30f2a0ad67d608e32278a71986d627da8f038d777bdb12c191b3e374929fa",
  "nonce": "44",
  "transaction_index": "108",
  "from_address": "0x5c48b927f2488e5b0b15bbac6721b1e6dc007d68",
  "to_address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
  "value": "80000000000000000",
  "gas": "230991",
  "gas_price": "38500000000",
  "input": "0xa723533e0000000000000000000000000000000000000000000000000000000000000001",
  "receipt_cumulative_gas_used": "8579048",
  "receipt_gas_used": "153994",
  "receipt_contract_address": null,
  "receipt_root": null,
  "receipt_status": "1",
  "block_timestamp": "2021-04-30T22:27:23.000Z",
  "block_number": "12344513",
  "block_hash": "0x38ea9b7ef26234c89df5c1cf0d22d539801dafebc5416a4b5bb80bcde6a4b6b2",
  "transfer_index": null,
  "logs": [
    {
      "log_index": "136",
      "transaction_hash": "0xd1a30f2a0ad67d608e32278a71986d627da8f038d777bdb12c191b3e374929fa",
      "transaction_index": "108",
      "address": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
      "data": "0x",
      "topic0": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "topic1": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "topic2": "0x0000000000000000000000005c48b927f2488e5b0b15bbac6721b1e6dc007d68",
      "topic3": "0x0000000000000000000000000000000000000000000000000000000000000211",
      "block_timestamp": "2021-04-30T22:27:23.000Z",
      "block_number": "12344513",
      "block_hash": "0x38ea9b7ef26234c89df5c1cf0d22d539801dafebc5416a4b5bb80bcde6a4b6b2",
      "transfer_index": null,
      "transaction_value": null
    }
  ]
}

I might misunderstood the approach you suggested and/or how Moralis API works but this is what I tried so far.

you can do it with logs, the first log for that contract address should be a OwnershipTransferred event, event that should be emitted when the contract is created

1 Like

Hi cryptokid,
Thanks, I’ll look into it when I have a time!