Variables
Each platform should have its own secrets conifugred (optional but as a security measure):
- ALCHEMY_CLAIM_WEBHOOK_SECRET
- ALCHEMY_TOPUP_WEBHOOK_SECRET
Navigate to Strapi admin panel, then Content Manager
, choose platform crowdex
or rentinvesto
in Single Types.
Then you can add the secrets in JSON format (make sure you don't delete other secrets):
{
"ALCHEMY_CLAIM_WEBHOOK_SECRET": "XYZ",
"ALCHEMY_TOPUP_WEBHOOK_SECRET": "XYZ"
}
Those secrets can be obtained from Alchemy's dashboard -> Webhooks in section Signing Key
.

Events
- Exchange Event (where in addresses you should specify address of CrowdexExchange smart contract and in topics the keccak signature of the Exchange event from smart contract)
{
block {
logs(filter: {addresses: ["0x8D04C9448E5f6e43FF93C0d462E5E59a447193D4"], topics: ["0x6c1eaca9ab78e92a6b7ef1e815f717ecece5f68a2479f7f21e4e47b5ae12844b"]}) {
data
transaction {
hash
logs {
data
account {
address
}
topics
index
}
type
status
}
}
}
}
POST https://dashboard.alchemy.com/api/create-webhook
HEADERS:
{
"Content-Type": "application/json",
"X-Alchemy-Token": "AUTH_TOKEN"
}"
{
"network": "MATIC_MAINNET",
"webhook_type": "GRAPHQL",
"webhook_url": "https://3f05-2a02-a31d-a2c3-b780-ad9c-8066-f964-b472.ngrok-free.app/api/alchemy/webhook",
"graphql_query": {
"query": "{\n block {\n logs(filter: {addresses: [\n \"0x8D04C9448E5f6e43FF93C0d462E5E59a447193D4\"\n ], topics: [\n \"0x6c1eaca9ab78e92a6b7ef1e815f717ecece5f68a2479f7f21e4e47b5ae12844b\"\n ]\n }) {\n data\n transaction {\n hash\n logs {\n data\n account {\n address\n }\n topics\n index\n }\n type\n status\n }\n }\n }\n}",
"skip_empty_messages": true
}
}
- Tokens Claimed Event (where in addressses you should specify address for project's Drop smart contract and in topics the keccak signature of the TokensClaimed event from smart contract)
{
block {
logs(filter: {addresses: ["0xDeDDF888c649eD8426E2DA02053187FBABd81eB8"], topics: ["0xfa76a4010d9533e3e964f2930a65fb6042a12fa6ff5b08281837a10b0be7321e"]}) {
data
transaction {
hash
logs {
data
account {
address
}
topics
index
}
type
status
}
}
}
}
POST https://dashboard.alchemy.com/api/create-webhook
HEADERS:
{
"Content-Type": "application/json",
"X-Alchemy-Token": "AUTH_TOKEN"
}"
{
"network": "MATIC_MAINNET",
"webhook_type": "GRAPHQL",
"webhook_url": "https://3f05-2a02-a31d-a2c3-b780-ad9c-8066-f964-b472.ngrok-free.app/api/alchemy/tokensClaimed",
"graphql_query": {
"query": "{\n block {\n logs(filter: {addresses: [\"0xDeDDF888c649eD8426E2DA02053187FBABd81eB8\"], topics: [\"0xfa76a4010d9533e3e964f2930a65fb6042a12fa6ff5b08281837a10b0be7321e\"]}) {\n data\n transaction {\n hash\n logs {\n data\n account {\n address\n }\n topics\n index\n }\n type\n status\n }\n }\n }\n}",
"skip_empty_messages": true
}
}