Every year, billions of dollars move based on promises. Investor commits to founder. Founder commits to milestones. Advisor commits to introductions. Employee commits to vesting schedule.
And every year, those promises break—not because people are dishonest, but because paper agreements are static, enforcement is expensive, and tracking is manual.
Tokenized Promise changes this.
The Problem with Traditional Agreements
Consider a typical SAFE (Simple Agreement for Future Equity):
- Investor wires money
- Founder promises to hit milestones
- Months pass
- Did they hit the milestones? Who decides? What happens if they didn't?
The answers live in emails, spreadsheets, quarterly updates, and eventually—lawyers.
For investors: No automatic tracking. No objective triggers. Disputes are expensive and relationship-destroying.
For founders: Constant reporting burden. Investor anxiety creates friction. No way to prove performance objectively.
For advisors: Equity promises that never materialize. No leverage when company "forgets" the handshake deal.
For employees: Vesting schedules that change. Cliff provisions enforced selectively. Exit events that somehow don't trigger what was promised.
The pattern is consistent: commitments are made, but enforcement relies on goodwill and expensive legal action.
What Is a Tokenized Promise?
A Tokenized Promise is a programmable commitment with three core properties:
- Defined conditions: What triggers the promise (milestone, date, metric)
- Automatic verification: How we know the condition was met
- Executable outcome: What happens when triggered (payment, equity release, etc.)
Instead of "I promise to pay you $50K when you hit $100K MRR," a Tokenized Promise encodes:
IF mrr_verified >= 100000
AND verification_source IN [approved_oracles]
AND timestamp <= deadline
THEN release(funds, recipient, 50000)
ELSE IF timestamp > deadline
THEN return(funds, investor)
The logic is explicit. The execution is automatic. The audit trail is permanent.
Architecture: Two Paths, Same Standard
We're building Tokenized Promise as an open standard that anyone can implement. On top of that, we're building a rich UX layer that makes it accessible to non-technical users.
But here's the key insight: not everyone wants (or can use) blockchain infrastructure. Regulatory requirements vary. Technical capabilities differ. So we support two deployment modes:
Enterprise Mode (Managed Backend)
For organizations that need compliance, auditability, and control—without blockchain complexity.
// Enterprise Tokenized Promise - Server-side
interface EnterprisePromise {
id: string;
parties: {
promisor: Party; // Who's making the promise
beneficiary: Party; // Who receives if fulfilled
arbitrator?: Party; // Optional dispute resolver
};
conditions: Condition[];
escrow: {
amount: number;
currency: string;
custodian: 'athanor' | 'bank' | 'custom';
};
verification: {
type: 'oracle' | 'attestation' | 'multi-sig';
sources: VerificationSource[];
threshold: number; // How many sources must agree
};
dispute: {
window: Duration; // Time to raise dispute after trigger
resolution: 'arbitration' | 'mediation' | 'court';
jurisdiction: string;
};
compliance: {
kyc: boolean;
aml: boolean;
jurisdiction: string[];
reportingRequirements: Report[];
};
}
How it works:
- Parties sign agreement (digital signatures, legally binding)
- Funds held in regulated escrow (bank account or licensed custodian)
- Athanor monitors conditions via integrated data sources
- When triggered, funds move automatically (within regulatory rails)
- Full audit trail for compliance reporting
Best for:
- Regulated entities (funds, family offices)
- Cross-border deals requiring specific jurisdictions
- Organizations with compliance requirements
- Deals where counterparties don't have crypto infrastructure
Self-Custody Mode (Smart Contracts)
For those who want trustless execution—no intermediary can block or modify the promise once deployed.
// Self-Custody Tokenized Promise - Solidity
contract TokenizedPromise {
struct Promise {
address promisor;
address beneficiary;
uint256 amount;
bytes32 conditionHash;
uint256 deadline;
PromiseState state;
}
enum PromiseState {
Active,
Fulfilled,
Expired,
Disputed
}
mapping(bytes32 => Promise) public promises;
mapping(bytes32 => address[]) public oracles;
event PromiseCreated(bytes32 indexed id, address promisor, address beneficiary);
event ConditionMet(bytes32 indexed id, address oracle, bytes proof);
event PromiseFulfilled(bytes32 indexed id, uint256 amount);
event DisputeRaised(bytes32 indexed id, address challenger, string reason);
function createPromise(
address _beneficiary,
bytes32 _conditionHash,
uint256 _deadline,
address[] calldata _oracles
) external payable returns (bytes32) {
bytes32 id = keccak256(abi.encodePacked(
msg.sender,
_beneficiary,
_conditionHash,
block.timestamp
));
promises[id] = Promise({
promisor: msg.sender,
beneficiary: _beneficiary,
amount: msg.value,
conditionHash: _conditionHash,
deadline: _deadline,
state: PromiseState.Active
});
oracles[id] = _oracles;
emit PromiseCreated(id, msg.sender, _beneficiary);
return id;
}
function submitProof(
bytes32 _promiseId,
bytes calldata _proof
) external {
Promise storage p = promises[_promiseId];
require(p.state == PromiseState.Active, "Promise not active");
require(isApprovedOracle(_promiseId, msg.sender), "Not approved oracle");
require(block.timestamp <= p.deadline, "Past deadline");
// Verify proof matches condition
require(verifyCondition(p.conditionHash, _proof), "Invalid proof");
emit ConditionMet(_promiseId, msg.sender, _proof);
// Check if threshold met for release
if (oracleThresholdMet(_promiseId)) {
_fulfillPromise(_promiseId);
}
}
function _fulfillPromise(bytes32 _promiseId) internal {
Promise storage p = promises[_promiseId];
p.state = PromiseState.Fulfilled;
(bool sent, ) = p.beneficiary.call{value: p.amount}("");
require(sent, "Transfer failed");
emit PromiseFulfilled(_promiseId, p.amount);
}
// ... dispute resolution, expiry handling, etc.
}
How it works:
- Promise created on-chain with conditions encoded
- Funds locked in smart contract (no third party can access)
- Approved oracles submit proofs when conditions met
- Contract automatically releases funds when threshold reached
- Dispute mechanism allows challenge within defined window
Best for:
- Crypto-native parties
- Trustless execution requirements
- Global deals without jurisdictional constraints
- Maximum transparency and auditability
The Verification Layer
Both modes share the same verification architecture. This is where Tokenized Promise gets interesting.
Oracle Types
type OracleType =
| 'financial' // Revenue, MRR, burn rate (via accounting integrations)
| 'product' // DAU, retention, feature launches (via analytics)
| 'legal' // Incorporation, IP filing, compliance (via legal APIs)
| 'human' // Expert attestation, board approval
| 'composite'; // Combination of above
interface Oracle {
id: string;
type: OracleType;
trustScore: number; // Historical accuracy
attestationMethod: 'api' | 'signature' | 'multi-sig';
disputeHistory: Dispute[];
}
// Example: MRR verification oracle
const mrrOracle: Oracle = {
id: 'stripe-mrr-oracle',
type: 'financial',
trustScore: 0.99,
attestationMethod: 'api',
dataSource: {
provider: 'stripe',
endpoint: '/v1/subscription_metrics',
authentication: 'oauth',
refreshInterval: '24h'
}
};
Multi-Source Verification
For high-stakes promises, single-source verification isn't enough:
const milestoneVerification = {
condition: 'mrr_reaches_100k',
// Require 2 of 3 sources to agree
threshold: 2,
sources: [
{ oracle: 'stripe-mrr-oracle', weight: 1 },
{ oracle: 'quickbooks-revenue', weight: 1 },
{ oracle: 'cfo-attestation', weight: 1 }
],
// Tolerance for minor discrepancies
tolerance: {
type: 'percentage',
value: 0.05 // 5% variance allowed
},
// What happens on disagreement
disagreementResolution: 'arbitration'
};
Dispute Resolution: The Safety Net
Even with automatic verification, disputes happen. Our multi-layered resolution system handles them:
Layer 1: Automated Resolution
interface AutomatedResolution {
trigger: 'oracle_disagreement' | 'deadline_ambiguity' | 'partial_fulfillment';
rules: [
{
condition: 'variance < tolerance',
action: 'accept_median_value'
},
{
condition: 'one_oracle_offline',
action: 'extend_deadline_24h'
},
{
condition: 'partial_fulfillment > 80%',
action: 'release_proportional'
}
];
}
Layer 2: Human Arbitration
When automated rules can't resolve:
interface ArbitrationProcess {
arbitrators: {
pool: 'athanor_certified' | 'jams' | 'custom';
selection: 'random' | 'mutual_agreement' | 'rotating';
count: 1 | 3 | 5; // Odd number for majority
};
process: {
submissionWindow: '7d';
responseWindow: '7d';
deliberationWindow: '14d';
appealable: boolean;
};
costs: {
filing: number;
arbitratorFee: number;
allocation: 'loser_pays' | 'split' | 'proportional';
};
}
Layer 3: Legal Escalation
For cases that require court intervention:
interface LegalEscalation {
jurisdiction: string;
governingLaw: string;
venue: string;
// Evidence package automatically generated
evidenceBundle: {
originalAgreement: Document;
transactionHistory: Transaction[];
oracleAttestations: Attestation[];
communicationLog: Message[];
disputeRecord: DisputeRecord;
};
}
Real-World Use Cases
1. Milestone-Based Investment
The pain: Investor wants to fund in tranches tied to milestones. Currently requires manual tracking, quarterly calls, and trust that founder will report honestly.
const seriesAMilestones = {
totalCommitment: 2_000_000,
tranches: [
{
amount: 500_000,
condition: 'signing',
verification: 'legal_oracle'
},
{
amount: 500_000,
condition: 'mrr >= 50000',
verification: ['stripe_oracle', 'cfo_attestation'],
deadline: '2026-06-30'
},
{
amount: 500_000,
condition: 'team_size >= 10 AND product_launched',
verification: ['hr_oracle', 'product_oracle'],
deadline: '2026-12-31'
},
{
amount: 500_000,
condition: 'mrr >= 200000',
verification: ['stripe_oracle', 'auditor_attestation'],
deadline: '2027-06-30'
}
]
};
Result: Investor has confidence milestones are tracked objectively. Founder has clear targets with automatic fund release. No quarterly "are we there yet?" calls.
2. Advisor Equity with Teeth
The pain: Advisor promised 0.5% for introductions. Company grows, "forgets" the deal, advisor has no leverage.
const advisorAgreement = {
equity: {
amount: 0.005, // 0.5%
type: 'options',
vestingSchedule: 'milestone'
},
milestones: [
{
description: '3 qualified investor intros',
verification: {
type: 'multi_attestation',
required: ['advisor', 'founder', 'investor']
},
equity_release: 0.002
},
{
description: 'Series A closed with intro investor',
verification: {
type: 'legal_oracle',
document: 'series_a_closing_docs'
},
equity_release: 0.003
}
],
dispute: {
resolution: 'arbitration',
evidence: 'email_trail_required'
}
};
Result: Advisor has cryptographic proof of agreement. Milestones are verified by multiple parties. No "he said, she said."
3. Revenue-Share Agreements
The pain: Content creator has rev-share deal with platform. Platform reports whatever they want. Creator has no audit rights.
const revenueShare = {
parties: {
creator: 'creator_wallet_or_account',
platform: 'platform_entity'
},
terms: {
percentage: 0.30, // 30% to creator
metric: 'net_revenue_from_content',
paymentFrequency: 'monthly'
},
verification: {
primary: 'platform_analytics_api',
secondary: 'third_party_audit_quarterly',
discrepancyThreshold: 0.10 // 10% triggers audit
},
payment: {
automatic: true,
currency: 'usd',
method: 'bank_transfer' // or 'crypto' in self-custody mode
}
};
Result: Creator gets automatic payments tied to verified metrics. Platform can't under-report. Disputes trigger automatic audit.
4. Employee Vesting with Objective Triggers
The pain: Employee has 4-year vesting with "good leaver" provisions. Company decides what "good" means when convenient.
const vestingSchedule = {
grant: {
shares: 10000,
type: 'iso',
grantDate: '2026-01-15'
},
vesting: {
cliff: '1y',
schedule: 'monthly_after_cliff',
totalPeriod: '4y'
},
acceleration: [
{
trigger: 'acquisition',
verification: 'legal_oracle',
acceleration: 'double_trigger' // Requires termination too
},
{
trigger: 'termination_without_cause',
verification: ['hr_system', 'legal_review'],
acceleration: '6_months'
}
],
goodLeaver: {
definition: 'explicit', // Not "at board discretion"
conditions: [
'resignation_with_notice',
'termination_without_cause',
'disability',
'death'
],
verification: 'hr_oracle_plus_attestation'
}
};
Result: Employee knows exactly what triggers what. No "board discretion" surprises. Acceleration is automatic when conditions verify.
Compliance Built In
Tokenized Promise is designed for the regulated world:
KYC/AML Integration
const complianceLayer = {
kyc: {
required: true,
provider: 'jumio' | 'onfido' | 'custom',
level: 'basic' | 'enhanced',
reVerification: '12_months'
},
aml: {
screening: 'chainalysis' | 'elliptic' | 'custom',
ongoingMonitoring: true,
thresholdReporting: {
amount: 10000,
currency: 'usd',
reportTo: ['fincen', 'local_regulator']
}
},
accreditation: {
required: true, // For securities-related promises
verification: 'verify_investor' | 'manual',
reVerification: '90_days'
}
};
Jurisdiction-Aware Execution
const jurisdictionRules = {
'US': {
securitiesLaw: 'reg_d_506c',
escrowRequirements: 'qualified_custodian',
reportingRequirements: ['form_d', 'blue_sky']
},
'EU': {
securitiesLaw: 'mifid_ii',
escrowRequirements: 'emi_or_bank',
reportingRequirements: ['esma_reporting']
},
'CRYPTO_NATIVE': {
securitiesLaw: 'token_not_security_opinion',
escrowRequirements: 'smart_contract',
reportingRequirements: ['on_chain_transparency']
}
};
The Roadmap
2026: Shape and Validate
This year is about getting the foundation right:
- Q1-Q2: Launch with 2 live Tokenized Promises (real counterparties, real stakes)
- Q2-Q3: Open-source the standard specification
- Q3-Q4: Implement enterprise and self-custody modes based on early adopter feedback
- Ongoing: Iterate on verification oracles, dispute resolution, UX
We're not building in a vacuum. Every feature ships because a real user needed it.
2027: Mature and Scale
Next year is about reach:
- Mature the oracle network (more data sources, higher trust scores)
- Scale dispute resolution (certified arbitrator network)
- Expand jurisdiction coverage
- Launch marketplace for Tokenized Promise templates
- Enable composability (promises that trigger other promises)
The Closed Loop
Here's the vision: every commitment on Athanor becomes a Tokenized Promise.
- Founder submits idea → commits to milestones via TP
- Investor funds → tranches released via TP
- Advisor joins → equity vests via TP
- Employee hired → vesting tracked via TP
Every promise verified. Every outcome tracked. Every dispute resolvable.
Not because we don't trust people—but because clear commitments make trust easier.
Get Involved
We're actively looking for:
Early adopters: Investors and founders willing to structure real deals as Tokenized Promises. We'll work closely with you on implementation.
Legal partners: Firms interested in developing jurisdiction-specific templates and opinions.
Technical contributors: The standard will be open-source. Help us build it right.
Feedback: Even if you're not ready to use it, tell us what would make this valuable for your workflow.
Ready to explore Tokenized Promise for your next deal? Let's talk.