For the complete documentation index, see llms.txt. This page is also available as Markdown.

Integrações

Conecte uma campanha de Rewards a uma scene do Decentraland ou a um servidor externo para conceder wearables e emotes automaticamente.

Depois de criar e configurar uma campanha e garantir que ela tenha estoque suficiente para fornecer recompensas, o próximo passo é conectar a campanha a um gatilho de recompensas. Esse gatilho pode ser uma Scene, uma Quest ou um servidor externo. Esta seção explica como diferentes integrações com Rewards podem ser feitas.

Conceder recompensas a partir de uma cena

As recompensas podem ser integradas diretamente em scenes do Decentraland, mas essa abordagem traz alguns riscos. Como a lógica está incorporada no código da scene que os usuários podem acessar, não é recomendada para a cunhagem de itens com raridade inferior a [EPIC](Veja a documentação#rarity).

Tenha em mente que usuários determinados, com conhecimento técnico suficiente, podem potencialmente contornar medidas de segurança como captchas, alterar seus endereços IP e cunhar todos os itens disponíveis, que depois poderiam vender no marketplace. A principal proteção contra isso é garantir um fornecimento suficiente de itens, para que todos tenham uma chance justa de receber uma recompensa.

Flags recomendadas do dispenser

As seguintes configurações do dispenser são recomendadas para reduzir o risco de explorações neste cenário:

Exemplo

import { getPlayer } from '@dcl/sdk/src/players'
import { signedFetch } from '@decentraland/SignedFetch'
import { getRealm } from '~system/Runtime'

export function main() {
  // 1. Obtenha o desafio do captcha para exibir ao usuário
  const request = await fetch(`https://rewards.decentraland.org/api/captcha`, {
    method: 'POST',
  })
  const captcha = await request.json()

  // 2. Exiba o captcha para o jogador completar - Veja o exemplo em studios.decentraland.org/resources

  // 3. Obtenha os dados do usuário
  const user = getPlayer()

  // 4. Obtenha o realm atual
  const realmInfo = await getRealm({})

  // 5. Envie a solicitação para atribuir um wearable/emote
  const assignRequest = await signedFetch('https://rewards.decentraland.org/api/rewards', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      campaign_key: '[DISPENSER_KEY]', // dispenser key
      beneficiary: user.userId, // ethereum address
      catalyst: realmInfo.baseUrl, // catalyst domain
      captcha_id: captcha.data.id, // "9e6b2d07-b47b-4204-ae87-9c4dea48f9b7"
      captcha_value: '[CAPTCHA_VALUE]', // "123456"
    }),
  })

  const reward = await assignRequest.json()

Conceder recompensas a partir de uma Decentraland Quests

Você pode integrar facilmente Rewards com o Decentraland Quests, isso é ideal se você quiser recompensar os usuários por completar uma quest.

Flags recomendadas do dispenser

As seguintes configurações do dispenser são recomendadas para reduzir o risco de explorações neste cenário:

Qualquer uma das outras flags fará com que sua integração falhe; evite usá-las.

Exemplo

Para integrar sua Quest com o serviço Rewards, você só precisa de uma dispenser key e de configurar um webhook para conceder recompensas.

Conceder recompensas a partir de um servidor personalizado

Você pode integrar Rewards diretamente do seu servidor, o que é ideal para realizar verificações adicionais antes de cunhar itens. Uma vantagem adicional é que, ao contrário do código da scene, o código do seu servidor pode não ser público, tornando mais difícil para os usuários descobrirem e explorarem vulnerabilidades.

Flags recomendadas do dispenser

As seguintes configurações do dispenser são recomendadas para reduzir o risco de explorações neste cenário:

Ativar qualquer uma das outras flags poderia complicar sua integração ou, dependendo do seu caso de uso, potencialmente causar sua falha. Portanto, não é recomendável usá-las, a menos que haja uma necessidade específica. No entanto, talvez você queira explorar seus possíveis benefícios.

Exemplo

Atualizado