Skip to main content

Atto Node API (1.37-live)

Download OpenAPI specification:Download

Reference Atto Node API endpoints and schemas for accounts, transactions, receivables and NDJSON streams.

This specification is generated by this node build. Match its version to the node you integrate; publication and error behavior can differ between releases.

Start with node setup and configuration, or inspect public data in the read-only API explorer.

Transactions

Submit or query transaction blocks. After an interrupted publication request, inspect the original transaction hash and account history before creating another payment. A timeout does not prove that the transaction failed. See payment failure recovery.

Stream all latest transactions

Responses

Response samples

Content type
application/x-ndjson
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Publish a transaction and stream its confirmation

Uses the same publication and local-confirmation operation as POST /transactions, emitting one confirmed transaction as NDJSON. The confirmation wait has a 40-second timeout. Inspect the emitted transaction, not only the initial HTTP status. Errors after response commitment can terminate the stream; do not assume every timeout returns HTTP 504. After an interrupted stream, inspect the original hash and account history before creating another payment.

query Parameters
deduplicate
boolean
Default: false

When true, reuse a stored confirmation or an existing pending publication for the same transaction hash. This does not deduplicate payment attempts with different transaction hashes.

Request Body schema: application/json
required
required
AttoChangeBlock (object) or AttoOpenBlock (object) or AttoReceiveBlock (object) or AttoSendBlock (object)
signature
required
string <hex> (AttoSignature) = 128 characters

64-byte ed25519 signature (hex)

work
required
string <hex> (AttoWork) = 16 characters

Work nonce (hex)

address
required
string (AttoAddress) ^atto://[a-z2-7]{61}$

Atto address URI. Format: atto:// + 61 Base32 chars (lowercase, no padding). Encodes: 1 byte algorithm code + 32-byte public key + 5-byte checksum (total 38 bytes).

Responses

Request samples

Content type
application/json
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Response samples

Content type
application/x-ndjson
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Publish a transaction

Validates and publishes the signed transaction, then waits for local confirmation and returns the confirmed transaction. The confirmation wait has a 40-second timeout. After a timeout or lost response, inspect the original hash and account history before creating another payment; confirmation may already have happened. A confirmed Send creates a receivable; a separate Open or Receive adds it to the recipient's spendable balance.

query Parameters
deduplicate
boolean
Default: false

When true, reuse a stored confirmation or an existing pending publication for the same transaction hash. This does not deduplicate payment attempts with different transaction hashes.

Request Body schema: application/json
required
required
AttoChangeBlock (object) or AttoOpenBlock (object) or AttoReceiveBlock (object) or AttoSendBlock (object)
signature
required
string <hex> (AttoSignature) = 128 characters

64-byte ed25519 signature (hex)

work
required
string <hex> (AttoWork) = 16 characters

Work nonce (hex)

address
required
string (AttoAddress) ^atto://[a-z2-7]{61}$

Atto address URI. Format: atto:// + 61 Base32 chars (lowercase, no padding). Encodes: 1 byte algorithm code + 32-byte public key + 5-byte checksum (total 38 bytes).

Responses

Request samples

Content type
application/json
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream transactions by account and height range

Request Body schema: application/json
required
required
Array of objects (AccountHeightSearch)

List of account heights to be searched

Array
address
required
string (AttoAddress) ^atto://[a-z2-7]{61}$

Address of the account

fromHeight
required
string (AttoHeight) ^[0-9]{1,20}$

From height (inclusive), normally last seen height + 1

toHeight
required
string (AttoHeight) ^[0-9]{1,20}$

To height (inclusive)

Responses

Request samples

Content type
application/json
{
  • "search": [
    ]
}

Response samples

Content type
application/x-ndjson
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Get transaction

path Parameters
hash
required
string <hex> = 64 characters
Example: C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD

32-byte hash (hex)

Responses

Stream a single transaction

Allows clients to track the confirmation of a transaction in real-time by streaming a single transaction by hash. Useful when the transaction hash is shared ahead of time, like in payment protocols.

path Parameters
hash
required
string <hex> = 64 characters
Example: C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD

32-byte hash (hex)

Responses

Response samples

Content type
application/x-ndjson
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream transactions by height

