Asset receipt
Receiving AMP2-managed assets does not require a transaction-building step. The page explains receipt flow, transfer detection, address derivation, and confirmation states.
Receiving AMP2 managed assets is passive from the investor/venue perspective. The issuer sends assets to your registered wallet, and the tokens appear after on chain confirmation.
How receiving works
- The issuer initiates a send operation through the AMP2 SDK, specifying your WID as the recipient.
- AMP2 constructs, signs, cosigns, and broadcasts the transaction to the Liquid Network.
- The Liquid Network confirms the transaction (~1 minute block time).
- Your wallet software detects the new UTXO when scanning the chain via LWK.
No action is required on the investor/venue side to receive assets. The wallet descriptor is sufficient for AMP2 to derive the correct receive address.
Detecting incoming transfers
Use LWK's chain scanning to detect new transactions for your descriptor:
use lwk_wollet::{Wollet, ElectrumClient, ElectrumUrl};
let wollet = Wollet::new(network, &descriptor)?;
let client = ElectrumClient::new(&ElectrumUrl::new("blockstream.info:995", true, true))?;
wollet.full_scan(&client)?;
let balance = wollet.balance()?;
for (asset_id, amount) in &balance {
println!("Asset: {} Balance: {}", asset_id, amount);
}Address derivation
Wallet addresses are derived from the descriptor locally using LWK:
use lwk_wollet::Wollet;
let wollet = Wollet::new(network, &descriptor)?;
let address = wollet.address(None)?;
println!("Receive address: {}", address);Addresses are deterministic — the same descriptor always produces the same address sequence.
Refresh patterns
For balance tracking:
| Pattern | Frequency | Use case |
|---|---|---|
| Poll after known send | Check every 60s after issuer confirms a send | Best UX for expected transfers |
| Periodic scan | Every 1–5 minutes | Background balance updates |
| Event driven | When user opens the wallet | On demand refresh |
Liquid blocks are produced approximately every minute. Scanning more frequently than once per minute provides no additional information.
Pending vs. confirmed
After broadcast but before block inclusion:
- LWK chain scanning shows the transaction after block inclusion.
- Show "pending" state to users until the transaction appears in a confirmed block.
Liquid transactions are typically confirmed within 1–2 minutes. If a transaction remains unconfirmed for more than 10 minutes, investigate.
Next steps
- Signing PSETs: initiate outgoing transfers
- Proxy Integration: wallet registration and PSET cosigning through the proxy
- UX Recommendations: display guidance for incoming assets
Wallet registration
Wallet registration creates a wallet entry in AMP2 and returns a wallet ID. The page explains descriptor construction, registration behavior, wallet strategy, and next steps.
PSET signature
PSET signature supports outgoing asset transfers. The page explains transaction construction, AMP2 cosigning, local signing, broadcast, errors, and serialization helpers.