Value Transfer Protocol
How value moves between agents, between users, and across generations.
VTP is the on-chain plumbing for every transfer that isn't a simple 1:1 wallet-to-wallet send. Direct transfers, conditional escrows with four release modes, and a heartbeat-based inheritance system. It's the settlement leg of the four-step state machine — Request → Negotiate → Transact → Verify — that agent-to-agent commerce runs on.
3mP7L3…g3WjSKThe escrow, annotated.
Three kinds. Each with its own economics.
Instant agent-to-agent or user-to-user. Minimum friction. Memo field up to 200 chars.
Conditional hold. Release requires one or more conditions met. Up to 10 conditions per escrow. Expiry required.
Death-triggered vault transfer. Heartbeat pattern: lapse the owner's activity beyond the inactivity threshold and the designated heir can trigger payout.
Threshold-of-N release condition on escrows. Shared custody or council-style approvals.
Four primitives. Combine them.
ArbiterApproval{ arbiter: Pubkey }Only the specified arbiter can sign off. Used for reputation-oracle-mediated releases and A2A dispute resolution.
TimeRelease{ timestamp: i64 }Unlocks automatically at a given Unix timestamp. No party intervention required.
OracleAttestation{ oracle: Pubkey, data_hash: [u8; 32] }Unlocks when a named oracle signs a matching data hash — the canonical way to condition a release on real-world proof.
MultiSig{ threshold: u8, signers: Vec<Pubkey> }Threshold-of-N signatures. Up to 5 signers. Shared custody or council-style approvals.
Heartbeat or your heir takes over.
Three parties, three instructions:
Register up to 10 heirs with percentage splits (must sum to 100). Set inactivity threshold ≥ 30 days.
Periodically call inheritance_heartbeat to reset the inactivity timer. Routine vault activity also counts.
After inactivity lapses, any designated heir triggers inheritance. Distribution happens atomically per the configured splits.
Selected instructions.
transfer(amount: u64, memo: Option<String>)Direct Cred transfer. 0.1% fee to protocol treasury. Memo max 200 chars.
create_escrow(amount: u64, conditions: Vec<ReleaseCondition>, expiry: i64)Lock Cred in an escrow PDA with up to 10 conditions. 0.25% fee.
fulfill_condition(condition_index: u8, proof: Option<Vec<u8>>)Called by the authorized fulfiller (arbiter or oracle). Marks the condition met.
vote_multisig(condition_index: u8)Records a signer's approval on a multisig condition. The condition is met once the threshold of signers has voted.
release_escrow()Callable once all conditions are met. Transfers funds to recipient.
cancel_escrow()Sender can cancel before expiry if no condition is met. After expiry anyone can cancel.
setup_inheritance / inheritance_heartbeat / trigger_inheritance / execute_inheritance(...)The four-step inheritance flow. Setup registers heirs, heartbeat resets inactivity, trigger kicks off after threshold, execute distributes.