---
title: "address.transaction"
method: POST
path: "address.transaction"
---

# address.transaction

`POST address.transaction` (webhook)

Money moved at a watched address (or any address of a watched bucket).

## Headers

- `SoChain-Signature` string, required
- `SoChain-Event` string, required
- `SoChain-Delivery` string, required

## Payload

- EventAddressTransaction
  - `id` string, required: Unique event ID: de-duplicate on it.
  - `type` 'address.transaction', required
  - `created` integer, required: Unix time.
  - `network` 'BTC' | 'LTC' | 'DOGE' | 'ZEC' | 'BTCTEST' | 'LTCTEST' | 'DOGETEST' | 'ZECTEST', required
  - `data` object, required: The details, in v3 field names.
    - `bucket` string, nullable: The bucket the address is in, for a bucket's webhook; null otherwise.
    - `address` string
    - `hash` string
    - `value_received` string: An exact decimal amount of coins with 8 decimals. Signed amounts may start with '-'. Parse as an integer of the smallest unit, not a float.
    - `value_sent` string: An exact decimal amount of coins with 8 decimals. Signed amounts may start with '-'. Parse as an integer of the smallest unit, not a float.
    - `balance_change` string: An exact decimal amount of coins with 8 decimals. Signed amounts may start with '-'. Parse as an integer of the smallest unit, not a float.
    - `confirmations` integer
    - `block` integer, nullable
    - `wallet` Wallet: Only for a bucket filled from a wallet's public key (POST /buckets/{bucket}/xpub). The public key itself is never kept.
      - `fingerprint` string
      - `type` 'p2pkh' | 'p2sh-p2wpkh' | 'p2wpkh' | 'p2tr'
      - `receive` WalletChain
        - `used_through` integer, nullable: The highest used index at the last fill.
        - `next` integer: The first index not in the bucket.
        - `spare` integer: Spare (unused) addresses after the last used, at the last fill.
        - `spare_left` integer, nullable: Of those, how many are still unused after the last one used since. Null if it can't be checked just now.
      - `change` WalletChain
        - `used_through` integer, nullable: The highest used index at the last fill.
        - `next` integer: The first index not in the bucket.
        - `spare` integer: Spare (unused) addresses after the last used, at the last fill.
        - `spare_left` integer, nullable: Of those, how many are still unused after the last one used since. Null if it can't be checked just now.
      - `running_low` boolean, nullable: True once more than half of a chain's spare addresses are used: send the public key again. Null if it can't be checked just now.
      - `updated_at` integer: When the bucket was last filled from the public key (unix time).

## Acknowledgement `2XX`

Received. Anything else, or no answer within 30 seconds, is retried: after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h and 24 h.

---

[API](https://skmtc.dev/sochain/apis/sochain-api.md) · [All operations](https://skmtc.dev/sochain/apis/sochain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sochain/apis/sochain-api/revisions/80682797b38f?raw)
