App Sessions
API methods for managing virtual application sessions.
create_app_session
Creates a virtual application session between participants.
Request:
{
"req": [1, "create_app_session", {
"definition": {
"protocol": "NitroRPC/0.2" | "NitroRPC/0.4",
"participants": Address[],
"weights": number[],
"quorum": number,
"challenge": number,
"nonce": number
},
"allocations": AppAllocation[],
"session_data": string // Optional
}, timestamp],
"sig": Hex[]
}
Response:
{
"res": [1, "create_app_session", {
"app_session_id": Hex,
"version": string,
"status": "open"
}, timestamp],
"sig": [Hex]
}
submit_app_state
Updates session state and redistributes funds.
NitroRPC/0.2
Request:
{
"req": [1, "submit_app_state", {
"app_session_id": Hex,
"allocations": AppAllocation[],
"session_data": string // Optional
}, timestamp],
"sig": Hex[]
}
NitroRPC/0.4
Request:
{
"req": [1, "submit_app_state", {
"app_session_id": Hex,
"intent": "operate" | "deposit" | "withdraw",
"version": number,
"allocations": AppAllocation[],
"session_data": string // Optional
}, timestamp],
"sig": Hex[]
}
Response:
{
"res": [1, "submit_app_state", {
"app_session_id": Hex,
"version": string,
"status": "open"
}, timestamp],
"sig": [Hex]
}
close_app_session
Closes session and finalizes fund distribution.
Request:
{
"req": [1, "close_app_session", {
"app_session_id": Hex,
"allocations": AppAllocation[],
"session_data": string // Optional
}, timestamp],
"sig": Hex[]
}
Response:
{
"res": [1, "close_app_session", {
"app_session_id": Hex,
"version": string,
"status": "closed"
}, timestamp],
"sig": [Hex]
}
Types
AppAllocation
interface AppAllocation {
participant: Address;
asset: string;
amount: string;
}
AppDefinition
interface AppDefinition {
protocol: "NitroRPC/0.2" | "NitroRPC/0.4";
participants: Address[];
weights: number[];
quorum: number;
challenge: number;
nonce: number;
}
Intent Types (NitroRPC/0.4)
operate
: Redistribute existing session fundsdeposit
: Add funds from participants' unified balanceswithdraw
: Remove funds to participants' unified balances
Session Status
open
: Session is active and accepting state updatesclosed
: Session is finalized, no further updates allowed