Docs Técnicas
Ledger Transactions
TREA integration uses AtlasDB transaction payloads.
TREA integration uses AtlasDB transaction payloads.
Transaction Types
PublishContractArtifact
InstantiateContract
AcceptContractVersion
UpdateContractLifecycle
ContractCallUse these payloads in order:
- publish artifact;
- instantiate contract;
- optionally accept a version;
- move lifecycle if needed;
- call entrypoints.
PublishContractArtifact
Publishes contract source as an immutable artifact.
Required:
artifact_id;source.
Optional:
family_id;version_id;memo.
This step stores executable source and canonical metadata. It does not create contract storage.
InstantiateContract
Creates a contract instance from an artifact.
Required:
contract_id;artifact_id.
Optional:
admin;memo.
This step creates contract state, lifecycle, and version-binding surface.
AcceptContractVersion
Records that the caller accepts a specific artifact version.
Required:
contract_id;artifact_id.
Optional:
role;memo.
This step changes artifact resolution for that actor. It does not create a new contract instance.
UpdateContractLifecycle
Moves the contract through governed lifecycle states.
Required:
contract_id;lifecycle_state.
Optional:
reason;memo.
This step changes whether later calls are admissible for commit.
ContractCall
Executes an entrypoint.
Required:
contract_id;asset;entrypointorentrypoint_selector.
Optional:
args;memo.
Inline source override is rejected.
ContractCall resolves executable code from the published artifact set. It does not accept inline source.
For read-only queries from Ethereum tooling, use the Ethereum Adapter (POST /api/eth/call/:contract_id) instead — it accepts raw Ethereum calldata and does not require a signed transaction. See Ethereum Adapter.
Commit Sequence
For a call transaction, AtlasDB evaluates the flow in this order:
- resolve the contract instance;
- resolve the caller's accepted artifact or default artifact;
- validate lifecycle and artifact-family consistency;
- execute the contract locally;
- validate resulting ledger effects;
- persist storage and settlement metadata if commit succeeds.
Important Boundary
A valid payload is not enough for success.
The runtime can execute successfully and still produce a result that the ledger rejects during final commit.