Self-hosted wallets

Self-hosted wallets

In the Travel Rule rule library, install Unhosted wallet transfers and turn on Signed-wallet authorisation in the draft. This applies to all amounts in that rule and requires an approved address plus a signed wallet proof from the last 24 hours. Publish the draft separately. The exact policy still needs the relevant country reviews before execution is available.

Use the existing Address Book APIs to add the wallet, request its signed-message challenge, verify the signature and approve the address record. Both transfer parties must have current Myaza-verified customer records; submit their names and customer identifiers with the transaction. Supported Ethereum-compatible personal wallets use this path; contract wallets and other signature formats remain held.

Add selfHostedAddressId to both execution requests:

json
{
  "expectedRevision": 1,
  "recipientAddress": "0x1111111111111111111111111111111111111111",
  "selfHostedAddressId": "your-approved-address-record"
}

For outgoing transfers, that record identifies the recipient wallet. For incoming transfers, it identifies the sender wallet; also include the same incomingTxid in both requests. Add the issued token and your stable externalExecutionId when consuming. Execute only on execute_once; reconcile the existing job on retries. Your wallet verifies the chain transaction and finality before crediting a deposit. No information exchange with an institution is fabricated for a self-hosted wallet.