Skip to content

AURA Guard: Address Intelligence

Every stablecoin app can hold and send. One thing nobody has solved:

"I pasted an address and the money is gone."

Wrong chain, wrong token, a typo, a sanctioned counterparty, an address that cannot receive that asset. Billions lost, no recourse, and it is the single loudest reason ordinary people will not touch this. AURA Guard is the answer, and it is the reason to choose AURA over a wallet.

Before a single unit moves, the recipient is checked for validity, format, which "bank" it belongs to, which currencies it accepts, sanctions status, and behavioural risk, and the result is explained in language a person acts on:

"Sarah's account is at a different bank, and it can't receive US Dollars. Ask Sarah for an account at Base, or send Euros instead."

Not "invalid recipient for selected network."

The check pipeline

flowchart TB
    IN["Address + declared network + currency"] --> F{Format valid?}
    F -- no --> RF["Refuse · explain the format problem"]
    F -- yes --> B{Declared network can settle?}
    B -- "no (e.g. Ethereum)" --> RB["Refuse · wrong-network loss prevented"]
    B -- yes --> A{Active / can receive this currency?}
    A -- no --> RA["Refuse · ask for the right account or currency"]
    A -- yes --> S{Sanctions / risk screen}
    S -- flagged --> RS["Refuse · watchlisted"]
    S -- clear --> OK["Clear · time-stamped, tier-aware"]

Each stage returns not a boolean but an explanation, what was checked, what it means, and what to do next. The engine never says "verified safe"; it says what it checked.

The wrong-network problem, and why AURA asks

Six of the nine supported networks share the EVM address format. An EVM address is identical at Base, Ethereum, Polygon, Arbitrum, Optimism, and BNB Smart Chain, the same key controls all of them. A format check alone therefore cannot tell Base from Ethereum, and AURA settles only at Base.

If Guard silently accepted a correctly-formatted address whose owner meant it for Ethereum, the payment would go to an account that never receives it, the category's defining loss. So the add-payee flow asks the user which network, and a declared network AURA cannot settle at is refused before any other check.

The whole argument for asking rather than inferring

The address cannot reveal which network its owner intended. Only the user's stated answer can. Asking is the one control that catches a valid-looking address at the wrong bank.

The picker reads its list from Guard's own registry rather than restating it, a picker offering a network the engine does not know is exactly how a wrong answer gets accepted.

Network Address family Settles today?
Base EVM ✅ Yes
Ethereum, Polygon, Arbitrum, Optimism, BNB Smart Chain EVM Not yet
Tron (TRC20) base58check Not yet
Solana (SPL) base58 Not yet

Format validation is deterministic, and that is the point

Address Intelligence is mostly not an LLM. A checksum either passes or it does not.

  • EVM, length and EIP-55 checksum. A single mistyped character fails the checksum and is caught as "Almost right, but one character looks wrong."
  • Tron, base58check, whose checksum is a double SHA-256. Guard carries a SHA-256 implementation verified against the NIST vectors (including the padding boundary cases). A single swapped character in a real Tron address is caught.
  • Solana, base58 over the Solana alphabet; excluded characters (0, O, I, l) are rejected with a specific reason.

A differentiator that does not depend on model behaviour is exactly the one that can be trusted. The risk band, sanctions and behavioural scoring, is the only part that involves a model, and it is coarse on-chain (riskBand) to avoid leaking a provider's licensed data.

Fail closed, always

If the Guard service is unavailable, AURA refuses to add a payee or send, it never fails open.

A refusal is safe. A guess is not.

This is the opposite of the industry's usual instinct to degrade gracefully. For a payments product where the failure is irreversible loss, refusing to proceed is the graceful mode.

Where the trust state lives

Guard produces the analysis; the kernel holds the consequence. The AuraPayeeRegistry records each payee's coarse risk band, when it was last screened, and whether it is trusted, and the AuraSecurityManager hook can require a fresh screening before a transfer clears. Trust is time-bounded, enforced on-chain, and marking a payee trusted is a Tier-4 operation.