log_transaction
Record crypto trades and swaps with a single log entry, supporting upsert for updates and optional fiat value for accurate P&L tracking.
Instructions
Registra un trade (BUY/SELL, incluso uno swap tra due crypto), upsert per id.
Trade normale (es. BTC/USDT): symbol è la coppia BASE/QUOTE,
side=BUY se acquisti il base, side=SELL se lo cedi; price è il
prezzo unitario del base in quote.
Swap crypto/crypto (es. scambio ETH -> BTC su un DEX o un exchange):
si usa questo stesso tool, non ce n'è uno dedicato. Metti come base
l'asset ceduto e come quote quello ricevuto, es. symbol="ETH/BTC",
side="SELL", amount=1 (ETH ceduti), price=0.05 (BTC ricevuti per
ETH). Attenzione: in questo caso price ti dice solo il cambio tra
le due crypto, non il loro controvalore in una valuta fiat — senza
quel dato non potrai più calcolare a posteriori né il P&L realizzato
sull'asset ceduto né il cost-basis fiat del nuovo asset ricevuto.
Per questo, quando disponibile, valorizza sempre fiat_value (il
controvalore totale dello scambio, es. in EUR al momento
dell'esecuzione) e fiat_currency: è fortemente consigliato per gli
swap crypto/crypto, utile anche per i trade con quote fiat/stablecoin.
Se `id` è omesso viene generata una nuova transazione con un id
generato automaticamente. Se `id` corrisponde a una transazione già
salvata, solo i campi passati vengono aggiornati (merge parziale);
`value` viene ricalcolato come amount * price se non fornito
esplicitamente e uno tra amount/price cambia. Per una nuova
transazione sono richiesti tutti i campi obbligatori dello schema
(exchange, symbol, side, timestamp, amount, price, fee_amount,
fee_asset). `tx_hash` è opzionale, usalo per l'hash on-chain quando
disponibile (tipico per gli swap su DEX).
Per spostare lo stesso asset tra due exchange/wallet, senza
scambiarlo con un altro asset, usa invece il tool log_transfer.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| side | No | ||
| notes | No | ||
| price | No | ||
| value | No | ||
| amount | No | ||
| symbol | No | ||
| tx_hash | No | ||
| exchange | No | ||
| fee_asset | No | ||
| timestamp | No | ||
| fee_amount | No | ||
| fiat_value | No | ||
| fiat_currency | No |