curl -X POST https://verification.didit.me/v3/travel-rule/wallet-addresses/ \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"address": "0xBeneficiaryWallet01", "chain": "ETH", "holder_name": "Ana Diaz", "self_declared": true}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.wallet_addresses.create(
address="0xBeneficiaryWallet01",
chain="ETH",
holder_vendor_data="user-042",
holder_name="Ana Diaz",
self_declared=True,
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.walletAddresses.create({
address: "0xBeneficiaryWallet01",
chain: "ETH",
holder_vendor_data: "user-042",
holder_name: "Ana Diaz",
self_declared: true,
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.WalletAddresses.Create(ctx, didit.WalletAddressEntryCreate{
Address: "0xBeneficiaryWallet01",
Chain: didit.String("ETH"),
HolderVendorData: didit.String("user-042"),
HolderName: didit.String("Ana Diaz"),
SelfDeclared: didit.Bool(true),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.WalletAddressEntryCreate;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().walletAddresses().create(WalletAddressEntryCreate.builder()
.address("0xBeneficiaryWallet01")
.chain("ETH")
.holderVendorData("user-042")
.holderName("Ana Diaz")
.selfDeclared(true)
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->walletAddresses->create([
'address' => '0xBeneficiaryWallet01',
'chain' => 'ETH',
'holder_vendor_data' => 'user-042',
'holder_name' => 'Ana Diaz',
'self_declared' => true,
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.wallet_addresses.create(
address: "0xBeneficiaryWallet01",
chain: "ETH",
holder_vendor_data: "user-042",
holder_name: "Ana Diaz",
self_declared: true
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.WalletAddresses.CreateAsync(new WalletAddressEntryCreate
{
Address = "0xBeneficiaryWallet01",
Chain = "ETH",
HolderVendorData = "user-042",
HolderName = "Ana Diaz",
SelfDeclared = true,
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"address": "<string>",
"chain": "<string>",
"holder_vendor_data": "<string>",
"holder_name": "<string>",
"entity_type": "<string>",
"is_ownership_verified": true,
"created_at": "2023-11-07T05:31:56Z",
"travel_address": "<string>",
"address_hash": "<string>",
"memo": "<string>",
"receiving_travel_address": "<string>"
}API para registrar endereço de carteira: Travel Rule
Registre na Didit uma carteira sua no catálogo de endereços da Travel Rule para receber transferências INTERNAL, com autodeclaração opcional.
curl -X POST https://verification.didit.me/v3/travel-rule/wallet-addresses/ \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"address": "0xBeneficiaryWallet01", "chain": "ETH", "holder_name": "Ana Diaz", "self_declared": true}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.wallet_addresses.create(
address="0xBeneficiaryWallet01",
chain="ETH",
holder_vendor_data="user-042",
holder_name="Ana Diaz",
self_declared=True,
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.walletAddresses.create({
address: "0xBeneficiaryWallet01",
chain: "ETH",
holder_vendor_data: "user-042",
holder_name: "Ana Diaz",
self_declared: true,
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.WalletAddresses.Create(ctx, didit.WalletAddressEntryCreate{
Address: "0xBeneficiaryWallet01",
Chain: didit.String("ETH"),
HolderVendorData: didit.String("user-042"),
HolderName: didit.String("Ana Diaz"),
SelfDeclared: didit.Bool(true),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.WalletAddressEntryCreate;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().walletAddresses().create(WalletAddressEntryCreate.builder()
.address("0xBeneficiaryWallet01")
.chain("ETH")
.holderVendorData("user-042")
.holderName("Ana Diaz")
.selfDeclared(true)
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->walletAddresses->create([
'address' => '0xBeneficiaryWallet01',
'chain' => 'ETH',
'holder_vendor_data' => 'user-042',
'holder_name' => 'Ana Diaz',
'self_declared' => true,
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.wallet_addresses.create(
address: "0xBeneficiaryWallet01",
chain: "ETH",
holder_vendor_data: "user-042",
holder_name: "Ana Diaz",
self_declared: true
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.WalletAddresses.CreateAsync(new WalletAddressEntryCreate
{
Address = "0xBeneficiaryWallet01",
Chain = "ETH",
HolderVendorData = "user-042",
HolderName = "Ana Diaz",
SelfDeclared = true,
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"address": "<string>",
"chain": "<string>",
"holder_vendor_data": "<string>",
"holder_name": "<string>",
"entity_type": "<string>",
"is_ownership_verified": true,
"created_at": "2023-11-07T05:31:56Z",
"travel_address": "<string>",
"address_hash": "<string>",
"memo": "<string>",
"receiving_travel_address": "<string>"
}Autorizações
Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.
Corpo
O endereço da carteira. Um X-address da XRP é armazenado como seu endereço clássico e sua tag, para que corresponda a transferências que indiquem qualquer uma das formas.
128Token da rede (chain) do endereço, por exemplo ETH ou BTC. Quando a Didit roteia ou registra uma transferência, ela associa as entradas do catálogo de endereços pelo endereço da carteira e, quando a transferência informa uma rede, também por este valor, sem diferenciar maiúsculas de minúsculas. A rede de uma transferência é beneficiary_data.chain, preenchida a partir da rede cripto ou do símbolo da moeda da transação (por exemplo ETH) quando você não a envia, ou o chain de um registro pós-depósito; por isso, use o mesmo token em todos os lugares. Uma entrada com rede vazia corresponde a qualquer rede. Redes conhecidas são armazenadas com um único identificador canônico, seja qual for a grafia enviada: "ethereum", "Ethereum" e "ERC20" são todos armazenados como ETH, "BNB Smart Chain" e "BEP20" como BNB, "tron" como TRX. Um nome de rede desconhecido é mantido como foi informado.
3225525516Somente escrita. Quando true, a entrada é criada já com a propriedade verificada por meio de uma prova SELF_DECLARATION. Retorna 400 quando allow_self_declaration está desativado nas suas configurações de Travel Rule.
Opcional. O travel address do VASP da contraparte para esta carteira, que habilita o roteamento TRP para os ativos que o TRP transporta (BTC, ETH e USDC em uma rede nomeada). Um travel address inválido retorna 400.
512Opcional. A tag de destino ou o memo que faz parte da carteira. XRP: uma tag de destino, um número inteiro de 0 a 4294967295 (um número JSON é aceito). XLM: um memo de texto de até 28 bytes, um id de 64 bits ou um hash de 32 bytes em hexadecimal. EOS: até 256 bytes. ATOM: até 256 caracteres. HBAR: até 100 bytes. Carteiras Bitcoin, EVM, Solana, Tron, Litecoin, Bitcoin Cash, Dogecoin e Lightning não aceitam memo: enviar um nelas resulta em 400. Alias: destinationTag ou destination_tag.
256Resposta
A entrada criada.
O endereço da carteira; "" para uma entrada importada apenas pelo hash. Único por aplicação, cadeia e memo, comparando o endereço sem diferenciar maiúsculas de minúsculas. Depois de excluir uma entrada, você pode registrar o mesmo endereço novamente.
Token de blockchain do endereço, por exemplo, ETH ou BTC. Quando a Didit roteia ou registra uma transferência, ela faz a correspondência das entradas do catálogo de endereços pelo endereço da carteira e, quando a transferência informa uma blockchain, também por este valor, sem distinção entre maiúsculas e minúsculas. A blockchain de uma transferência é beneficiary_data.chain, preenchida a partir da blockchain cripto ou do símbolo da moeda da transação (por exemplo, ETH) quando você não a envia, ou o chain de um registro pós-depósito, portanto use o mesmo token em todos os lugares. Uma entrada com blockchain vazia corresponde a qualquer blockchain. Um beneficiário Lightning (um id de nó ou um Lightning Address) registrado em bitcoin é armazenado em minúsculas em LIGHTNING, onde as transferências Lightning são correspondidas. Blockchains conhecidas são armazenadas sob um único identificador canônico, independentemente da grafia enviada: "ethereum", "Ethereum" e "ERC20" são todos armazenados como ETH, "BNB Smart Chain" e "BEP20" como BNB, "tron" como TRX. Um nome de blockchain desconhecido é mantido como enviado.
Seu identificador interno para o titular.
Nome do titular da carteira, usado na correspondência do nome do beneficiário.
Texto livre; o padrão é "individual".
Somente leitura. Indica se a propriedade deste endereço foi comprovada.
O endereço de viagem (travel address) do VASP da contraparte para esta carteira, se conhecido. Permite que a Didit encaminhe as transferências deste beneficiário pelo canal TRP, para os ativos que o TRP suporta (BTC, ETH e USDC em uma rede especificada).
Somente leitura. SHA-256 do endereço em minúsculas, em hexadecimal minúsculo. Uma entrada importada apenas pelo hash é correspondida por ele.
A destination tag ou o memo que faz parte da carteira em uma rede com memo (XRP, XLM, EOS, ATOM, HBAR); "" para o endereço inteiro. Uma entrada com memo corresponde apenas a transferências que indicam esse memo; uma sem memo corresponde ao endereço inteiro.
Seu travel address por carteira para esta carteira: informe-o ao VASP remetente para que a consulta TRP dele indique esta carteira. Vazio para uma carteira registrada como de outro VASP, enquanto a Travel Rule estiver desativada e antes de o perfil do seu VASP ser salvo.