Java SDK
foundation.l3rs1:l3rs1-sdk - Maven Central - Java 21+
mvn dependency:get -Dartifact=foundation.l3rs1:l3rs1-sdk:1.0.0
Pure JDK - no external runtime dependencies. Java 21 records.
Maven Dependency
<dependency>
<groupId>foundation.l3rs1</groupId>
<artifactId>l3rs1-sdk</artifactId>
<version>1.0.0</version>
</dependency>
Quick Example
import foundation.l3rs1.crypto.L3rsCrypto;
import foundation.l3rs1.modules.L3rsModules;
import foundation.l3rs1.modules.L3rsModules.*;
String id = L3rsCrypto.constructAssetId(
"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
1740355200L, "0000000000000001");
StateTransitionResult r = L3rsModules.applyStateTransition(AssetState.ISSUED, "ACTIVATION");
// r.success() == true, r.newState() == ACTIVE
API Reference
| Function/Method | § | Description |
constructAssetId / ConstructAssetID | 2.2 | H(pk_issuer ∥ ts ∥ nonce) |
constructCID / ConstructCID | 8.3 | CID = H(I ∥ SH ∥ CH ∥ GH ∥ t) |
constructTxId / ConstructTxID | 9.6 | TxID = H(sender ∥ receiver ∥ amount ∥ nonce ∥ ts) |
canonicalize | 13.11 | Sorted-key JSON, no whitespace |
applyStateTransition | 2.5 | Deterministic state machine, Invariant I1 |
evaluateCompliance | 4.3 | C: E to {0,1}, O(n), Invariant I2 |
validateFeeModule | 6.12 | Allocations must sum to 10000 bp |
identityStatus | 3.6 | VALID / EXPIRED / REVOKED |
isReplay | 9.6 | Replay protection via TxID/nonce |
State Transition Matrix
| From | Trigger | To |
| ISSUED | ACTIVATION | ACTIVE |
| ACTIVE | BREACH | RESTRICTED |
| ACTIVE | FREEZE | FROZEN |
| RESTRICTED | CLEARED | ACTIVE |
| FROZEN | RELEASE | ACTIVE |
| ACTIVE | REDEMPTION | REDEEMED |
| REDEEMED | FINALIZATION | BURNED (terminal) |
| ACTIVE | SUSPENSION | SUSPENDED |
| SUSPENDED | REINSTATEMENT | ACTIVE |