Nostr WoT

Documentação

Tudo que você precisa para integrar Web of Trust em seu aplicativo.

Início Rápido

Comece a usar Web of Trust em poucos minutos.

Consultar o Oracle a partir de um navegador ou servidor

O Oracle v0.3.0 suporta pedidos fetch padrão. Use chaves públicas hexadecimais completas de 64 caracteres. Não é necessária extensão nem SDK.

Consultar a distância de seguimento

typescript
async function getFollowDistance(from: string, to: string) {
  const query = new URLSearchParams({ from, to, max_hops: "2" });
  const response = await fetch(
    "https://wot-oracle.mappingbitcoin.com/distance?" + query
  );
  if (!response.ok) throw new Error("Oracle HTTP " + response.status);
  const data = await response.json();
  return data.hops as number | null;
}

// Replace with real public keys before querying.
const hops = await getFollowDistance("a".repeat(64), "b".repeat(64));
console.log(hops === null ? "No indexed path within 2 hops" : hops);

Valores dos saltos: 0 = o próprio utilizador, 1 = seguimento direto, 2 = alguém seguido por quem segue. Um resultado null significa que não foi encontrado um caminho dentro da profundidade pedida no grafo indexado. A cobertura depende dos relays configurados. A extensão fornece assinatura e identidade; não responde a consultas do grafo.

Servidor (com API Oracle)

Para aplicações de servidor, use a API REST do Oracle. Não requer extensão.

Incluir indícios públicos de silenciamento

javascript
const from = "a".repeat(64); // Replace with source pubkey
const to = "b".repeat(64); // Replace with target pubkey
const query = new URLSearchParams({ from, to, max_hops: "3" });
const response = await fetch(
  "https://wot-oracle.mappingbitcoin.com/trust?" + query
);
if (!response.ok) throw new Error("Oracle HTTP " + response.status);
const { follow_distance, public_mute_evidence } = await response.json();
console.log(follow_distance.hops, follow_distance.path_count);
console.log(public_mute_evidence.source_mutes_target);
console.log(public_mute_evidence.source_mute_list_known);

A distância de seguimento e as observações públicas de silenciamento kind-10000 são indícios separados. A API não os combina numa pontuação numérica nem desencripta entradas privadas de silenciamento. Listas de silenciamento desconhecidas e listas sem entradas públicas são estados diferentes. Defina explicitamente a política da sua aplicação.

Usar cURL

terminal
$curl --fail-with-body "https://wot-oracle.mappingbitcoin.com/health"
$curl --fail-with-body "https://wot-oracle.mappingbitcoin.com/ready"

Compatibilidade do SDK

A versão publicada @nostr-wot/[email protected] usa endpoints remotos e campos de resposta antigos que o Oracle v0.3.0 não disponibiliza. As consultas remotas de distância do SDK podem devolver null após um 404, pelo que não deve interpretá-lo como um resultado verificado do grafo. Use os exemplos fetch acima para este Oracle.

Os pacotes de dados, relays e identidade do SDK continuam a ser úteis de forma independente. Para consultas do grafo local e integração React, consulte os exemplos verificados do SDK. useTrustScore não faz parte da API publicada do WoT 1.0.

Compilar a partir do Código Fonte

Clone o repositório e compile localmente para desenvolvimento ou para verificar o código.

terminal
$git clone https://github.com/nostr-wot/nostr-wot-extension.git
$cd nostr-wot-extension && npm install && npm run build

Vá para chrome://extensions, ative Modo desenvolvedor, clique em Carregar sem compactação e selecione a pasta dist/.