"A security token contract that only allows transfers to verified users in compliant jurisdictions — enforced by the protocol, not by a terms-of-service clause."
Jurisdiction as a contract input.
Contracts check the jurisdiction oracle before executing, then restrict actions based on local rules.
Oracle query
Contract asks the jurisdiction oracle for the caller's attested jurisdiction.
Rule evaluation
Contract compares the jurisdiction against its configured allow/deny lists.
Execute or revert
Allowed actions proceed; restricted actions revert with a clear reason.
Programmable jurisdiction enforcement.
Four capabilities that make smart contracts aware of the legal context they operate in.
Jurisdiction checks
Contracts query the jurisdiction oracle to determine the caller's attested legal jurisdiction before executing regulated actions.
Configurable rules
Issuers configure allowed jurisdictions, restricted actions, and exemption lists without redeploying contracts.
Automatic restriction
Transfers, mints, and other actions are automatically blocked when jurisdiction or identity rules are not met.
Regulator override
Designated supervisors can freeze, seize, or redirect assets under lawful authority with on-chain transparency.
A jurisdiction-aware transfer.
A simple snippet showing how a token contract enforces jurisdiction and identity rules.
function transfer(address to, uint256 amount) public {
// Check caller jurisdiction
require(
jurisdictionOracle.isAllowed(msg.sender),
"Caller jurisdiction not permitted"
);
// Check recipient jurisdiction
require(
jurisdictionOracle.isAllowed(to),
"Recipient jurisdiction not permitted"
);
// Check identity attestation tier
require(
identityOracle.tier(msg.sender) >= MIN_TIER,
"Insufficient identity tier"
);
_transfer(msg.sender, to, amount);
}