path Parameters
publicKey
required
string <hex> = 64 characters
Example: 8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824

32-byte ed25519 public key (hex)

query Parameters
fromHeight
string^[0-9]{1,20}$
Example: fromHeight=1

Block height as unsigned 64-bit integer (1..18446744073709551615)

toHeight
string^[0-9]{1,20}$
Example: toHeight=1

Block height as unsigned 64-bit integer (1..18446744073709551615)

Responses

Response samples

Content type
application/x-ndjson
{
  • "block": {
    },
  • "signature": "B245C07344D49BBDB389A5CBD1967BEC68BA11D656F99D0F86C0DC00DC6AD85C11E09CFBFCA01217517F175C55D55A3F58FC334E60ABCFB2DD17D1934447F7F5",
  • "work": "DF3B94181A2FA25C",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Vote Weights

Expose current vote weights per representative

Get voter weight

path Parameters
address
required
string^atto://[a-z2-7]{61}$
Example: atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq

Atto address URI. Format: atto:// + 61 Base32 chars (lowercase, no padding). Encodes: 1 byte algorithm code + 32-byte public key + 5-byte checksum (total 38 bytes).

Responses

Accounts

Retrieve the latest state (snapshot) of an account. Since transactions mutate accounts, this reflects the result of all previous operations.

Get accounts for given addresses

Request Body schema: application/json
required
addresses
required
Array of strings (AttoAddress) [ items^atto://[a-z2-7]{61}$ ]

List of addresses. Example item shown.

Responses

Request samples

Content type
application/json
{
  • "addresses": [
    ]
}

Stream all latest accounts

Responses

Response samples

Content type
application/x-ndjson
{
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "network": "LIVE",
  • "version": 0,
  • "algorithm": "V1",
  • "height": "1",
  • "balance": "1000000000000000000",
  • "lastTransactionHash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "lastTransactionTimestamp": 1790015238947,
  • "representativeAlgorithm": "V1",
  • "representativePublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "representativeAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream all accounts for the given addresses

Request Body schema: application/json
required
addresses
required
Array of strings (AttoAddress) [ items^atto://[a-z2-7]{61}$ ]

List of addresses. Example item shown.

Responses

Request samples

Content type
application/json
{
  • "addresses": [
    ]
}

Response samples

Content type
application/x-ndjson
{
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "network": "LIVE",
  • "version": 0,
  • "algorithm": "V1",
  • "height": "1",
  • "balance": "1000000000000000000",
  • "lastTransactionHash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "lastTransactionTimestamp": 1790015238947,
  • "representativeAlgorithm": "V1",
  • "representativePublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "representativeAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Get account

path Parameters
publicKey
required
string <hex> = 64 characters
Example: 8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824

32-byte ed25519 public key (hex)

Responses

Stream account

path Parameters
publicKey
required
string <hex> = 64 characters
Example: 8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824

32-byte ed25519 public key (hex)

Responses

Response samples

Content type
application/x-ndjson
{
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "network": "LIVE",
  • "version": 0,
  • "algorithm": "V1",
  • "height": "1",
  • "balance": "1000000000000000000",
  • "lastTransactionHash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "lastTransactionTimestamp": 1790015238947,
  • "representativeAlgorithm": "V1",
  • "representativePublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "representativeAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Instants

Returns the time difference between the server and client. Useful for clients with unreliable or skewed clocks.

Return time adjustment to send transactions

path Parameters
clientInstant
required
string <date-time>

Responses

Receivables

Displays pending incoming funds. When someone sends a transaction, it becomes a "receivable" until the recipient explicitly receives it.

Stream all receivables for multiple addresses

query Parameters
minAmount
string^[0-9]{1,20}$
Example: minAmount=1000000000000000000

Unsigned 64-bit amount in raw units (0..18000000000000000000U)

Request Body schema: application/json
required
addresses
required
Array of strings (AttoAddress) [ items^atto://[a-z2-7]{61}$ ]

List of addresses. Example item shown.

Responses

Request samples

Content type
application/json
{
  • "addresses": [
    ]
}

Response samples

Content type
application/x-ndjson
{
  • "network": "LIVE",
  • "hash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "version": 0,
  • "algorithm": "V1",
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "timestamp": 1790015238947,
  • "receiverAlgorithm": "V1",
  • "receiverPublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "amount": "1000000000000000000",
  • "receiverAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream all receivables

path Parameters
publicKey
required
string <hex> = 64 characters
Example: 8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824

32-byte ed25519 public key (hex)

query Parameters
minAmount
string^[0-9]{1,20}$
Example: minAmount=1000000000000000000

Unsigned 64-bit amount in raw units (0..18000000000000000000U)

Responses

Response samples

Content type
application/x-ndjson
{
  • "network": "LIVE",
  • "hash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "version": 0,
  • "algorithm": "V1",
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "timestamp": 1790015238947,
  • "receiverAlgorithm": "V1",
  • "receiverPublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "amount": "1000000000000000000",
  • "receiverAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Account Entries

A user-friendly view of account activity. Recommended for displaying transaction history in UIs.

Stream all latest account entries

Responses

Response samples

Content type
application/x-ndjson
{
  • "hash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "algorithm": "V1",
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "height": "1",
  • "blockType": "RECEIVE",
  • "subjectAlgorithm": "V1",
  • "subjectPublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "previousBalance": "1000000000000000000",
  • "balance": "1000000000000000000",
  • "timestamp": 1790015238947,
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "subjectAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream account entries by height range

Request Body schema: application/json
required
required
Array of objects (AccountHeightSearch)

List of account heights to be searched

Array
address
required
string (AttoAddress) ^atto://[a-z2-7]{61}$

Address of the account

fromHeight
required
string (AttoHeight) ^[0-9]{1,20}$

From height (inclusive), normally last seen height + 1

toHeight
required
string (AttoHeight) ^[0-9]{1,20}$

To height (inclusive)

Responses

Request samples

Content type
application/json
{
  • "search": [
    ]
}

Response samples

Content type
application/x-ndjson
{
  • "hash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "algorithm": "V1",
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "height": "1",
  • "blockType": "RECEIVE",
  • "subjectAlgorithm": "V1",
  • "subjectPublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "previousBalance": "1000000000000000000",
  • "balance": "1000000000000000000",
  • "timestamp": 1790015238947,
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "subjectAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream account entries by height

path Parameters
publicKey
required
string <hex> = 64 characters
Example: 8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824

32-byte ed25519 public key (hex)

query Parameters
fromHeight
string^[0-9]{1,20}$
Example: fromHeight=1

Block height as unsigned 64-bit integer (1..18446744073709551615)

toHeight
string^[0-9]{1,20}$
Example: toHeight=1

Block height as unsigned 64-bit integer (1..18446744073709551615)

Responses

Response samples

Content type
application/x-ndjson
{
  • "hash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "algorithm": "V1",
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "height": "1",
  • "blockType": "RECEIVE",
  • "subjectAlgorithm": "V1",
  • "subjectPublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "previousBalance": "1000000000000000000",
  • "balance": "1000000000000000000",
  • "timestamp": 1790015238947,
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "subjectAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}

Stream a single account entry

Allows clients to track the confirmation of a transaction in real-time by streaming a single account entry by hash. Useful when the transaction hash is shared ahead of time, like in payment protocols.

path Parameters
hash
required
string <hex> = 64 characters
Example: C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD

32-byte hash (hex)

Responses

Response samples

Content type
application/x-ndjson
{
  • "hash": "C00CCE63A757E9955FF50BE29B95F5F89A7C8CE66371DC975224C5D75B0CEDFD",
  • "algorithm": "V1",
  • "publicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "height": "1",
  • "blockType": "RECEIVE",
  • "subjectAlgorithm": "V1",
  • "subjectPublicKey": "8D1DA0CFC89306050A6E6760B0224580F280E1F3EB1FADC66ABBF874A000D824",
  • "previousBalance": "1000000000000000000",
  • "balance": "1000000000000000000",
  • "timestamp": 1790015238947,
  • "address": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq",
  • "subjectAddress": "atto://acud6zeejhs4f2g3skafut2spsvnl56mmnf6fowxzc4jr4qvre5yr4u4xlpgq"
}